看门狗分为软件和硬件看门狗。硬件看门狗利用一个定时器电路,定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零(俗称”喂狗“),因此程序在正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内复位看门狗,就使得看门狗定时器溢出产生复位信号并重启系统。软件看门狗原理一样,可以简化硬件电路设计,但在可靠性方面不如硬件定时器。
平台设备platform_device linux系统提供的一种附加手段。
将平台设备添加到系统中 int platform_add_devices(struct platform_device **devs, int num);
平台驱动结构体platform_driver, 包含probe(), remove(), shutdown(), suspend(), resume()等函数。
在platform_driver的driver函数的name域定义的名字和platform_device中name域的名字相同,这样就给他们建立了关联。
混杂设备包含了一系列外围设备:NVRAM, 看门狗, DS1286等实时钟,字符LCD,鼠标, AMD768随机数发生器等。他们的主设备号都为10,通过次设备号区分。
看门狗所用的I/O内存和IRQ资源在平台设备结构体中有声明。
看门狗是字符设备,也是混杂设备,也是平台设备。
字符设备是其本质描述,混杂设备时存放这个字符设备的容器,平台设备则描述了看门狗的一种特征。
阅读(1635) | 评论(1) | 转发(2) |