展讯平台软件调试介绍图文..doc
- 格式:doc
- 大小:70.00 KB
- 文档页数:22
展讯L平台CTA音频调试说明一:调试所需软件工具1.DLOADERR_R2.9.2002.UDISK 软件下载用(下载NV文件修改过音频参数的NV)2.AUDIOTESTER_R1.1.0008 音频指标调试用3.CHANNELSERVER 与AUDIOTESTER同步使用4.NVEDITOR 制作NV文件工具二:调试所需物料1.数据线一根连接AUDIOTESTER用2.软件下载线一根DLOAD NV文件三:CTA音频测试指标1.SLR(发送响度评定值)8±3db 实验室一般调到6.5-9db之间为宜。
3.RLR(接收响度评定值)2±3db(Min)最小音量其数值实验室一般提到8 db-15 db为宜。
(Norn)标准音量其数值实验室一般提到0db-3 db为宜。
(Max)最大音量其数值实验室一般提到-10db- -4 db为宜。
4.STMR(侧音)18±5db 实验室一般设到16 db-21 db之间。
5.SFR(发送频响):其曲线应处于上下包络中间,其余量应在0.4db以上.6.RFR(接收频响):其曲线应处于上下包络中间,其余量应在0.4db以上.7.DS(发送失真):会在人说话的语音范围内(20HZ-20KHZ)抽10个点进行语音失真验证.测试时10个点都要PASS.声音响度特别说明:音频测试值与其响度是相反的,测试数值越大,声音越小;测试数值越小,声音越大;因此,若某一测试项的响度测试值大于其标准范围中的值,说明此时手机对应器件的声音较小,需增大其响度;若某一测试项的响度测试值小于其标准范围中的值,说明此时手机对应部件的声音较大,需减小其响度,例如:若SLR的测试值是12db,需要将MIC调大4db左右,若RLR(norm)的测试值为-2db,需将SPEECH音量4调小3db左右。
四:测试系统原理框图1.CQUA系统原理图2.手机耳承说明:目前如无特殊说明耳承用TYPE 3.2低泄漏,测试前手机听筒应处于耳承正中间,同时应用橡胶泥将耳承四周密封好,以免测试时漏音.五.音频调试5.1手机与仪器工具连接5.1.1:手机进入USB LOG 工程模式*#1013#---8para Set---4Debug param---Assert Mode----Debug Mode----ok------Return------usb log------ok----Close-----ok5.1. 2Channel Server Setting1、 打开channel server(双击channelserver.exe),屏幕右下脚会显示图标“”,鼠标左键单击此图标,显示如下对话框,按图进行设置。
展讯 build环境使用手册展讯 Build 环境使用手册一、简介展讯 Build 环境是为展讯公司开发团队提供的一套集成开发环境,旨在为开发人员提供便捷、高效的开发工具和平台。
本手册将详细介绍展讯 Build 环境的安装、配置和使用方法。
二、安装1. 下载展讯 Build 环境安装包展讯 Build 环境安装包可以从展讯公司的官方网站下载。
请确保从官方渠道下载,以确保安装包的安全性和完整性。
2. 执行安装程序双击下载的安装包,按照提示一步步进行安装。
建议选择默认安装路径,以便后续操作的顺利进行。
3. 完成安装安装完成后,会在您选择的安装路径下生成展讯 Build 环境的文件夹。
您可以在此文件夹中找到所有的开发工具和相关资源。
三、配置1. 环境变量设置为了能够方便地在任意路径下调用展讯 Build 环境,我们需要对环境变量进行一些配置。
- Windows 系统:右键点击“计算机”或“我的电脑”,选择“属性”->“高级系统设置”->“环境变量”。
在系统变量中找到“Path”,并选择“编辑”。
在弹出的窗口中,将展讯 Build 环境的安装路径添加到“Path”变量的值中,并点击“确定”保存。
- macOS / Linux 系统:在终端中输入以下命令,并将展讯 Build环境的安装路径替换为您的实际路径。
```shellexport PATH=/your/installation/path:$PATH```2. 配置开发工具根据您的开发需求,展讯Build 环境提供了多种开发工具和插件。
您可以根据需要进行安装和配置。
- IDE:展讯 Build 环境支持多种集成开发环境,如 Eclipse、Android Studio 等。
您可以根据个人喜好进行选择和安装。
- SDK:展讯 Build 环境提供了丰富的软件开发工具包,包括Android SDK、Java SDK 等。
您可以根据项目需要进行安装和配置。
展讯平台软件调试介绍Spreadtrum7/21/2009培训目的¾能够使用展讯提供的调试工具对开发中的问题进行调试¾能够分析几种常见ASSERT主要内容展讯调试工具简介调试方法展讯调试工具简介主要的调试工具有: ¾Dloader¾NVEditor¾Channel Server¾Logel¾Phone Tester¾DSP Log Dloader(1功能:下载程序设置界面:双击可以选择下载文件路径选择端口选择项目选择下载速率制作打包文件选择是否下载Nand Flash下载配置:大小页选择分区策略选择分区策略¾始终分区¾出现不兼容分区时停止下载¾出现不兼容分区,使用Flash中原有分区进行下载¾出现不兼容分区,使用FDL中的分区方式进行分区注:此配置项只对NAND FLASH有效备份信息配置:将NV保存到本地选择需要保留的信息正在下载:下载成功:下载失败:Dloader(4打包文件特别说明:展讯升级工具中使用打包文件来进行升级操作,打包文件中不仅包含了所有的下载文件,还包含了下载项目的地址信息,这样可以降低产线升级工具配置出错的可能性,同时简化了操作。
打包文件的制作方法:DloadeR 在配置好所有的配置项后,点击左图中的按钮,然后按照提示即可完成打包文件的制作。
点击这个按钮进行打包操作展讯调试工具简介¾Downloader¾NVEditor¾Channel Server¾Logel¾Phone Tester¾DSP Log功能:•对fixed NV参数进行读取,编辑,保存,下载•擦除NV•从手机中读出NV Item修改某项数据:选择菜单[File\save image]保存并生成二进制数据文件:选择菜单[File\Save to phone]直接下载到手机中——手机需要在下载模式如果需要保留校准参数需要选择上获取手机NV数据:选择菜单[File\LoadFromPhone(boot mode]来获取数据在下载模式下从保留区域处获取下载的nvitem数据。
某些nvitem可能会被修改并被存储到数据区,如果需要获取这些最新的数据,则用LoadFromPhone(normal mode。
此时手机应在正常开机状态,并且没有进入deep sleep。
读Flash:选择菜单[Facility\Read Flash](NAND Flash选择Read NAND Flash。
手机需要在下载模式。
该地址为下载模式下flash的地址空间,地址一定要是有效地址。
擦除某区域的Flash:选择菜单[Facility\Erase Flash ](Nand Flash选择Erase Nand Flash。
手机需要在下载模式展讯调试工具简介¾Downloader¾NVEditor¾Channel Server¾Logel¾Phone Tester¾DSP Log功能:¾管理其它工具与手机通讯。
它通过Socket与其它工具通讯,通过串口与手机连接。
¾消息存储转发¾消息字节顺序转换¾消息记录运行ChannelServer.exe :变绿代表成功连接串口或虚拟串口端口号波特率设置由于展讯平台使用大端,这里要勾上单击右下角托盘中的ChannelServer 小图标,在弹出的对话框中的进行配置(成功后,小图标变绿色展讯调试工具简介¾Downloader¾NVEditor¾Channel Server¾Logel¾Phone Tester¾DSP LogLogel(1功能:¾实时诊断和监控手机运行状况,解决、分析问题¾Trace 功能,Layer 3的空中消息,应用窗口的消息流¾手机出错时的信息的收集、记录¾回放功能消息包的解析线程间的消息利用SCI_TRACE_XXX打印的字符串先将手机与Channel Sever连接上,打开Logel,连接Channel Server Logel(2 展讯调试工具简介¾Downloader¾NVEditor¾Channel Server¾Logel¾Phone Tester¾DSP Log功能:¾读写内存/寄存器值¾RF校准¾Audio设置注意:使用PhoneTester时,如果手机进入DeepSleep,操作会失败;有的平台中,使用的是Mobile Tester,功能与使用方法都同Phone Tester类似。
点击使之与channel server相连寄存器/内存地址需读取的大小如果寄存器的读取, mode应设为DWORD展讯调试工具简介¾Downloader¾NVEditor¾Channel Server¾Logel¾Phone Tester¾DSP Log功能:抓取DSP Log使用之前,需要在NV中将DSP Log打开: DownloadParam/log_switch_struct设置为0x1选择菜单[Action\Setting],设置串口参数,以及LOG文件保存路径•单击工具栏图标连接•单击图标开始抓取LOG•详细使用方法,请参考相应工具的使用手册主要内容展讯调试工具简介调试方法调试方法¾LOG¾分析断言(ASSERT信息¾通过PhoneTester实时查看寄存器、内存信息LOG (1利用平台提供的LOG接口,可以将字符串通过Logel工具在PC上打印出来,使得开发人员可以跟踪程序的运行,接口是SCI_TRACE_LOW使用LOG的注意事项:¾尽量避免在会频繁调用的函数或者循环中调用SCI_TRACE_LOW,会影响程序的效率¾某些栈空间很小的线程中,调用SCI_TRACE_LOW会导致堆栈溢出,要特别注意,一般如果栈空间小于1K Bytes 就不能调用了¾中断处理中不能调用SCI_TRACE_LOW需要特别说明的是log工具需要和软件版本配套。
调试方法¾LOG¾分析断言(ASSERT信息¾通过PhoneTester实时查看寄存器、内存信息在开发的过程中,合理的利用ASSERT检查程序的合法性是非常必要的。
例如,我们一般会在函数入口利用ASSERT检查参数合法性。
这是发生assert时弹出的assert提示窗口。
遇到ASSERT时需要保留的信息:¾Assert产生时连着Logel工具:①Assert时Logel会自动弹出Assert Frame,并显示提示信息, ChannelServer显示红色;②选择[Logel\Assert\Open Map File]打开相应的Map文件;③按照提示信息,依次输入1-8保存相应的信息;④关闭Assert Frame,信息会保存在\\Logel\Bin\History目录下的文件中,文件名中包含时间信息。
¾Assert产生时未连着Logel工具:①通过串口连接线将手机和PC相连,运行ChannelServer、Logel,并进行必要的设置;②点击[Logel\Assert\Open Assert Frame ],在弹出的Frame中反复输入字符‘0’,直至Frame中显示提示信息、ChannelServer显示红色;③按照上面的②、③、④步操作。
ASSERT Frame框选项:①Print help info②Print assert info,包括Assert时的软硬件版本信息,产生Assert的位置(文件名,行号,当前线程(或中断服务程序的信息③Print important registers,包括SVC, IRQ, ABORT, UNDEFINED模式下的R13,R14,SPSR,以及当前模式下的所有寄存器④Dump all memory to a file,内容包括External Ram,Internal Ram,Shared Memory,ARM Registers。
Dump完成之后会保存为*.mem文件。
⑤Print memory allocated info,列出通过动态分配、到当前还没有被释放的内存信息。
包括分配的序列号(No.,长度(Size,分配的位置(FileName (Line⑥Print memory pools info,列出各个内存池的使用信息⑦Print tasks info,列出各个线程的ID,控制块地址,当前运行地址,消息队列的使用情况⑧Print stack info,列出各个线程的堆栈使用情况⑨Print callback function list,列出所有线程的函数调用情况⑩Read memory,实时的读取输入地址的内存内容分析ASSERT需要的其他信息:¾相应的软、硬件版本¾产生断言条件(在什么环境下、如何操作的说明¾必须有相应的文件:*.bin, *.axf, *.map, *.mem¾Log信息也是需要的。
相对应的全部log文件Mem文件的使用:¾配合map文件可以对各个全局变量进行分析¾结合*.axf文件,载入ADS的AXD中进行分析¾通过Task Switch,可以查看Assert之前的一段时间内系统运行的情况,对分析有些任务长时间得不到运行的问题很有帮助分别介绍几类常见ASSERT的debug方法:¾普通ASSERT¾Queue Full¾Stack Overflow¾No Memory¾其他一些ASSERT普通ASSERT:指开发人员在程序中加的ASSERT。
该类ASSERT最容易分析,通过1: Print assert info,查看ASSERT产生的行号,通过8: Print callback function list,查看程序调用流程,再利用LOG信息,很容易判断出错误来源Queue Full ASSERT:¾第一步,查看6: Print tasks info,找出Queue Full的线程¾表面原因是线程的消息队列已满,内部原因大致有:•线程内部有死循环,导致线程无法处理消息通过LOG信息结合代码,推测出在运行哪段程序,检查相应代码是否存在死循环的可能•被其他线程抢占,或存在死锁,导致线程长时间得不到运行可以通过mem和Task Switch工具查看ASSERT前一段时间内的TASK以及中断的运行情况,判断出被抢占的原因,比如是由于优先级设置不合理造成,还是无法获得资源等等•线程消息队列大小设置过小增大Queue即可。