This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
6678
ccs 5.3
RTSC工程
单核(core0)运行程序的时候,运行到某处,出现TMS320C66x_0: Warning: Illegal opcode (00ff0406) at pc = 0x00836e7c Illegal opcode at pc = 0x00836e7c ,查了一下,大多说是stack和heap的问题。所以我也试图将stack和heap的大小设置的更大
我在properties->c6000 link->basic option里的stack size和heap size两处设置,还在cfg中加了两句
Program.sectMap[".sysmem"] = "DDR3";
Program.sectMap[".stack"] = "DDR3";
也不解决问题,而且连map文件中的stack length都没有改变,还是默认的0x1000
然后我试着在cmd中用-heap和-stack,但是这个cmd不是编译时自动生成的么,手动改能长久的生效么,不过我改了之后,map里的stack大小变成我在cmd中设置的了,但是运行还是warning,,若设置了很大的空间值,则运行都成问题
我也试了直接改map文件,也不行
所以我想问问,rtsc工程中,
1. illegal opcode到底是stack的问题还是heap,还是和两个都有关系?
2. 设置stack和heap的大小,我到底应该在哪里设置,在哪里设置才是真正有效的?
3. 还有就是,对于一个工程,它用到的stack和heap到底是多大,我到底该设多大的值呢? 我看过一个在ccs4下的查看stack峰值的方法,但是ccs5上怎么看呢?