CCS调试常见报错

更新时间:2024-04-09 12:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.\DEFINED ? 芯片型号没有确定

解决方法:Build option> complier> 添加: -d\–ml

2. Error: WARNING: PAGE BOUNDARY CROSSING DETECTED AT PROGRAM COUNTER 0x1797 ?

3. undefined first referenced symbol in file --------- ----------------

__mpyd D:\\\\cs\\\\PROJECT\\\\DSP\\\\5509\\\\ok\\\\sinewave\\\\Debug\\\\sine.obj _sin D:\\\\cs\\\\PROJECT\\\\DSP\\\\5509\\\\ok\\\\sinewave\\\\Debug\\\\sine.obj _puts D:\\\\cs\\\\PROJECT\\\\DSP\\\\5509\\\\ok\\\\sinewave\\\\Debug\\\\sine.obj __divd D:\\\\cs\\\\PROJECT\\\\DSP\\\\5509\\\\ok\\\\sinewave\\\\Debug\\\\sine.obj __fltid D:\\\\cs\\\\PROJECT\\\\DSP\\\\5509\\\\ok\\\\sinewave\\\\Debug\\\\sine.obj >> error: symbol referencing errors - './Debug/sinewave.out' not built ? 解决方法:变量为定义。添加运行时库rts55.lib

4.\ ? 当工程转移时,有的 .h 或者 .c文件的路径变了,编译时报错。

解决方法:将文件evmdm6437.h直接复制后放到工程文件所在的文件夹。

5. \line 73: error: argument of type \short *\is incompatible with parameter of type \ ?

emif_read32( base, size ,&EMIF_DATA[0][0]); 解决方法:错误的将EMIF_DATA定义为一个16位的数组 Uint16 EMIF_DATA[4][2048];

6. error: argument of type \short (*)[2048]\is incompatible with parameter of type \ ?

Uint16 DATA_EMIF[4][2048];

emif_read32( base, size ,DATA_EMIF[0]);

当DATA_EMIF[0] 换成DATA_EMIF就报错,

7. Heaps are enabled, but the segment for DSP/BIOS Objects (MEM.BIOSOBJSEG) is not set correctly. Please create a heap in one of your data segments and set MEM.BIOSOBJSEG to it. ?

我用dsp bios生成程序在保存时出现一下错误,网上搜索有人也遇到此问题,经多方探索找到解决方案,先公布如下,希望对后学者有帮助。我用的是TMS320DM6437 错误如上: 解决方法:右键点击MEM-Memory section manager->properties ,你可以看到segment for DSP/BIOS Objects和segment for malloc()后跟的选项只有MEM_NULL,问题就出在这里,你可以将你所定义的MEM下的任一选项:SRAM,MSARAM等等,拿 MSARAM为例,右键MSRAM->properties 将\打勾,在\中输入大小,将\打勾,在\中输入任

意堆栈名。点“应用”、“确定”。补充下,修改完MSARAM后,右键点击MEM-Memory section manager->properties ,你可以看到segment for DSP/BIOS Objects和segment for malloc()后跟的选项改为MSARAM即可。

8.

>> linker.cmd: error: system error, can't open file '/.obj' for input: No such file or directory >> Compilation failure ?

在link.cmd 文件中去掉 -l rts64plus.lib 就报上面错误。

9.

>> error: can't allocate .text, size 00002ca0 (page 0) in IRAM (avail: 000001c0) ? IRAM中数据过大,无法再分配数据内存。可以查看debug里的.map文件查看十分代码和数据所在内存过大。

解决方法:将数据定义到DDR中,使用一下语句:

#pragma DATA_SECTION(input_mti_imag,\将input_mti_imag数组分配到DDR中。

10. \ at line 365: [ ***** USER ERROR ***** - ] Project build options do not match Global configuration settings. Compiler options do not specify -mv64+, but configuration is for C64x+ ?

添加bios后,及报错。由于Project build options与Global configuration settings设置不匹配。 解决方法:Project build options——》Compiler——》Basic——》Target Version 改成c64x+ 与BIOS——》Global configuration settings(右击)——》General——》Target Board Name 一样。

11. 主板无法连接。

Error connecting to the target: Error 0x80002240/-233

Fatal Error during: Initialization, OCS, Control, This error was generated by TI's USCIF driver.

SC_ERR_PATH_BROKEN <-233>

The JTAG IR and DR scan-paths cannot circulate bits, they may be broken. An attempt to scan the JTAG scan-path has failed.

The target's JTAG scan-path appears to be broken with a stuck-at-ones or stuck-at-zero fault.

Board Name: DM6437 XDS560 Emulator Cpu Name: ICEPICK_C_0

Abort: Close Code Composer Studio. Retry: Try to connect to the target again. Cancel: Remain disconnected from the target Diagnostic: Run diagnostic utility. 解决方法: 12.

Power Failure on Target CPU

Failed to remove the debug state from the target before disconnecting. There may still be breakpoint opcodes embedded in program memory. It is recommended that you reset the emulator before you connect and reload your program before you continue debugging. DSP设置段点读数据,就掉。

解决方法:FPGA在运行过程中一直占用EMIF总线未释放,使得DSP 读取数据时冲突,导致掉线。只要在FPGA代码中EMIF 输出增加一变量。工作是作为输出平时为高阻。 这样就不会因为读数据或初始化EMIF就掉线了。 13.

在dm6437评估板上用ndk包调试网口(emac)的时候,每次加载例程,都会报错(见下图),单独编译是没有问题的。如果在加载这个例程之前先加载一个评估板自带的完好例程,再运行初始化函数EVMDM6437_init( );,接着就可以加载ndk中的例程到评估板中去了,

编译好 client.pjt工程后,下载.out文件时出现以下错误。查找.MAP文件没有发现内存溢出的情况。

在先运行另一个工程的EVMDM6437_init( ); 后就不报上面的错误。 但直接加入 EVMDM6437_init( ) 到主函数还是报错。

解决方法:在评估板的提供商官网上下载了DM6437EVM配套资料,里面包含有调试所需的GEL文件。直接load下的GEL文件,再load工程文件,还是不行。后来在熊老师的帮助调试下,解决了这个问题。具体操作:发现是gel文件里面只要单独执行Setup_PLL2_DDR_162_MHz_OscIn( ); Setup_DDR_162_MHz( ); 这两个函数,再load工程就可以。初步怀疑是gel文件在初始化了DDR,后又恢复了系统以前的设置,就相当于初始化。具体的还是看调试验证。不过问题已也算解决了。

GEL文件load之后,执行时CCS的状态显示图:

14. 新加工板板无法下载程序。

PC通过XDS560连接DSP,向DSP下载.OUT文件时报下图错误。

电压算正常:dsp核电压1.2v;dspIO电压3.24v;DDR2供电电压1.74v。上电顺序也是对的,先核上电,在IO上电。 发现有可能是大小端有问题,连上之后CCStudio:Parall Debug Manager 显示的是big endian,应该是litter endian。可是在dm6437datasheet上没有发现对应的管脚,但是发现了dm6437只支持小端模式(Supports Little Endian Mode Only),那就是说没有这个款芯片没有所谓的设置大小端的管脚。

解决方法:大小端的问题,刚刚试了一下网上说的一个方法:上电以后,复位了一下,再加载.OUT 文件就没有报错。CCS manager 显示的也变成litter endian了。老实说我还是不晓得为什么会这样。 类似问题的帖子:

http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/99/p/74016/364384.aspx

15. 加工板新板使用调试emac口是自动running

我在load .out文件CCS就自动running,这是怎么回事?

ccs3.3——》option——》customize——》go main automatic设置了。 用的片子是DM6437,调试的是网口,工程用到了DDR2。 工程编译的没有问题。

16. 加工板旧版连接报错。

Error connecting to the target: Error 0x80000240/-1146

Fatal Error during: Initialization, OCS,

Invalid data was scanned by the emulation controller.

Verify the board setup to make sure the scan chain is properly defined.

If the setup is correct, then RESET EMULATOR. This will disconnect each target from the emulator. The targets should then be power cycled or hard reset followed by an emureset and reconnect to each target.

Board Name: DM6437 XDS560 Emulator Cpu Name: C6400PLUS_0

Abort: Close Code Composer Studio. Retry: Try to connect to the target again. Cancel: Remain disconnected from the target Diagnostic: Run diagnostic utility.

17.将MATLAB生成的.DAT文件导入到CCS中的时候,显示的数据有问题,每个16位的有效数据中间都有一个16位的0x0000

解决方法:在matlab中将两个16位的数据拼成32位的数据保存成.DAT,再导入CCS。 DAT文件32位数据图:

CCS导入DAT文件正确数据图:

18. CCS5.3为什么不能在.H中声明函数?

本文来源:https://www.bwwdw.com/article/sw7r.html

Top