【下载进去无法运行】MSP430 程序能下载进去却无法运行

   现象: 在程序中定义了较大的全局数组,导致程序能下载进去却无法正常运行。将数组减小又可以恢复正常。

   原因是: 在main函数(关闭看门狗)之前,含有编译器添加的启动程序,程序启动后先初始化数组,结果超过了看门狗默认的间隔时间32ms,导致每次程序都无法正常运行。

 

 解决办法:

方法一 将一些变量(主要是大全局数组)定义成 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
 
 
http://bbs.lierda.com/showthread.php?t=11608

posted on 2022-10-04 01:31  bdy  阅读(114)  评论(0编辑  收藏  举报

导航