DSP调试及烧写和加载常见错误及分析
- 格式:docx
- 大小:9.25 KB
- 文档页数:4
问:我测试你们的程序的时候,go main 进不去主函数,进入的是一段汇编。
是怎么回事?答:程序如果要进行设断点,观察变量等操作,要先调入project文件,然后再调入out文件。
如果是可以直接执行能看到结果的,就直接调入out文件,run就可以。
问:CY68013的固件程序怎么修改?答:在把QQ2812都研究清楚了,有精力有兴趣自己可以买一本EZ-USB的书好好看看。
在此之前,请不要随便更改固件代码,因为一旦出错,可能带来不必要的麻烦。
固件代码是通过USBControlPanel,使用USB接口进行下载的。
:2812的主频是最大150M,我如果想设为100M是在那里设置?答:打开工程,在Source文件夹下,打开DSP28_SysCtro.c文件,找到如下语句,修改即可。
// Initalize PLLSysCtrlRegs.PLLCR = 0x02;///锁相环产生的时钟频率定标,这里配置为30M问:为什么我的程序在SRAM中正常,烧入Flash后不对?答:1、请先确认你编译的时候使用了flash.cmd,推荐使用我们提供的flash.cmd,如果自己更改了这个文件,请先确认cmd文件的正确性;2、编译的时候,如果选择release模式,请检查一下build option,把其中的opt level改为none,即取消编译优化选项,很多语句在优化的时候可能会产生错误的优化结果。
或者选择debug模式编译,烧写正确后再改为release模式,通过对比两种模式的编译选项也能看出其中的区别。
3、程序在flash中运行会比在ram中运行大概慢20%,因此对于一些时序敏感的外设,比如usb总线,就有可能需要调整时序,否则就会有问题。
问:数码管LED显示的时候发送的数据是怎么规定和产生的?答:其实如果自己看程序和原理图自己就可以知道是怎么产生的。
数码管数据如下:Uint16SpiCode[]={0x7E7E,0x2929,0x2c2c,0x6666,0xa4a4,0xa0a0,0x3e3e,0x2020,0x2424,0x22 22,0xe0e0,0xb1b1,0x6868,0xa1a1,0xa3a3,0xffff,0xdfdf};数码管的笔画对应关系如下:63 742 01 5就是说0~7分别对应笔画的a~h,在原理图看就是分别连接的Q0~Q7这个数码管的型号是LG3611BH,是共阳级的,也就是说某个笔画为0的时候,这个笔画被点亮。
问:我测试你们的程序的时候,go main 进不去主函数,进入的是一段汇编。
是怎么回事?答:程序如果要进行设断点,观察变量等操作,要先调入pro ject文件,然后再调入ou t文件。
如果是可以直接执行能看到结果的,就直接调入ou t文件,run就可以。
问:CY68013的固件程序怎么修改?答:在把QQ2812都研究清楚了,有精力有兴趣自己可以买一本EZ-USB的书好好看看。
在此之前,请不要随便更改固件代码,因为一旦出错,可能带来不必要的麻烦。
固件代码是通过USBCon trolPa nel,使用USB接口进行下载的。
:2812的主频是最大150M,我如果想设为100M是在那里设置?答:打开工程,在Source文件夹下,打开DSP28_SysCt ro.c文件,找到如下语句,修改即可。
// Initali ze PLLSysCtrl Regs.PLLCR = 0x02;///锁相环产生的时钟频率定标,这里配置为30M问:为什么我的程序在SRAM中正常,烧入Flash后不对?答:1、请先确认你编译的时候使用了flash.cmd,推荐使用我们提供的flas h.cmd,如果自己更改了这个文件,请先确认cmd文件的正确性;2、编译的时候,如果选择rel ease模式,请检查一下bu ild option,把其中的opt level改为none,即取消编译优化选项,很多语句在优化的时候可能会产生错误的优化结果。
或者选择deb ug模式编译,烧写正确后再改为relea se模式,通过对比两种模式的编译选项也能看出其中的区别。
3、程序在flas h中运行会比在ram中运行大概慢20%,因此对于一些时序敏感的外设,比如usb总线,就有可能需要调整时序,否则就会有问题。
Error: Read status value 0x0001 from symbol PRG_statusFlash algorithm failed during clear operation开始能够正常烧写的 , 可是上机调试了一下就不可以写了.在烧写 lf2407内部flash时出现以下错误,不知是什么原由造成的?Error:Read status value 0x0001 from symbolPRG_status Flash algorithm failed during clear operation.换了一个芯片后正常从前有一次在试 CCS功能时,一不当心点了一次加密,还没有履行完,就立刻点认识密,大体这样烧坏了吧!太柔弱了,不再敢试加密了CMD文件要避开 FLASH的 40H--44H 区间,我也出现过这样的问题,烧写2407A的片内 flash时会出现下边的错误提示:Error: Read status value 0x0001 form symbol PRG_statusFlash algorithm failed during clear operation以后换了一块 2407 就能烧写了。
是不是 2407 的 flash坏了?有没有方法检测或许修复flash?昨天在网上查了一下 , 好多人都碰到了这类问题 , 可能是 dsp 内部 flash 烧坏了吧 ! 今日从头换了一块芯片 , 能够烧录进去了 , 可是上拿到样机上浮试试看 , 再烧录就出现了相同的问题 , 预计又是 flash 坏了 , 究竟是什么原由惹起的 ?是不是电源惹起的呢 ?我也出现过能仿真,但不可以烧写的状况!解决方法:解决方法:降低时钟频次。
点击 FLASH插件上的“ View Config File ”,翻开VAR.h文件。
将该文件中的“ PLL_PATIO_CONST .Set 0000h”改成“PLL_PATIO_CONST .Set 0200h”存盘后,履行目录下的Buildall.bat 批办理文件。
DSP调试及烧写和加载常见错误及分析在进行DSP调试、烧写和加载过程中,常见的错误有很多,下面是一些常见错误及其分析:1.调试错误:-问题描述:无法连接到DSP设备。
-分析:可能是因为设备未正确连接,或者连接线路有问题,也可能是驱动程序不兼容导致的。
-解决方法:检查设备的连接状态,确保连接正确;检查连接线路是否完好;更新或卸载并重新安装驱动程序。
2.烧写错误:-问题描述:烧写失败或者烧写之后设备无法启动。
-分析:可能是烧写的文件有错误或者不完整,也可能是设备本身存在问题。
3.加载错误:-问题描述:加载程序时出现错误,或者加载之后程序无法正常运行。
-分析:可能是加载的程序有问题或者与设备不兼容,也可能是设备本身存在问题。
4.软件错误:-问题描述:使用的调试、烧写或加载软件出现错误或崩溃。
-分析:可能是软件本身存在问题,也可能是与其他软件或系统的兼容性冲突。
-解决方法:更新软件版本,或者使用其他可靠的软件;检查是否存在与其他软件或系统冲突的情况,如果有需要进行排查和修复。
5.设备故障:-问题描述:设备无法识别、烧写或加载,存在硬件故障。
-分析:可能是设备损坏或老化,设备内部电路出现问题。
-解决方法:检查设备的物理状态,是否存在损坏或老化情况;检查设备的内部电路,如果有问题需要进行修复或更换。
6.嵌入式系统错误:-问题描述:DSP芯片上的嵌入式系统无法正常运行。
-分析:可能是系统的软件代码有问题,硬件与软件的不匹配,系统配置错误等。
-解决方法:检查系统的软件代码,重新进行编译、调试和烧写;检查系统的硬件与软件的兼容性,如果有问题需要进行修复或更换;检查系统的配置参数,进行适当的修改。
在遇到以上错误时,可以根据具体情况进行分析和解决。
同时,可以参考调试、烧写和加载工具的操作手册,寻求厂商的技术支持,或者查阅相关的文档和资料来获取更多的帮助和解决方案。
调试、烧写和加载过程中可能会遇到各种各样的问题,需要耐心和细心进行排查和解决。
二.DSP的C语言同主机C语言的主要区别?1)DSP的C语言是标准的ANSI C,它不包括同外设联系的扩展部分,如屏幕绘图等。
但在CCS 中,为了方便调试,可以将数据通过prinf命令虚拟输出到主机的屏幕上。
2)DSP的C语言的编译过程为,C编译为ASM,再由ASM编译为OBJ。
因此C和ASM的对应关系非常明确,非常便于人工优化。
3)DSP的代码需要绝对定位;主机的C的代码有操作系统定位。
4)DSP的C的效率较高,非常适合于嵌入系统。
三.DSP发展动态1.TMS320C2000 TMS320C2000系列包括C24x和C28x系列。
C24x系列建议使用LF24xx 系列替代C24x系列,LF24xx系列的价格比C24x便宜,性能高于C24x,而且LF24xxA具有加密功能。
C28x系列主要用于大存储设备管理,高性能的控制场合。
2.TMS320C3x TMS320C3x系列包括C3x和VC33,主要推荐使用VC33。
C3x系列是TI浮点DSP的基础,不可能停产,但价格不会进一步下调。
3.TMS320C5x TMS320C5x系列已不推荐使用,建议使用C24x或C5000系列替代。
4.TMS320C5000 TMS320C5000系列包括C54x和C55x系列。
其中VC54xx还不断有新的器件出现,如:TMS320VC5471(DSP+ARM7)。
C55x系列是TI的第三代DSP,功耗为VC54xx 的1/6,性能为VC54xx的5倍,是一个正在发展的系列。
C5000系列是目前TI DSP的主流DSP,它涵盖了从低档到中高档的应用领域,目前也是用户最多的系列。
5.TMS320C6000 TMS320C6000系列包括C62xx、C67xx和C64xx。
此系列是TI的高档DSP 系列。
其中C62xx系列是定点的DSP,系列芯片种类较丰富,是主要的应用系列。
C67xx系列是浮点的DSP,用于需要高速浮点处理的领域。
Dsp遇到的问题集锦1:仿真器驱动没有装好,可以查看“Studio_v3.3/cc/bin”路径下的“xdsfast3.dll”文件,如果这个文件是160K大小那么驱动就是没有装好的。
如果出现这样的问题,即使重装驱动往往也不能成功。
需要删除该“xdsfast3.dll”文件,然后断开PC和仿真器,重新装仿真器驱动。
安装后查看“xdsfast3.dll”文件大小为352K即表示驱动安装成功。
2:Error:Error 0xA0002020/-1044Error during: Execution, Control,Device driver: Cannot acquire emulator processPossible conflict for device driver usage3:Error connecting to the target:Error 0x80000244/-2131Fatal Error during: Register, Initialization, OCS,Cannot access register at 0x00000000Sequence ID: 0Error Code: -2131Error Class: 0x800002444:Error:Error 0xA0003020/-1137Error during: Execution, Target, Control,It appears that the target is being held in reset. This may be due to Wait-In-Reset (WIR) configuration set by the EMU0=0 and EMU1=1 pin settings. If this is the case, DISCONNECTall CONNECTED devices including icepick and then select RETRY to clear the WIR configuration.If this is a multi-core system, the master CPU may not be releasing the DSP/MCU from reset. Please check your configuration in CC_setup and/or your GEL file to ensure that nothing is blocking the DSP/MCU from being released from resetSequence ID: 16Error Code: -1137Error Class: 0xA0003020。
1、仿真器驱动的问题。
CCS和仿真器驱动要装在同一路径下,最好都选择其默认的路径。
有时,通过usb20emurst.exe检验到仿真器连接是好的,但打开CCS时,仍然跳出窗口提示Can’t initialize target CPU。
还是因为仿真器驱动安装问题,先将仿真器换一个usb接口试一下,如仍提示错误,则要重新安装驱动。
2、CCS配置。
选择C64xx XDS510 Emulator;Configuration File选择Auto-generate board data file with extra configuration项,C:\ti\drivers\Seedusb2.cfg;I/O Port 0x240;StartupGEL:C:\ti\cc\gel\SEEDDM642.gel。
3、编译错误: SEED301_AverageSmooth\AverageSmoothloop2.jpterror: illegal relocation type found in section .debug_info, file是因为rts6400.lib库文件与CCS版本不符。
库文件要使用CCS安装文件夹自带的。
4、编译错误:symbol xxx is defined multiple times.(1)因为库文件的问题,更改库文件;(2)是因为将本应该在include下的文件加在了source里。
注意:在uCOS_II.c文件里有include语句,包括了os_core.c、os_flag.c、os_mbox.c、os_mem.c、os_mutex.c、os_q.c、os_sem.c、os_task.c、os_time.c文件,因而这些文件不需手动加入工程。
(3)源文件添加过多,造成变量重复定义。
5、编译错误:symbol xxx is undefined。
出现symbol错误,一般都是因为库文件的问题。
Error: Read status value 0x0001 from symbol PRG_status
Flash algorithm failed during clear operation
开始可以正常烧写的,但是上机调试了一下就不能写了.
在烧写lf2407内部flash时出现如下错误,不知是什么原因造成的?
Error:Read status value 0x0001 from symbol PRG_status
Flash algorithm failed during clear operation.
换了一个芯片后正常
之前有一次在试CCS功能时,一不小心点了一次加密,还没有执行完,就马上点了解密,大概这样烧坏了吧!
太脆弱了,再也不敢试加密了
CMD文件要避开FLASH的40H--44H区间,
我也出现过这样的问题,烧写2407A的片内flash时会出现下面的错误提示:Error: Read status value 0x0001 form symbol PRG_status
Flash algorithm failed during clear operation
后来换了一块2407就能烧写了。
是不是2407的flash坏了?有没有办法检测或者修复flash?
昨天在网上查了一下,很多人都遇到了这种问题,可能是dsp内部flash烧坏了吧! 今天重新换了一块芯片,可以烧录进去了,但是上拿到样机上调试一下,再烧录就出现了同样的问题,估计又是flash坏了,到底是什么原因引起的?是不是电源引起的呢?
我也出现过能仿真,但不能烧写的情况!解决方法:
解决方法:降低时钟频率。
点击FLASH插件上的“View Config File”,打开VAR.h文件。
将该文件中的“PLL_PATIO_CONST .Set 0000h”改成
“PLL_PATIO_CONST .Set 0200h”存盘后,执行目录下的Buildall.bat批处理文件。
再重新启动CCS及FLASH插件。
请教高手:在烧写程序的时候出现如下错误:Error: Read status value 0x0001 from s
ymbol PRG_status
Flash algorithm failed during clear operation
是怎么回事啊?
是不是片子坏了?
昨天烧写的时候还是好的.
有人告诉我说flash烧掉了,但是用仿真器调试的时候还可以用,是不是这样啊?
我的板子上有RAM,但是用Load Program的时候总是出错,不知道是什么问题,所以才烧写的.
两块板子都是一样,其中一块烧写了十几次,另一块烧写了不是一次就是两次,现在flas
h都烧掉了,真是心疼啊!5555555555555!
片外RAM应该怎么用啊?
Load Program的时候弹出对话框:Data verification failed at address
0x24F,please verify target memory and memory map
请高手指教一下!多谢了!
是你的 5V电源有问题,纹波大或上下电时有高压脉冲
是你的 5V电源有问题,纹波大或上下电时有高压脉冲,烧坏了你的DSP内的FLASH,可以用示波器测量一下你的电源上下电情况,以前我们也遇到过,当时找来TI的上海办工程师来查,还有一个代理商的技术支持也来查过,都没查出问题。
后来查明是 5电源上下电时有一个 15V 10毫秒的脉冲。
就是这个,我们烧了十几片,改正后就再没发生了。
1.首先说,我也遇到过同样的问题。
芯片坏掉不能再恢复,只能换掉。
2.要避免同样的情况再次发生。
我这里的原因查明了。
是电源问题。
5V电源在掉电时有10V 20ms的脉冲,足以把flash烧掉了。
没改时,烧10次有2次坏一个片子,改正后就没有再发生了。
3.烧写程序时电源纹波过大,造成reset发生。
(这个很少发生)。
最大可能是DSP的FLASH烧掉了,这个烧掉不影响程序的仿真;我之前也是烧不进去,后来换了块芯片就好了,芯片的来源很重要。
第二个问题是你在烧写程序时将CMD修改了没有,要跳过密保单元;
你的memory map设置是否正确?
还有哦如果烧写flash 评估办上跳线是否正确?
我用的时候好几块评估板都是可以load programme
可以加载到ram 中进行仿真
但是不能烧写道flash 进行自动运行
Data verification failed at address 0xC0 please verify target memory and memory map
问题补充:整个load过程这样的错误提示有两次,比如一次在0x100处,那么下一次就在0x104处了,各位帮看看吧,搞的头好痛,天天叫头疼还会被别人怀疑猪流感,郁闷
你这个CMD是针对flash,下载程序的时候用的,仿真的时候在ram里边。
PROG : origin = 00150h, length = 07E50h /*片内FLASH*/
我也遇到这样的问题,同样郁闷
一个以前跑过的好好的程序,因为改了仿真器的配置,就出现了楼主所述问题
反复尝试,都是如楼主所述
后来我是通过以下方法解决的:打开Setup CCStudio v3.3-选择F2407 XDS510 Emulator-设置F2407 XDS510 Emulator的属性-再设置TMS320C24xx_0的属性
我以前也遇到过,用如下的方法解决的:
首先,"degug"--"reset DSP";
然后, 电路上硬件复位,即reset引脚处的复位。
error: Data verification failed at address 0xxxxxx
前一段时间,Load Program时总是出错:
data verification failed at address 0x81021FF4,
Please verify target memory and memory map
有时多下载几次却又可以了,这个问题困扰了我好几天,后来才知道是DSP板子上的SDRAM坏了。
从网上搜到的别人对这个错误的原因的解释:
1. The RAM chip is damaged. In this case, the board has to be replaced.
2. The access to the external memory is secure if CSM (code security module) is enabled. To unlock CSM if not password protected, go to the GEL menu in Code Composer Studio under:
"GEL->Code Security Module->Unlock_CSM"
This will give you access to the external RAM, and allow CCS to load your code. As a workaround, use the Internal_memory_map option to load the executable code into the internal RAM.
RE:在调试硬件时,程序无法下载到存储器中,出现错误,data verification failed at address 0x40,please verify target memory and
您好!
1. 确定CMD文件没有问题,到底是Flash的CMD还是Ram的?
2. 用TI的历程尝试,判断是否是硬件问题。