使用IAR调试阶段,新下载的程序不大,code和向量地址位置全部分别在xcl分配完毕。
调试时,Data Model选择了large或medium,结果下载新程序后,当使用通信发送一个字节后,提示我CPU is OFF。
但Data Model使用默认的small,新程序可以正常工作,持续通信。
这是为什么呢?
由于我之后可能会下载一个更大的程序,0x10000以后的地址也会用到,所以这个Data Model可能必须要修改,但看这情况,下载是可正常下载,但就是无法工作。
还有,我正常下载的程序,通信发送一个字节后,程序工作异常,停在了0x0004不动了,是怎么回事,也不提示我CPU is OFF。
跪求大神解答!!
灰小子:
你在调试bootloader吗?
bootloader一般都是在小模式下编译的吧
Chauncy Li3:
回复 灰小子:
这个大小模式有什么区别吗不太理解
灰小子:
回复 Chauncy Li3:
出现CPU is OFF,一般就是程序跑飞了,或者堆栈有溢出等情况
Chauncy Li3:
回复 灰小子:
问题我用bootloader升级的程序,直接仿真器烧进去跑没有问题,堆栈我也是在xcl里全部//让编译器自己分配了
Susan Yang:
回复 Chauncy Li3:
– 选中SMALL只能访问64K以内的空间,以外的空间只能有内部函数访问
– 选中Medium 可以访问1M以内的空间
– 选中Large可以访问全部空间
Susan Yang:
回复 Chauncy Li3:
netstorage.iar.com/…/EW430_CompilerReference.pdf
Chauncy Li3:
回复 Susan Yang:
所以我在xcl里的data20必须分配地址是吗
Chauncy Li3:
回复 Susan Yang:
如果想用medium或是large
Chauncy Li3:
有人知道铁电的硬件中断向量是否可以通过地址直接修改呢??