[ZLG-ARM] 喂狗不关中断会引起系统重启!

[复制链接]
2883|6
 楼主| Ice_River 发表于 2008-7-9 10:00 | 显示全部楼层 |阅读模式
修改前&nbsp;重启!<br />void&nbsp;WdtFeed(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;WDFEED&nbsp;&nbsp;=&nbsp;&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;WDFEED&nbsp;&nbsp;=&nbsp;&nbsp;0x55;<br />}&nbsp;&nbsp;&nbsp;&nbsp;<br />修改后&nbsp;&nbsp;不重启!<br />void&nbsp;WdtFeed(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OS_ENTER_CRITICAL();<br />&nbsp;&nbsp;&nbsp;&nbsp;WDFEED&nbsp;&nbsp;=&nbsp;&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;WDFEED&nbsp;&nbsp;=&nbsp;&nbsp;0x55;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OS_EXIT_CRITICAL();<br />}<br /><br />
dld2 发表于 2008-7-9 10:05 | 显示全部楼层

喂狗要关中断而已

  
 楼主| Ice_River 发表于 2008-7-9 10:16 | 显示全部楼层

刚刚看了手册!

Once&nbsp;0xAA&nbsp;is&nbsp;written&nbsp;to&nbsp;the&nbsp;WDFEED&nbsp;register&nbsp;the&nbsp;next&nbsp;operation&nbsp;in&nbsp;the<br />Watchdog&nbsp;register&nbsp;space&nbsp;should&nbsp;be&nbsp;a&nbsp;WRITE&nbsp;(0x55)&nbsp;to&nbsp;the&nbsp;WDFFED&nbsp;register&nbsp;otherwise&nbsp;the&nbsp;Watchdog&nbsp;is&nbsp;triggered.&nbsp;The&nbsp;interrupt/<br />reset&nbsp;will&nbsp;be&nbsp;generated&nbsp;during&nbsp;the&nbsp;second&nbsp;pclk&nbsp;following&nbsp;an&nbsp;incorrect&nbsp;access&nbsp;to&nbsp;a&nbsp;watchdog&nbsp;timer&nbsp;register&nbsp;during&nbsp;a&nbsp;feed&nbsp;sequence.<br /><br />确实,原来用的中断少,不明显,中断多了就麻烦,经验少啊!
寒雨飞扬 发表于 2008-7-11 18:50 | 显示全部楼层

必须关中断。

&nbsp;&nbsp;&nbsp;&nbsp;WDFEED&nbsp;&nbsp;=&nbsp;&nbsp;0xAA;<br />&nbsp;&nbsp;&nbsp;&nbsp;WDFEED&nbsp;&nbsp;=&nbsp;&nbsp;0x55;<br /><br />喂狗信号的这两条语句必须联系写入,如果中间被打断就会复位。所以一定要关中断。
youself 发表于 2008-7-14 00:26 | 显示全部楼层

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

  
hotpower 发表于 2008-7-14 01:12 | 显示全部楼层

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

  
AARON238 发表于 2008-7-17 14:27 | 显示全部楼层

是怎么写的

<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OS_ENTER_CRITICAL();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OS_EXIT_CRITICAL();&nbsp;<br />是怎么写的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

149

主题

1882

帖子

0

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