我最近在用MSP430F5438A写一个fft(快速傅立叶)算法时,发时程序无法时行调试也无法进入中断。在TI的外国论坛上看到原因大概是因为文件中有大量的待初始化数据,在完成数据初始化之前,看门狗不会关闭,当数据初始化用时过多时会因为看门狗复位使程序无法正常运行。据说要在初始化数据之前调用 __system_pre_init() ,但鄙人英文不太好,不知道具体的该如何。希望 大家给予解惑,谢谢!
Heng Zhao:
你这个问题我之前遇到过,我当时是这么解决的:把需要初始化的数组和变量先定义成 __no_init 类型的,然后在主程序里初始化这些数组和变量,这样就不会出现这个问题了。
Qingcui Lu:
回复 Heng Zhao:
这样定义吗:__no_init dat[256];
编译出错说什么定义这个类型。具休怎么用,举个例子吧,谢了!
Lina Lian:
回复 Lina Lian:
上述代码是用于CCS的,若为IAR,则为:
// global variable for storing the reset cause __no_init unsigned int SysRstIv; int __low_level_init(void) {// stop WDTWDTCTL = WDTPW + WDTHOLD; // Perform data segment initializationreturn 1; }
Qingcui Lu:
回复 Lina Lian:
确实是这样,非常感谢!