关于MSP430 数组定义

2025-04-29 09:20:03
推荐回答(2个)
回答1:

  解决方案:
  (1)编写C启动函数
  除了主函数之外,需要再定义一个函数,函数名为的_system_pre_init(),在CCS编译器中,这是一个C启动函数,是在主函数开始执行之前执行的,所以在该函数里,加入关闭看门口的代码就可以解决这个问题了~
  在IAR编译器中,也有类似的函数,为__low_level_init(),使用方法与上文提到的相同。
  (2)将大数组放在RAM的不初始化区域
  既然已经知道是初始化时间过长导致这个问题,可以把大数组定义在RAM的不初始化区域就行了。
  在IAR编译器中,在定义变量之前,加上__no_initm命令即可,如__no_init char a; 即把a这个字符型变量放在RAM的不初始化区域。

回答2:

提示你的数组定义过大,超出了编译器的堆栈。如果确认没有超过430的内存可以在编译器中把相应的值改大。