纪泽江 发表于 2017-3-1 09:15:27

IAR FOR 430 版本6.3或6.5,data内存使用大于4.8K就代码异常

最近有个项目用到MSP430 芯片内存空间是8K的,在编写代码的过程,发现代码编译出来,内存使用4.7K代码是正常的,内存使用到4.8K以上就无法仿真。整个编译过程是正确的,没有提示错误。用TI官方的下载器,烧录编译出来的代码也是无法运行。
为了验证不是代码问题,我重新拿了一个很小的程序,原本内存只用到2K,我直接定义了一个3K的数组,编译后,也出现同样的问题。

麻烦大神看看是什么问题造成的,并给出一个解决的办法。谢谢

祥子 发表于 2017-3-1 09:15:28


1、最基本的,型号选择正确不?

2、数组定义太大,有可能在初始化数组的过程当中,导致看门狗复位

纪泽江 发表于 2017-3-1 16:35:50

祥子 发表于 2017-3-1 10:23
1、最基本的,型号选择正确不?

2、数组定义太大,有可能在初始化数组的过程当中,导致看门狗复位 ...

型号是对的,编译正常的。对于你说的第二点,这个怎么验证呢。

纪泽江 发表于 2017-4-12 08:38:21

原因是初始化的变量太多造成的。

huchunlei 发表于 2017-4-17 22:46:01

首先你要看你用这么多的变量是全局变量还是局部变量, 如果是全局变量,程序在运行main之前默认是要初始化全局变量的(比如全部写0), 而MSP430单片机默认一上电是开启看门狗的,同时时钟也是使用的内部的时钟,速度比较低。如果被初始化的全局变量比较多, 可能就会出现全局变量还未初始化完成,看门狗就已经动作,然后单片机复位了, 如此往复循环,造成程序没有运行的假象。   楼主可以看看是不是这个问题。
页: [1]
查看完整版本: IAR FOR 430 版本6.3或6.5,data内存使用大于4.8K就代码异常