IAR3.1中使用MSP430F1611 时出现的问题解决方法

状态:
芯片 --- F1611,有10K内存
编译器 --- IAR3.1
问题 :
当在RAM中对其中一变量开辟的尺寸是512字节时,程序总占用3.5K RAM空间,可以正常烧到芯片中,也可以正常运行;
当对同一变量开辟的尺寸是1024字节,而其它均未改变时,程序总占用4.0K左右RAM空间,可以正常烧到芯片中,却无法运行!!!!

请教高手,如何解决以上问题?是IAR 编译器的问题,还是芯片本身的问题,或是程序的问题?

还有,同样是上一程序,当变量尺寸是512字节时,芯片在JTAG控制下可以正常运行。而断开JTAG,则芯片独自运行时,到运行到程序中一个特定的菜单时就出错。难以理解。

高手回复:

方法一 将一些变量定义成 no init类型
方法二 修改IAR的cstartup.s43程序,具体方法如下:(iar310a为例)
1 将cstartup.s43程序加载到用户自己的项目中,cstartup.s43在iar310a的路径如下$TOOLKIT_DIR$\src\LIB\ 
2 修改cstartup.s43中的__program_start子程序,加入关闭看门狗的命令 MOV #0x5A80,&0x0120
3 在Project->Options->Linker->Config页中选择Override default programe ,并将Entry lib 设置成 __program_start

(题主说:用__no_init声明变量,成功解决问题.不愧为高手,一针见血。在此特表感谢)

 

 

永不止步步 发表于07-13 14:52 浏览65535次
分享到:

已有3条评论

  • 永不止步步
    永不止步步 07-13 14:54

    定制用户的cstartup.s43文件,加入用户的专用代码。

  • 永不止步步
    永不止步步 07-13 14:54

    这是启动代码的问题,在××××××RAM时,wDT复位了

  • 永不止步步
    永不止步步 07-13 14:52

    这个问题,我同事也遇到了,他用的是149。解决方法是:将数组或其他一次性分配很大RAM空间的变量分开多次定义。我同事的菜单问题就是这样解决的。

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308117个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号