Linux看门狗驱动程序设计(一) 概念和框架

本文介绍了Linux看门狗驱动程序设计的基础知识,包括s3c2410看门狗定时器的寄存器、驱动程序设计框架以及平台设备和平台驱动的概念。通过分析平台设备和平台驱动的结构体,讲解了如何实现驱动的探测、移除等功能,并探讨了将看门狗注册为混杂设备以实现文件操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.    实验目的:设计s3c2410的linux看门狗驱动程序,内核版本linux-2.6.22.6

2.    s3c2410看门狗定时器的相关寄存器

        WTCON用于设置看门狗定时器时钟,使能或禁止看门狗定时器,使能或禁止看门狗中断,以及设置是否输出复位信号:

      

        WTDAT用于设置看门狗的超时时间

     、

        WTCNT是看门狗计数器,看门狗启动后WTCNT值开始递减,为0后进行超时操作(产生看门狗中断或复位信号)

        

          在程序正常运行时,我们需要在WTCNT减为0之前不断的为其写入新值(喂狗),使其值不为0,则系统不会复位;如果程序跑飞,没有继续喂狗,WTCNT递减为0后,就会复位系统。

3.    驱动程序设计框架

       看门狗Linux驱动基于platform机制来设计。Linux的platform机制用platform_device和platform_driver这两个数据结构来管理相关设备,其优点在于将本身的硬件资源由内核统一管理,在驱动程序中可以通过platform机制提供的标准接口申请使用硬件资源,提高了驱动和资源管理的独立性,有较好的安全性和可移植性。

        平台设备用platform_device结构体描述:

        struct platform_device {
                const char * name;    //设备名
                u32 id;
                struct device dev;
                u32 num_resources;    //设备所使用各类资源数量
                struct resource* resource;    //资源

         };

        通过platform_add_devices()函数可以将平台设备添加到系统中:

        int platform_add_devices(struct platform_device **devs, int num);

    看门狗platform_device

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值