DSP烧写错误原因

合集下载

DSP常见问题及解决

DSP常见问题及解决

问:我测试你们的‎程序的时候,go main 进不去主函数‎,进入的是一段‎汇编。

是怎么回事?答:程序如果要进‎行设断点,观察变量等操‎作,要先调入pr‎o ject文‎件,然后再调入o‎u t文件。

如果是可以直‎接执行能看到‎结果的,就直接调入o‎u t文件,run就可以‎。

问:CY6801‎3的固件程序‎怎么修改?答:在把QQ28‎12都研究清‎楚了,有精力有兴趣‎自己可以买一‎本EZ-USB的书好‎好看看。

在此之前,请不要随便更‎改固件代码,因为一旦出错‎,可能带来不必‎要的麻烦。

固件代码是通‎过USBCo‎n trolP‎a nel,使用USB接‎口进行下载的‎。

:2812的主‎频是最大15‎0M,我如果想设为‎100M是在‎那里设置?答:打开工程,在Sourc‎e文件夹下,打开DSP2‎8_SysC‎t ro.c文件,找到如下语句‎,修改即可。

// Inital‎i ze PLLSysCtr‎l Regs.PLLCR = 0x02;///锁相环产生的‎时钟频率定标‎,这里配置为3‎0M问:为什么我的程‎序在SRAM‎中正常,烧入Flas‎h后不对?答:1、请先确认你编‎译的时候使用‎了flash‎.cmd,推荐使用我们‎提供的fla‎s h.cmd,如果自己更改‎了这个文件,请先确认cm‎d文件的正确‎性;2、编译的时候,如果选择re‎l ease模‎式,请检查一下b‎u ild option‎,把其中的op‎t level改‎为none,即取消编译优‎化选项,很多语句在优‎化的时候可能‎会产生错误的‎优化结果。

或者选择de‎b ug模式编‎译,烧写正确后再‎改为rele‎a se模式,通过对比两种‎模式的编译选‎项也能看出其‎中的区别。

3、程序在fla‎s h中运行会‎比在ram中‎运行大概慢2‎0%,因此对于一些‎时序敏感的外‎设,比如usb总‎线,就有可能需要‎调整时序,否则就会有问‎题。

TI C2000系列DSP Flash烧写解决方案 (Rev[1]. A)

TI C2000系列DSP Flash烧写解决方案 (Rev[1]. A)

1Q05
F28x CCS 插件烧写的一些经验
1. 在擦写的过程中意外或异端终止有可能造成Flash烧毁 2. 通常的非破坏性的错误操作不会影响到CSM,但是要注 3. 4. 5. 6. 7. 8.
1Q05
第三章: F28x Flash CCS插件
Code Composer Studio Plug-in 的特点: 完美的整合到CCS中,并且提供大量的TI在线帮助 开发特定的CCS Flash设备并且提供了多样的设定. 不需要关闭CCS和开关工具即可实现Flash烧写和设置 支持CCS2.2及以上版本
TI C2000 系列DSP FLASH 烧写解决方案
Rev. A
1Q05
综述
TI C2000系列DSP从硬件构架和开发环境上可以划分为 F28x,F240x,F240与F206几类.而Flash的烧写问题一直是 开发过程中,编程人员比较关注的问题. 本文从最后出现的F28x的Flash烧写方法开始,依次介绍这 三种DSP的Flash烧写的方法和步骤. 首先是详细介绍F28系列的烧写工具和方法 由于C2000系列DSP的烧写方法大同小异所以简要描述F240与 F206的烧写方法,并归纳和总结F240x烧写的一些经验 最后一部分以F2812为例介绍用户自定义的嵌入式Flash编程 (API)
1Q05
F28x Flash 流水线模式
Flash一般用于保护用户代码.为了改善代码执行性能, 采用了Flash流水线模式. 通过FOPT寄存器中的ENPIPE位控制流水线模式使能 该模式独立于CPU流水线 该模式下使用了预取机能,减少了Flash对整个代码执 行过程的影响. 改善了FLASH代码执行效率.
1Q05
F28x Flash的电源模式

DSP报错信息

DSP报错信息
Cancel: Remain disconnected from the target
Diagnostic: Run diagnostic utility.
I/O Port = 240
Board Name: F2812 SEEDXDS510PLUS Emulator
Cpu Name: TMS320C2800_0
Abort: Close Code Composer Studio.
Retry: Try to connect to the target again.
Error 0x80000200/-1037
Fatal Error during: OCS,
PTI_ERR_EMU_CLOSE Error Occured at 0x00000000
Sequence ID: 0
Error Code: -1037
Error Class: 0x80000200
SC_ERR_CTL_BUSY <-114>
The controller's commands are taking too long to complete.
This often implies one of the following errors:
1. The cable is disconnected near the controller.
Retry: Try to connect to the target again.
Cancel: Remain disconnected from the target
Diagnostic: Run diagnostic utility.
上电连接

烧写Flash后的DSP程序运行不正常的情况分析

烧写Flash后的DSP程序运行不正常的情况分析

这段时间一直在调试DSP6713的Flash烧写,现在对Flash的烧写也算心中了如。

那天,非常Happy的发现将闪烁LED烧写到Flash成功了,然后,就以为一切都OK了……那天,成功烧写了一个300KB以上的程序,又认为,这次应该OK了……那天,写了个Timer中断程序,烧写到Flash,却死机了……那天,在RAM上运行很流畅的一个算法(算法中调用了CCS的atan函数),在烧写到Flash 后算法却死机了……那天,我开始思考:是什么情况导致RAM中跑得很Happy的程序烧写到Flash就运行得如此的不堪——众多的囧相。

“且行且珍惜”,珍惜这些次发现Bug的机会,因此,我要总结:在RAM中能正常运行,而烧写到Flash后无法正常运行的一些情况讨论。

中断向量表包含了所有中断的入口,在烧写Flash的时候,有两种方式可以保证中断能正常工作。

具体可参见TMS320C6713烧写Flash的通用方法的第5小节。

很多情况下,当出现数组越界时,在RAM中的程序都能正常运行,但在烧写Flash后运行就会出现死机或程序跑飞的现象。

比如定义一个数组,你使用x[5]=10这样的语句在RAM程序中是某些时候能正确运行的,在PC上应该也可以。

但将这种程序烧写到Flash之后运行,DSP果断和你说拜拜!因此,请谨慎地检查程序代码中的数组越界和指针操作。

在DSP程序中,坚决不使用C库函数中的malloc函数。

如果需要动态分配内存的操作,可以自己写一个,或使用uCOS II或DSP/BIOS 等嵌入式操作系统。

也不知道是什么原因,也可能是我对atan函数的使用方法不正确造成的吧。

在我的一个最初的程序中,我是直接这样计算atan(x)的,在RAM中以及在PC中都多次测试过没有任何问题。

烧写Flash之后,也不是死机,但程序运行到atan这个函数的时候会卡上很长一段时间,再接着往下运行。

难道是math.h中的atan运算效率太低?但为什么RAM中就能运行呢?这个还不清楚。

DSP调试及烧写和加载常见错误及分析

DSP调试及烧写和加载常见错误及分析

DSP调试及烧写和加载常见错误及分析在进行DSP调试、烧写和加载过程中,常见的错误有很多,下面是一些常见错误及其分析:1.调试错误:-问题描述:无法连接到DSP设备。

-分析:可能是因为设备未正确连接,或者连接线路有问题,也可能是驱动程序不兼容导致的。

-解决方法:检查设备的连接状态,确保连接正确;检查连接线路是否完好;更新或卸载并重新安装驱动程序。

2.烧写错误:-问题描述:烧写失败或者烧写之后设备无法启动。

-分析:可能是烧写的文件有错误或者不完整,也可能是设备本身存在问题。

3.加载错误:-问题描述:加载程序时出现错误,或者加载之后程序无法正常运行。

-分析:可能是加载的程序有问题或者与设备不兼容,也可能是设备本身存在问题。

4.软件错误:-问题描述:使用的调试、烧写或加载软件出现错误或崩溃。

-分析:可能是软件本身存在问题,也可能是与其他软件或系统的兼容性冲突。

-解决方法:更新软件版本,或者使用其他可靠的软件;检查是否存在与其他软件或系统冲突的情况,如果有需要进行排查和修复。

5.设备故障:-问题描述:设备无法识别、烧写或加载,存在硬件故障。

-分析:可能是设备损坏或老化,设备内部电路出现问题。

-解决方法:检查设备的物理状态,是否存在损坏或老化情况;检查设备的内部电路,如果有问题需要进行修复或更换。

6.嵌入式系统错误:-问题描述:DSP芯片上的嵌入式系统无法正常运行。

-分析:可能是系统的软件代码有问题,硬件与软件的不匹配,系统配置错误等。

-解决方法:检查系统的软件代码,重新进行编译、调试和烧写;检查系统的硬件与软件的兼容性,如果有问题需要进行修复或更换;检查系统的配置参数,进行适当的修改。

在遇到以上错误时,可以根据具体情况进行分析和解决。

同时,可以参考调试、烧写和加载工具的操作手册,寻求厂商的技术支持,或者查阅相关的文档和资料来获取更多的帮助和解决方案。

调试、烧写和加载过程中可能会遇到各种各样的问题,需要耐心和细心进行排查和解决。

DSP软件应用中出现的问题

DSP软件应用中出现的问题

DSP软件应用中出现的问题自己在使用DSP软件Code Composer Studio v4是遇到一些常见的错误:1:Severity and Description Path Resource Location Creation Time Iderrors encountered during linking; "timer_sdram.out" not builtSeverity and Description Path Resource Location Creation Time Idunresolved symbol _ADC_cal, first referenced in ./DSP2833x_SysCtrl.obj出现这样的问题,通常是少了一些文件,需要手动添加这些文件到工程里解决的方法是:在工程上右击links files to project,之后找到DSP2833x _ADC_cal.asm文件添加到工程里2:当我在用到软件中自带的头文件中的一些结构体,共用体。

说白了就是要对芯片寄存器的位进行操作时软件给我们提供了方便,如果不能“.” 符号不能灵活弹出对应选项时,例如CpuTimer0Regs.TCR.all,应该检查CpuTimer0Regs是否敲写正确,应该编译一下工程,我的做法就是写一个头文件,和主函数,并在函数里写一个InitSysCtrl();(当然前提你的头文件要有定义这个函数)在编译。

3:在学习中遇到了在工程中不用添加头文件,有软件来自动查找,就是得先设置Properties选项,指定头文件的路径,在这之前我一直都是手动添加头文件,很是麻烦,对于不太熟练的我还容易出错,4:还要注意要将我们写的程序中用到的源文件全部添加到工程中(这句话听起来好像没说似的,其实不然),如果我们平时在编写程序时,不注意他,他经常会给添加不必要的麻烦(说白了就是在浪费你的时间)5:我在主函数里用到(“MemCopy(&XintffuncsLoadStart, &XintffuncsLoadEnd, &XintffuncsRunStart);”)编译时出现下列错误提示:unresolved symbol _MemCopy, first referenced in ./timer_sdram.obj这样的问题一看就是MemCopy这的问题,1-可能是在你调用前没有声明,在工程中没有添加这个函数2-我们在用到这个MemCopy时拼写错误自己在学习DSP中,在看过的一些书上有的说过在自己编写工程时不清楚自己工程里要用到什么源文件可以把他们都添加到工程里,今天就出现了问题,由此想起了“尽信书不如无书”6:errors encountered during linking; "cpu_flash1.out" not builtplacement fails for object ".text", size 0x1091 (page 0). Available ranges: RAML1出现这样的错误是因为自己多添加了“DSP2833x_ECan.c”这个文件7:errors encountered during linking; "cpu_flash1.out" not builtsymbol "_delay_loop" redefined: first defined in "./cpu_flash.obj"; redefined in "./DSP2833x_Mcbsp.obj" 我的这个程序是对FLASH进行读写操作,正如提示我多加了“DSP2833x_Mcbsp.h”源文件出现了错误。

DSP2008-03学习问题

DSP2008-03学习问题

2008-3-41.C语言条件编译指令是#ifndef ABC_H#define ABC_H…#endif而汇编的条件编译伪指令是.if .elseif .else .endif那么汇编指令要起到如上面C语言指令的作用应该如何写呢?可以让头文件在多个文件中包含而不重复定义。

.bss LF2406_H, 1.if (LF2406_H != 1)编译错误,条件要怎么写?SPLK #1,LF2406_H….endif这样写是否可行?但这有个问题,未初始化变量的初值要是刚等于1。

则头文件的定义就没有编译。

2008-3-12CCS编译器在两个不同的文件里重复包含不会引起重定义错误。

2008-3-51.烧写时出错:Error: Read status value 0x0001 from symbol PRG_statusFlash algorithm failed during clear operation换了一个芯片后烧写正常,运行正常。

之前有一次点在试CSS功能时,不小心点了一次加密,还没执行完,就马上点了解密。

大概就是这样烧坏了。

太脆弱了吧。

再也不敢试加密的了。

CMD文件要避开FLASH的40H~44H区间。

不是有解密的功能吗,为什么写了一次就会烧坏?2.FLASH烧写中的操作Clear 清0,所有的FLASH变成0Erase 擦除,所有的FLASH变成0FFFFH以上两个操作就算选择0000H~0FFFH区,40H~43H区的值也会被改变,但不会被加密。

3.关于编译完自动下载,在Option菜单的Customize中设置了,如下图:但编译连接后就是不会自动下载?2008-3-71.求W = 5X + 10Y – 3Z.dataX .WORD 2F96HY .WORD 18F5HZ .WORD 053AHW .usect “sum”, 2.textSTART: MAR *,AR2 ;设当前ARLAR AR2, #X ;#X相当于C中的&XLT * ;X装载TREGMPY #5 ;计算5XLAR AR2, #YLTP * ;装载Y到TREG,并把5X送入ACCMAY #10 ;LAR AR2, #ZLTA * ;装载Z到TREG,并ACC+10Y->ACCMPY #3SPAC ;ACC-3Z->ACCLAR AR2, #WSACL *+ ;保存结果SACH *因为乘法结果存在RREG,而加减法是在ACC中进行运算的,所以DSP可以有乘且累加、装载TREG且累加等指令。

dsp编译错误与解决方法(精)

dsp编译错误与解决方法(精)
SPRAM: origin=0x0060H,解决书写格式错误
4 W ARNING: entry point other than _c_int00 specified
解决,在“TMS320C6000优化汇编手册”第五章“链接C/C++代
令人生厌的multiple definition of
我把所有的全局变量写在一个global.h里然后其他文件都include了它于是出现了multiple definition of .....编译器gcc后来在网上搜到了很多类似的错误大家各有各的烦心事。我的代码结构
can't open file '/.obj' for input是什么原因引起的?
cmd文件中有不合法的符号比如“//”等
1 fatal error: #error NO CHIP DEFINED详细的出错信息:
"...." -g -q -fr"e:/project_documents/dsp_project/dsp_mp3/Debug" -d"_DEBUG" -@"Debug.lkf" ...c"
\main.obj
>> error: symbol referencing errors
提示找不到符号,一般是出现在用c调用汇编函数的时候,比较大的可能性是汇编程序里面
的标号写错了(特别是前面少了一个下划线,或者是忘记将标号定义成全局的了(在文件开
头用".global标号"的形式可以定义不过我碰到另外一种情况,是由于存在同名的文件.比如说我的工程里面,有dot.c和dot.asm两个文件,分别定义了dot_c和dot_asm两个函数,这个时候就会有其中一个函数提示找不到了,经过检查,原来CCS在编译的时候,会根据文件名(不含扩展名生成同名的目标文件(扩展名为obj,而我前面的两个文件,文件名相同而扩展名不同,那么在编译的时候,就会有一个生成的目标文件被另外一个覆盖的问题(取决于编译的顺序.知道了原因就好解决了,只要这两个文件的文件名不要相同就好了.

F28335_DSP_烧写程序的方法

F28335_DSP_烧写程序的方法

张掌柜讲F28335DSP系列之把DSP程序从烧到RAM变成烧到FLASH中的方法一、前言1、首先跟大家强调一点,阅读这个文档的前提是,已经阅读过本店《张掌柜讲DSP系列之CCS4.2 XDS100在CCS4.2环境下仿真编程新手入门.pdf》这个文档,并且熟练掌握里面的操作步骤。

我后面讲解的话语里面,如果有你看不懂的,请回过头去看《张掌柜讲DSP系列之CCS4.2 XDS100在CCS4.2环境下仿真编程新手入门.pdf》。

这个文档我写的比较简练,希望大家看的时候仔细一些。

2、其次,说明一下我写这个文档的原因,很多买家朋友在本店购买TMS320F 28335DSP开发板套装,在RAM程序调试完毕后,将程序固化到FLASH的过程中遇到困难。

因为这些困难是很多朋友都会遇到的,所以我专门写这个文档讲解一下。

3、提醒一下,用仿真器烧写DSP的FLASH程序完成后,给开发板断电,然后拔掉仿真器和DSP开发板之间JTAG的连接,然后再给开发板上电,否则DSP开发板连着DSP 仿真器的时候,无法正常运行FLASH中的程序。

4、最后说明一下,在CCS4的Debug界面下,可以成功的Connect(连接),可以成功的Load program到DSP的片内RAM中,这个就说明DSP仿真器和DSP开发板没有硬件上的损坏或者问题,完全可以放心。

二、把烧写到RAM程序修改成烧写到FLASH的首先,希望大家明白一点,想把一个原来是烧写到DSP的片内RAM的程序修改成是烧写到DSP片内FLASH的程序,不仅仅是修改一个cmd文件就结束了,还需要做其他几个步骤,这里我重点强调一下。

第一步:把28335_RAM_lnk.cmd这个从project中移除,用右键选择28335_RAM_lnk.cmd然后选delate。

如下图1,然后出现对话框,点YES,如图2。

图1图2第二步:右键选择project名称,然后选add file to project,如下图3,然后出现浏览框,在\Code of TMS320F28335 CCS4\v120\DSP2833x_common\cmd这个子文件夹下,选择F28335.cmd,点OK,至此可以在project的文件列表内看到F28335.cmd被添加到project中。

DSP烧写错误原因

DSP烧写错误原因

DSP烧写错误原因1.DSP程序烧写后,带仿真器程序能正常运行,通信测试是对的,但拔下仿真器后就出错了,请问是什么原因?答:串口通信连着仿真器说明有硬件电气连接。

使用无源rs232转485接口跟dsp通信的,接着仿真器就行,不接仿真器通信异常。

然后把485的地和dsp电源的地共起来,就好了。

2. DSP使用仿真器很正常工作,但是通过烧写到ROM后,load代码到DSP RAM中后无法正常运行.答:首先检查你的烧写程序可有问题。

有些烧写程序指定.test代码长度。

其次在代码上找问题,可以锁定在在线与烧写cmd文件的变化。

烧写原理是什么?代码编译为二进制或十六进制数,搬移进rom,存储起始地址、长度确定没有问题。

假设正确,检查能否在线对rom进行正常的擦除与读写?假如还是正确,检查硬件电路,这个就比较麻烦了。

确定启动模式设置的正确?自举启动要dsp外围电路的电压、时钟、模式选择、默认态确认正确?还有问题就是芯片自启动有问题了3.我也出现过能仿真,但不能烧写的情况!解决方法:降低时钟频率。

点击FLASH插件上的“View Config File”,打开VAR.h文件。

将该文件中的“PLL_PATIO_CONST .Set 0000h”改成“PLL_PATIO_CONST .Set 0200h”存盘后,执行目录下的Buildall.bat批处理文件。

再重新启动CCS及FLASH插件。

最大可能是DSP的FLASH烧掉了,这个烧掉不影响程序的仿真;我之前也是烧不进去,后来换了块芯片就好了,芯片的来源很重要。

第二个问题是你在烧写程序时将CMD修改了没有,要跳过密保单元;你的memory map设置是否正确? 还有如果烧写flash 评估办上跳线是否正确? 我用的时候好几块评估板都是可以load programme 。

可以加载到ram 中进行仿真,但是不能烧写道flash 进行自动运行。

4.我也遇到这样的问题,同样郁闷。

dsp 编译错误与解决方法

dsp 编译错误与解决方法
GEL_MapAdd() from my earlier post. With the original GEL file CCS thinks that this memory range is invalid (because the simulator does not support the PLL). This would get rid of the errors regarding accessing that memory space, but because the PLL is not supported on the simulatorwrites to this address will not work. I've seen the project you mentioned before, but I do not remember enough about it to know whether or not this would cause the application to fail. I think a bigger question here is why work on the simulator if you have a DSK handy? The code from that book is designed specifically to work on the DSK hardware, not on a CPU simulator.
can't open file '/.obj' for input是什么原因引起的?
cmd文件中有不合法的符号比如 “//”等
1fatal error: #error NO CHIP DEFINED详细的出错信息:

DSP常见问题

DSP常见问题

在CCS下,OUT文件加载时提示“Data verification failed...”的原因?Link的CMD文件分配的地址同GEL或设置的有效地址空间不符。

中断向量定位处或其它代码、数据段定位处,没有RAM,无法加载OUT文件。

解决方法:1)调整Link的CMD 文件,使得定位段处有RAM。

2)调整存储器设置,使得RAM区有效如何选择外部时钟?DSP的内部指令周期较高,外部晶振的主频不够,因此DSP大多数片内均有PLL。

但每个系列不尽相同。

1)TMS320C2000系列:TMS320C20x:PLL可以÷2,×1,×2和×4,因此外部时钟可以为5MHz-40MHz。

TMS320F240:PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部时钟可以为2.22MHz-40MHz。

TMS320F241/C242/F243:PLL可以×4,因此外部时钟为5MHz。

TMS320LF24xx:PLL可以由RC调节,因此外部时钟为4MHz-20MHz。

TMS320LF24xxA:PLL可以由RC调节,因此外部时钟为4MHz-20MHz。

2)TMS320C3x系列:TMS320C3x:没有PLL,因此外部主频为工作频率的2倍。

TMS320VC33:PLL可以÷2,×1,×5,因此外部主频可以为12MHz-100MHz。

3)TMS320C5000系列:TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为0.625MHz-50MHz。

TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为6.25MHz-300MHz。

dsp编译错误与解决方法(精)

dsp编译错误与解决方法(精)
2 Q I have started to study the book "Digital Signal Processing and Applications with the C671
3 and C6416 DSK (by Rulph Chassaing, 2005". I am working with a C6713DSK, using CCS 3.1. But when I try to run the first example (sine8_LED in Rulph Chassaing's book on the C6713 Device Cycle Accurate Simulator, I get the following error messages: Trouble running Target CPU: Memory Map Error: READ access by CPU to address 0x1b7c100, which is RESERVED in Hardware. Trouble running Target CPU: Memory Map Error: WRITE access by Default to address 0x1b7c100, which is RESERVED in Hardware.
main.cpp
#include "global.h"
WinMain(....
...
}
file_1.cpp
#include "global.h"
....
file_2.34;
...
由于工程中的每个文件都是独立的解释的即使头文件有
#ifndef _x_h

DSP28335烧写方法剖析

DSP28335烧写方法剖析

DSP28335—FLASH烧写的方法(2013-10-17 14:09:59)转载▼分类:学习交流标签:dsp文章来自:百度文库把烧写到RAM程序修改成烧写到FLASH的首先,希望大家明白一点,想把一个原来是烧写到DSP的片内RAM的程序修改成是烧写到DSP片内FLASH的程序,不仅仅是修改一个cmd文件就结束了,还需要做其他几个步骤,这里我重点强调一下。

第一步:把28335_RAM_lnk.cmd这个从project中移除,用右键选择28335_RAM_lnk.cmd 然后选delate。

第二步:右键选择project名称,然后选add file to project,然后出现浏览框,在\Code of TMS320F28335 CCS4\v120\DSP2833x_common\cmd这个子文件夹下,选择F28335.cmd,点OK,至此可以在project的文件列表内看到F28335.cmd被添加到project中。

第三步:在main()函数中添加如下语句MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();上述两句话添加在InitPieVectTable();这句的下面的一行。

添加语句的时候,注意不要添加错了,每一个字母都要正确,括号也要用英文括号。

第四步:添加DSP2833x_MemCopy.c这个文件到project中,右键选择project名称,然后选add file to project,然后出现浏览框,找到\Code of TMS320F28335 CCS4\v120\DSP2833x_common\source文件夹中的DSP2833x_MemCopy.c这个文件,然后点OK。

第五步:编译,点rebuild,编译至少要保证没有ERROR,否则请检查一下在第三步操作的地方是不是有错误。

dsp错误集锦

dsp错误集锦

1、syntax error 语法错误2、MEMORY specification ignored RAMM1 不存在的内存说明3、'./Debug/s1.out' not built 没有建立.out文件4、can't open file 'o.obj' for input: No such file or directory5、entry point other than _c_int00 specified 与_c_int00指定的输入点不同6、MEMORY specification ignored 忽视了内存规范7、symbol referencing errors 标签引用错误1.如何为工程添加相应的include(.h)文件对pjt点右键,选择“Scan All File Dependencies”.2.编译错误CCStudio_v3.3/C5500/csl/include/csl_chiphal.h", line 201:fatal error: #error NO CHIP DEFINED 如何解决解决办法:(摘自这里)Project --> Build Options --> Preprocessor --> Pre-define Symbols 中加入CHIP_55023.warning: entry point symbol _c_int00 undefinederror: symbol referencing errors - ./Debug/dc_motor.out not built解决办法:是因为没有添加rts.lib文件导致的。

对“library”点右键,添加C5500文件夹下的cgtool中的rts55.lib文件,即可。

4.错误类型error: linking files for incompatible targets解决办法:出现这个错误是因为之前选择memory模式的时候和后来lib的设置不匹配,例如,如果之前在build option的complier的advance里设置的是large memory模式的话,则在linker的设置里面就要设置为rts55x.lib模式,而不能设置为rts55.lib。

DSP软件常见错误

DSP软件常见错误

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错误,一般都是因为库文件的问题。

DSP错误总结!

DSP错误总结!

1.warning:entry point symbol _c_int00 undefined使用C写DSP时,在rts.lib库中定义了入口地址:_c_int00而使用汇编语言编程,就不用包括rts.lib库,所以入口地址及其标号可以由人工指定。

而使用C时,就不同了,必须从rts.lib定义的这个入口_c_int00入口,是约定的。

The–c and cr options cause the linker to use linking conventions that are required by the Ccompiler.”其实在汇编语句中也可以不用_c_int00来定义程序入口,只要把编译器选项-c去掉,用-e选项来定义你想要的程序入口地址。

这个可在CMD文件里加-c。

这个错误是没有加库文件,你可以project view右键加入,也可以在project->build options->Linker->libraries中加入../../lib/cls/lib/(搜索路径)还要加上库名cslDM642.lib;rts6400.lib分号隔开。

2.Error:Illegal opcode at pc = 0x000190我第一次遇到这种错误,因为B跳转(分支)指令要有五个周期的延时,所以加上NOP 5就好了。

b .s2 b3;NOP53. error:can't allocate .text, size 006e40 (page 0) in LP (avail:001000)>>error:errors in input - ./Debug/mytest2.out not built这种情况是你的CMD文件中分配的存储空间太小了,LP:origin = 0x0,len = 0x1000改成LP:origin = 0x0,len = 0x100就可以可。

DSP软件常见错误

DSP软件常见错误

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错误,一般都是因为库文件的问题。

DSP常见编译错误

DSP常见编译错误

1. DSP编程技巧到底有什么好资料?话说专门深入讲解这个的资料并不是太多,因为大部分DSP书籍都是讲解算法或者寄存器是怎么使用的,那尽量罗列一下(如有遗漏请在评论区补充),有:(1)《DSP C2000程序员高手进阶》这本书是当年笔者学习DSP的时候看了好几遍的,讲的非常深入、透彻,可惜早就卖光了并且没有再版。

需要的网友可以考虑去图书馆看看,图书馆里最不缺少的就是老版本的书籍了。

(2)EEPW牛人业话我们EEPW首页的牛人业话里,已经有大量这方面的总结了,链接太多就不一一列举了,请到/news/articlelist/type/39中阅读。

(3)官方资料最权威的当然还是官方资料,特别是《TMS320C28x Optimizing C/C++ Compiler User’s Guide》和《TMS320C28x Assembly Language Tools User’s Guide》。

不足之处就在于,它们都像教科书,严谨有余,活泼不足,特别是初入门的人看起来会比较累。

(4)参加一些培训好的培训一般都是要付费的,这个要根据自己的实际情况进行取舍了。

2. 答疑解惑哪家强?经验的积累,除了自己努力的自学之外,有时候一些难关还是得有别人的帮助才行,可能你花3天搞不定的问题,他一看就想起来是什么原因了。

如果是企业客户,那直接联系官方技术支持,很容易就搞定了。

或者也可以去官方论坛提问,然后等待解答。

对于广大网友来说,直接获得技术支持可能有一定的难度。

我们EEPW的论坛的人气充足,对问题的响应速度也是迅雷不及掩耳的,所以有关DSP的问题尽可以到/forum/29/1下提问。

前面这两个无关具体技术,但是能起到―源头‖的作用。

接下来就是具体的技术问题了,有几十个,我们慢慢来看吧。

3. 作为入门者,创建一个最基本的工程需要做哪些事情?最简单的入门方法是从现有的例子上入手,比如购买开发板的话,一般都会附送十几到几十个上手用的例子工程,把它们研究一遍,基本上入门这关就过了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.DSP程序烧写后,带仿真器程序能正常运行,通信测试是对的,但拔下仿真器后就出错了,请问是什么原因?答:串口通信连着仿真器说明有硬件电气连接。

使用无源rs232转485接口跟dsp通信的,接着仿真器就行,不接仿真器通信异常。

然后把485的地和dsp电源的地共起来,就好了。

2. DSP使用仿真器很正常工作,但是通过烧写到ROM后,load代码到DSP RAM中后无法正常运行.答:首先检查你的烧写程序可有问题。

有些烧写程序指定.test代码长度。

其次在代码上找问题,可以锁定在在线与烧写cmd文件的变化。

烧写原理是什么?代码编译为二进制或十六进制数,搬移进rom,存储起始地址、长度确定没有问题。

假设正确,检查能否在线对rom进行正常的擦除与读写?假如还是正确,检查硬件电路,这个就比较麻烦了。

确定启动模式设置的正确?自举启动要dsp外围电路的电压、时钟、模式选择、默认态确认正确?还有问题就是芯片自启动有问题了3.我也出现过能仿真,但不能烧写的情况!解决方法:降低时钟频率。

点击FLASH插件上的“View Config File”,打开VAR.h文件。

将该文件中的“PLL_PATIO_CONST .Set 0000h”改成“PLL_PATIO_CONST .Set 0200h”存盘后,执行目录下的Buildall.bat批处理文件。

再重新启动CCS及FLASH插件。

最大可能是DSP的FLASH烧掉了,这个烧掉不影响程序的仿真;我之前也是烧不进去,后来换了块芯片就好了,芯片的来源很重要。

第二个问题是你在烧写程序时将CMD修改了没有,要跳过密保单元;你的memory map设置是否正确? 还有如果烧写flash 评估办上跳线是否正确? 我用的时候好几块评估板都是可以load programme 。

可以加载到ram 中进行仿真,但是不能烧写道flash 进行自动运行。

4.我也遇到这样的问题,同样郁闷。

一个以前跑过的好好的程序,因为改了仿真器的配置,就出现了楼主所述问题,反复尝试,都是如楼主所述。

后来我是通过以下方法解决的:打开Setup CCStudio v3.3-选择F2407 XDS510Emulator-设置F2407 XDS510 Emulator的属性-再设置TMS320C24xx_0的属性5我以前也遇到过,用如下的方法解决的:首先,"degug"--"reset DSP";然后, 电路上硬件复位,即reset引脚处的复位。

6.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.7.:在调试硬件时,程序无法下载到存储器中,出现错误,data verification failed at address 0x40,please verify target memory and答:1. 确定CMD文件没有问题,到底是Flash的CMD还是Ram的?2. 用TI的历程尝试,判断是否是硬件问题。

8.仿真器在线仿真正常,写入片子后工作不正常的问题1、复位电路是否正常2、晶振是否正常3、最小系统电路是否正确4、是否片子坏了总结:1.程序肯定是对的。

2.硬件方面 rom和FLASH是否损坏,其次检查配置,电源、引脚配置3.软件CCS的设置上4.人为因素:烧写方法,cmd修改,密保单元是否跳过。

在TI DSP开发板中烧写Flash程序实现在FLASH存储器烧写程序一般有以下三种方法:一是通过编程器下载烧写;二是通过开发商提供的专门软件工具+在线仿真器烧写;三是自己编程通过DSP烧写。

个人使用的是合众达电子SEED-VPM642开发板,在最新版本例程中提供了专用的烧写软件SeedConvertTool.exe;但为了实现通用的FLASHBURN烧写,我进行了一些尝试以便了解程序烧录过程及运行情况。

实现Bootloader自引导功能,除了需要生成可执行文件(.out),还需要进行如下步骤:1、合理配置工程文件(.pjt):需要添加一个boot.asm文件(做搬移时一些初始化和跳转工作),另外工程中.cmd文件也需要为bootloader保留空间。

2、将添加了boot.asm和修改cmd后重新生成的.out文件转化为.hex文件,这时需要一个转换.cmd文件(这个.cmd文件与工程文件中.cmd完全不同,前者是为了指明flash的属性(大小,数据宽度,起始地址和产生文件名)以实现转换.out文件为flash兼容的.hex文件,不能混淆)。

3、最后通过Flashburn工具将.hex文件写入Flash,这时需要转换.cmd文件、.hex文件和FBTC642.out文件。

介绍下各烧录中用到的文件(Flashburn、FBTC.out、hex6x.exe,.cdd和.cmd文件)作用:1、FBTC.out文件:负责对flash的操作,比如flash的擦除、读、写等。

这里主要看个人板子上flash的型号,因为不同型号的flash,它们的操作命令不一样。

这样你就必须对FBTC工程进行修改,然后重新编译生成.out文件。

如DM642开发板使用的FBTC文件在安装ccs的根目录下(boards\evmdm642\flashburn\FBTC642)。

2、hex6x.exe:将用户工程生成的.out文件转换为二进制文件的工具,这样Flashburn就可以将.out文件以二进制方式烧进flash中。

3、Flashburn:TI的第三方软件公司 Software Design Sloutions 为TI的DSP用户编写的Flash烧写软件,给软件以CCS为基础,通过运行仿真程序FBTC,将用户程序写入Flash中。

4、.cdd文件:保存Flashburn的设置的。

5、.cmd文件:指明flash属性(大小,数据宽度,起始地址和产生文件名),按照flash 要求实现将.out文件到二进制文件的转换。

具体步骤:1。

用户程序中添加boot.asm文件,修改.cmd文件中的MEMORY和SECTION部分(DSP/BIOS环境中直接通过配置CDB或者TCF文件中的System->MEM->ISRAM即可;非DSP/BIOS在cmd文件中添加一个名为BOOT的section,位置为0x000,长度为0x400),在连接仿真器环境下编译生成可执行的.out格式的COFF文件。

2。

使用HEx6.exe工具,将工程文件生成的.out文件转换成为HEX的ascii格式的二进制文件。

a.编写一个.cmd文件用于设置hex6x.exe的参数如果例程中存在,则可用记事本打开如下:SeedH264loopback.out-a-memwidth 8-boot-bootorg 0x90000400-bootsection .boot_load 0x90000000ROMS{FLASH: org = 0x90000000, len = 0x400000, romwidth = 8, files ={SeedH264Loopback.hex}}b.生成二进制文件:两种方法:i)将.cmd文件和.out文件放在同一目录下,双击convert.bat。

具体操作是将三个文件复制到一起分别是:hex6x.exe和.cmd以及.bat在编辑修改其中的内容(改文件名),最后运行批处理文件即可;ii)通过windows命令窗口键入命令进行转换。

将.out文件,cmd文件,和hex6x.exe文件放在同一个文件夹内。

如C:\DSP_BURN。

在dos窗口中键入cd C:\DSP_BURN将路径改为“C:DSP_BURN>”,再键入“hex6x.exe XX.cmd”结果生成“XX.hex”文件在DOS下进入程序保存的目录,直接运行(hex6x.exe)如D:\ti\myprojects\a_video_process_XY>hex6x hex6x.cmd文件得到二进制文件(可以从DOS状态看到),此时就得到了seedvpm642_vedioloop_ahex.hex(文件名可能不同)用于烧写的文件。

注意:hex6x.exe的版本,如果版本太低,在转换过程中会出现问题。

二、改写FBTC工程,这个CCS工程编译而成的文件主要是对flash的操作,其作用相当于一个搬运工具,将hex文件由PC搬入Flash中。

这里要注意自己的CCS版本和flash 的型号,编译完成会得到一个FBTC642.out文件。

对于不同的DSP系统板,TBTC工程主要修改DM642teb.h、FBCmd.c、FBTC_DM642.c和FBurnCmd.c等文件。

三、打开开发板上电,启动ccs软件,加载gel文件并连接(connect)硬件仿真器。

四、打开FlashBurn软件,重新对主界面中“Conversion Cmd”、“File to burn”、“Fbtc program file”的三个文件的路径重新设置,分别点击“Browser”按钮,找到事先创建的相应目录下的三个文件“.cmd”、“.hex”、“FBTC642.out”;然后保存关闭cdd文件。

相关文档
最新文档