linux驱动模板

1  驱动作为内核模块存在,相当于一个内核动态库。

2  驱动提供一系列实现好的接口,并将其注册到操作系统中,等待操作系统按需调用。

3  驱动的初始化、接口注册等工作由init_module函数完成。该函数类似于windows 驱动中的DriverEntry。

4  init_module主要完成以下工作

    1)  获取设备号。可以通过手工指定或者系统动态分配方法获取设备号。

    2)  初始化设备对象,保存cdev

5  使用container_of(pointer, struct, field)宏可以获得结构体的指针。这样,就可以从cdev指针获取用户自定义的设备对象了。

6  在内核中,对用户态地址空间的访问应该通过copy_to_user和copy_from_user进行。由于可能存在调业情况,所以对用户地址空间访问的代码必需是可重入的。必要时要进行同步操作。

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值