Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1229137
  • 博文数量: 479
  • 博客积分: 12240
  • 博客等级: 上将
  • 技术积分: 4999
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-24 17:12
文章分类

全部博文(479)

文章存档

2014年(1)

2013年(1)

2012年(1)

2011年(95)

2010年(177)

2009年(167)

2008年(16)

2007年(21)

分类: 嵌入式

2009-12-03 16:28:30



1.1.1 喂狗实现

上一节的方法可行,但是需要做的工作量很大。后来发现U-Boot本身已经有了看门狗接口。只要实现看门狗接口,然后再进行少量改动即可。

include/watchdog.h文件中有WATCHDOG_RESET的宏定义,可选择C实现或者汇编实现,函数为hw_watchdog_reset

watchdog.h末尾声明函数hw_watchdog_reset

void hw_watchdog_reset(void);

启用开关为:CONFIG_HW_WATCHDOG,在trizepsiv.h中轻易这个开关即可。

同时,在boards/trizepsiv/conxs.c中实现hw_watchdog_reset函数:

    206 #ifdef CONFIG_HW_WATCHDOG
    207 void hw_watchdog_reset(void)
    208 {
    209         int i;
    210         GPSR0 = 1 << 14;
    211         for (i=100; i>0; i--);
    212 //      udelay(100);
    213         GPCR0 = 1 << 14;
    214 }
    215 #endif

另外,为了在其它地方调用WATCHDOG_RESET函数,可以将watchdog.h添加包含到common.h文件中:

    111 #include


阅读(1862) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

jackylongchen2012-10-16 09:41:00

来学习  谢谢