打印
[ZLG-ARM]

喂狗不关中断会引起系统重启!

[复制链接]
1494|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Ice_River|  楼主 | 2008-7-9 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
修改前 重启!
void WdtFeed(void)
{
    WDFEED  =  0xAA;
    WDFEED  =  0x55;
}    
修改后  不重启!
void WdtFeed(void)
{
       OS_ENTER_CRITICAL();
    WDFEED  =  0xAA;
    WDFEED  =  0x55;
        OS_EXIT_CRITICAL();
}

相关帖子

沙发
dld2| | 2008-7-9 10:05 | 只看该作者

喂狗要关中断而已

使用特权

评论回复
板凳
Ice_River|  楼主 | 2008-7-9 10:16 | 只看该作者

刚刚看了手册!

Once 0xAA is written to the WDFEED register the next operation in the
Watchdog register space should be a WRITE (0x55) to the WDFFED register otherwise the Watchdog is triggered. The interrupt/
reset will be generated during the second pclk following an incorrect access to a watchdog timer register during a feed sequence.

确实,原来用的中断少,不明显,中断多了就麻烦,经验少啊!

使用特权

评论回复
地板
寒雨飞扬| | 2008-7-11 18:50 | 只看该作者

必须关中断。

    WDFEED  =  0xAA;
    WDFEED  =  0x55;

喂狗信号的这两条语句必须联系写入,如果中间被打断就会复位。所以一定要关中断。

使用特权

评论回复
5
youself| | 2008-7-14 00:26 | 只看该作者

谢谢,这个以前一直没有注意。

使用特权

评论回复
6
hotpower| | 2008-7-14 01:12 | 只看该作者

哈哈~~~99%正确,1%不对~~~

使用特权

评论回复
7
AARON238| | 2008-7-17 14:27 | 只看该作者

是怎么写的


       OS_ENTER_CRITICAL();

        OS_EXIT_CRITICAL(); 
是怎么写的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

149

主题

1882

帖子

0

粉丝