您的位置:首页 > 其它

在启动内核步骤上喂狗

2011-10-12 17:26 316 查看
----------------------------------------------------------------

转载请注明出处和作者联系方式:

文章出处:http://blog.csdn.net/pengguowen

作者: pengguowen<imlvye#gmail.com>

----------------------------------------------------------------

1. 在 arch/arm/mach-davinci/include/mach/uncompress.h中实现

#define arch_decomp_setup() epcs6190_wdt_setup()

#define arch_decomp_wdog() epcs6190_wdt_feed()

两个宏定义

2. 在arch/arm/boot/compressed/misc.c文件中的decompress_kernel 调用arch_decomp_setup及arch_decomp_wdog函数进行第一次喂狗。

3. decompress函数是内核解压花费最多时间的部分,如果使用GZIP方法对内核压缩,需要修改lib/decompress_inflate.c文件:

在gunzip函数的zlib_inflate函数调用前后加入以下语句进行喂狗:

#ifdef ARCH_HAS_DECOMP_WDOG

arch_decomp_wdog();

#endif

zlib_inflate函数需要花费大量时间,在该函数上加入喂狗代码:(lib/zlib_inflate/inflate.c)

在改函数的for循环上加入:

#ifdef ARCH_HAS_DECOMP_WDOG

arch_decomp_wdog();

#endif

至此,内核解压部分喂狗已经解决。

4. 驱动喂狗

core_initcall(hw_wdt_init);

将驱动的init函数使用core_initcall方法,提前加载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: