今天调CCS遇到了一个问题,程序编译啥的都没问题,只是在软件仿真时,Run了忽然给跳错了一个错误
Illegal opcode (0ec003f1) at pc =0x8007af04
网上关于CCS的文章太少了,这了半天没找到,经过反复调试发现了问题:
这种问题是由于堆栈存储问题造成的,一大部分是因为程序的问题,其中pc=0x8007af04是出问题变量的物理地址,但是我没有找到通过地址找到变量的方法,而且出问题的变量很可能不是问题根本的所在,所以还是要好好分析程序,这里给出两种方法
1.将鼠标放在变量名上可以查看变量的信息
2.直接搜索expressions窗口,或者在View-expressions里查询你需要的变量
我的问题所在是
lbp[i][j]=lbp[i][j]+1;
在外部不断的循环中,int型的lbp数组不知不觉的超出了他的最大限度,因此出现了错误。后来在for循环前加了一句lbp[i][j]=0;每次计数前先将其清零,就不会在出现错了。
所以,这个错误只是程序的逻辑错误,只要好好分析程序,一定能找到真正问题的所在。
小一第一次写东西,希望能对各位和我一样的小白有帮助,也希望大家能喜欢,也欢迎各位一起讨论学习