Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux驱动probe函数的实现框架思考大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

linux驱动probe函数的实现框架思 .probe函数实现无非就是 1)创建一个私有的driver_data用于区分不同的device,因为一个driver可以管理多个device, 2)parse device tree,并根据配置申请资源、io @R_673_5550@e、memory; 3)初始化设备 4)注册对应的子系统暴露对应的接口,子系统相关的底层函数需要你实现,实现/dev/设备的fil
linux驱动probe函数的实现框架思

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

其他功能的实现,你需要思的架构就是对资源的管理(包括内存和io,包括对上层提供的接口导致上层@L_607_15@时对资源的访问),和硬件datasheet的阅读(从而知道如何控制硬件,实现目标)。另外是让上层@L_607_15@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

大佬总结

以上是大佬教程为你收集整理的linux驱动probe函数的实现框架思考全部内容,希望文章能够帮你解决linux驱动probe函数的实现框架思考所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。