linux驱动probe函数的实现框架思考

linux驱动probe函数的实现框架思考

.probe函数实现无非就是
1)创建一个私有的driver_data用于区分不同的device,因为一个driver可以管理多个device,
2)parse device tree,并根据配置申请资源、io resource、memory;
3)初始化设备
4)注册对应的子系统暴露对应的接口,子系统相关的底层函数需要你实现,实现/dev/设备的file_operation、sysfs、proc接口。;
5)dev_set_drvdata 绑定私有结构和设备的关系
6)最后注册irq(由于irq注册后,硬件的中断随时发生(一旦注册并enable,那么就随时都可能发生,硬件随时变化,所以随时发生),所以必须在注册irq之前保证irq处理函数所使用的资源已经准备好,所以一般irq会在.probe函数的最后激活。)。

其他功能的实现,你需要思考的架构就是对资源的管理(包括内存和io,包括对上层提供的接口导致上层调用时对资源的访问),和硬件datasheet的阅读(从而知道如何控制硬件,实现目标)。另外是让上层调用read/writ直接访问到硬件;还是驱动通过workqueue polling方式访问硬件,并保存到内存中,上层read/write时从内存取值;还是中断发生时,再访问硬件或者启tasklet、workqueue访问硬件,然后保存到内存中,应用read/write时再从内存中取值。 即在什么context下访问硬件。

关于具体的写linux驱动的方法、技巧和注意事项,欢迎观看我的《如何编写linux设备驱动》的视频:
https://edu.51cto.com/course/17132.html

另外我的相关培训视频请看:
欢迎观看我发布的各个课程: https://edu.51cto.com/lecturer/8896847.html

另外我的免费的linux各种驱动开发课程如下:
https://edu.51cto.com/course/17138.html

我的新的更多优惠的打包课程链接如下:
https://edu.51cto.com/sd/0a9d4

转载于:https://blog.51cto.com/8906847/2367915

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值