MSP430大数组定义,不能正常运行的问题
定义太大的RAM,那就有可能会遇到 RAM中定义的变量/数组在超过一定范围的时候,MSP程序不能正常运行的现象吧.一般初步判断,可以用I/O输出电平来确定程序进程.这样可以非常方便的知道该问题是由于WDT造成的,(RAM的初始化时间大于WDT默认的32MS时间,因此MSP复位)
下面来看下解决的办法:
A、 对数组用 __no init_定义,上电编译器不产生特殊的附加函数去初始化RAM
B 、修改IAR中Cstartup.S43文件中__program_start子程序,增加一个关闭WDT的操作或者设置WDT时间长度超过32MS
C 、在Project--Options--Linker--Config中选择 Override default programe,并将Entry lib 设置成 __program_start
上述是已知解决RAM初始化时间超WDT默认而复位的解决方法