设备驱动程序结构及初始化

设备驱动程序一般包括三部分

1自动配置和初始化子程序,负责检查要驱动的硬件是否存在 。 

   没设备还玩个啥,存在的话当然进行初始化啊, 不过初始化驱动程序只在初始化时被调用一次


2服务于I/O的请求的子程序


3中断服务程序

  linux接收硬件的中断请求,再由系统调用调用中断服务子进程。 不是直接从中断向量表调用中断服务子程序。

  没有异常事件,调中断会要命的。不信你试试


驱动程序初始化

1驱动程序管理的硬件进行必要的初始化------------就是对硬件的寄存器进行设置

 

2初始化设备驱动相关参数参数

  

3在内核注册设备

每一个驱动程序都有唯一的主设备号

 设备号:主设备号+次设备号     主设备用来确定是哪一种设备   次设备 ---你猜 哦  就是这类的第几个 

major+minor  12+20  

MAJOR(dev_t dev)  MINOR(dev_t dev) 

MKDEV(int majir, int minor)


设备号可以自动获取or手动分配 

自动获取可能每次都不一样,设备文件必须重新建立

手动分配  ------->    /proc下的一堆数字 

4注册中断

如果设备需要irq支持 就要注册中断

request_irq 


5其他初始化工作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值