[51单片机] Keil中关于Xdata区的使用

[复制链接]
15749|24
 楼主| huhaomcu 发表于 2013-8-1 10:55 | 显示全部楼层
ayb_ice 发表于 2013-7-31 16:39
确实是狗咬人了,在startup.a51中一开始就关狗

这种问题调试一下就应该知道了,何况C8051F调试这么方便

你这个extern code(sys_mcu_power_on_reset_init)
call sys_mcu_power_on_reset_init的意思是不是在STARTUP.A51文件里调用主程序中的sys_mcu_power_on_reset_init函数啊?我试了一下你的这个形式将主程序中的函数进行调用但编译不过去!
小生愚钝,求指教!
 楼主| huhaomcu 发表于 2013-8-1 10:58 | 显示全部楼层
ayb_ice 发表于 2013-7-31 16:39
确实是狗咬人了,在startup.a51中一开始就关狗

这种问题调试一下就应该知道了,何况C8051F调试这么方便

关于这个调试之前我是真没调出来,因为汇编都快忘记的差不多了,但唯一看到的就是它的128个变量没有全部初始化成功
 楼主| huhaomcu 发表于 2013-8-1 11:04 | 显示全部楼层
3htech 发表于 2013-7-31 16:09
C8051系列单片机初始化时,看门狗的复位时间很短。

全局变量如果是在定义时就赋值,那么这个操作是在main ...

明白了,不知是否对楼下的那种在STARTUP.A51文件里的写法明白,我试一下没有成功,小生愚昧,求指教!
 楼主| huhaomcu 发表于 2013-8-1 11:22 | 显示全部楼层
现在可心了,楼上调用的语句有点小问题,应该大写  
EXTRN CODE(SysInit)         // SysInit是主程序中的函数,里面有关WATCHDOG的语句
  CALL SysInit
在此谢谢大家的帮助,谢谢!
3htech 发表于 2013-8-2 06:34 | 显示全部楼层
ayb_ice 发表于 2013-7-31 16:39
确实是狗咬人了,在startup.a51中一开始就关狗

这种问题调试一下就应该知道了,何况C8051F调试这么方便

为什么要关狗?  小生不太明白。如果在初始化时,有干扰导致死机,那岂不是就没有办法恢复了……
虽然时间很短,但是也有这个可能。关狗,和我们的初衷相悖。
而且数组的初始化完全可以放在main()函数中进行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部