Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1229132
  • 博文数量: 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)

分类: LINUX

2009-10-14 21:02:31

Feed Watchdog in Kernel


喂狗函数实现
arch/arm/mach-s3c2440/mach-smdk2440.c
void epc_feed_wdt(void)
{
        s3c2410_gpio_setpin(S3C2410_GPG7, 1);
        s3c2410_gpio_setpin(S3C2410_GPG7, 0);
}
EXPORT_SYMBOL(epc_feed_wdt);



在drivers/misc目录下增加一个timer.c文件,开启一个喂狗的定时器。文件内容:
#include
#include
#include



#include
#include  


#include

#include
#include


MODULE_LICENSE("Dual BSD/GPL")

struct timer_list epc_watchdog;

extern void epc_feed_wdt(void);

static void epc_watchdog_timeout(unsigned long arg)
{
//      printk("################## timer out!\n");
//      epc_feed_wdt();
        mod_timer(&epc_watchdog, jiffies+1*HZ);
        epc_feed_wdt();
}

static int epc_timer_init(void)
{
//      printk("################### TIMER INIT...!\n");

        epc_feed_wdt();
        init_timer(&epc_watchdog);
        epc_watchdog.function = &epc_watchdog_timeout;
        epc_watchdog.expires = jiffies + 1*HZ;
        add_timer(&epc_watchdog);
        epc_feed_wdt();

        return 0;
}

core_initcall(epc_timer_init);

阅读(1298) | 评论(0) | 转发(0) |
0

上一篇:Linux 2.6.28

下一篇:使用RAMDISK启动系统

给主人留下些什么吧!~~