CCS6.0调试DSP28335,仿真器为100V2,在调用的函数前打断点,程序运行到断点,再点单步运行,程序跑到调用函数前面的几行,有时候甚至跑到注释。继续单步运行,程序运行箭头在注释中一行一行的执行,但是对应变量值却变了,说明CCS6.0单步运行显示的位置与程序实际运行的位置不对应。
一开始怀疑仿真器问题,换了仿真器后,也是这样。断点位置、单步运行位置和实际执行语句不是同一句。
发现问题:CCS编译器的行数与UEdit和SourceInsight下的行数不同,在CCS该函数前打断点,单步运行时箭头直接走到1175行。
CCS:
UEdit:
SourceInsight:
CCS环境下,两行语句之间会凭空多出一行空行,积少成多,行号相差很大值
解决:
用UEdit或Notepad++打开错位串行的文件,格式由Windows改为UNIX,重新编译后CCS行号正确(如果仍不正确,改成DOS格式试一下,不同的编译器支持的格式不同,看一下不串行的文件是什么格式)。