程序死在main之前的初始化~
有问题的死在这里call #__data16_memzero,http://cache.amobbs.com/bbs_upload782111/files_48/ourdev_700928UZXUG2.JPG(原文件名:1.JPG)
没问题的貌似多一句~
http://cache.amobbs.com/bbs_upload782111/files_48/ourdev_700936YOM9NS.JPG
(原文件名:2.JPG)
死机发生在main之前的初始化,不知道怎么修改,苦恼啊~ 哥们 你代码还保密咋的
发上来看一下代码你放着调试的二进制有什么用 关键字:WDTCTL 回复【1楼】mfketggo
哥们 你代码还保密咋的
发上来看一下代码你放着调试的二进制有什么用
-----------------------------------------------------------------------
1楼没注意看题,这个死机是发生在main函数之前,压根就没c代码,全是汇编的~死机就发生在清缓存这块儿~
编译和链接都通过 你是不是申请了一大堆全局变量,而且都初始化了? 你的变量初始化时间太长,看门狗复位了。 看样子,关狗再试,如果是AVR,不要在熔丝位将看门狗使能,否则初化时间长就死了。 不是avr,430,开了5,6个任务~ 以前都跑的好好的,现在裁剪了,留的rom和data更多了~反倒出错了~一上电就关闭看门狗啦,现在死机发生在main之前,没办法操作啊~~ 全局变量是否过多?加上__no_initial 试试! 楼上的正解 建议你把这个函数加上试试
int __low_level_init(void)
{
WDTCTL = WDTPW+WDTHOLD; // 停止看门狗
return 1;
} 回复【10楼】sunshulin
建议你把这个函数加上试试
int __low_level_init(void)
{
wdtctl = wdtpw+wdthold; // 停止看门狗
return 1;
}
-----------------------------------------------------------------------
10楼正解! 加上这个函数之后,不需要在你的程序里面调用,IAR编译的时候,会自动把这个函数放在变量初始化之前! 学习了~ 学习了 这个问题已经解决了,增加了Cstartup.s43,里面不只做了__low_level_init 学习一下。只用过pic和51。 看门狗复位了,强 学习!
页:
[1]