Linux 驱动
文章平均质量分 78
驱动学习笔记
搁い浅
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GPIO子系统
当设备树描述为gpio/gpios时,使用 gpioz[i] = devm_gpiod_get_index(&pdev->dev, NULL, i, GPIOD_OUT_LOW);devm_gpiod_get和 devm_gpiod_get_index 调用后,当设备被销毁或卸载时,内核会自动遍历并释放该设备所持有的所有资源。使用 gpio_request 的意义在于,用于申请一个GPIO资源,确保在后续的操作中该资源不会被其他设备或驱动占用,起到引用计数+1的效果。使用 gpios,不能使用 gpio。原创 2024-07-15 15:29:44 · 337 阅读 · 0 评论 -
Linux平台总线
平台总线是Linux内核中虚拟出来的一条总线,并非真实的物理导线。它主要用于连接和管理设备驱动与设备之间的通信,为它们提供一个匹配的平台。平台总线的设计目的是为了管理上的方便和统一。原创 2024-05-28 12:00:31 · 698 阅读 · 0 评论 -
Linux 字符设备驱动
字符设备驱动代码流程如下,以 led 驱动为例,此驱动基于 linux内核5.4.31 版本申请设备号创建class类创建设备节点硬件初始化实现 file_operations操作接口。原创 2024-05-27 21:28:55 · 2219 阅读 · 0 评论 -
Linux内核模块间传参
Linux 内核对模块之间的命名空间进行了隔离,模块间不能直接访问对方的内部符号。因此,需要一种机制来实现模块间符号的共享。通过 EXPORT_SYMBOL宏,内核开发者可以将需要共享的函数或变量导出,使其对其他模块可见和可用,从而实现了模块间的符号共享和功能扩展。这种机制在 Linux 内核的模块化设计中起到了重要的作用,使得不同模块之间可以更加灵活地协作和共享资源。其中,symbol_name是要导出的符号的名称。使用 EXPORT_SYMBOL。原创 2024-05-27 11:51:25 · 321 阅读 · 0 评论 -
Linux 内核模块基础
宏用于在 Linux 内核模块中指定模块的许可证信息。这个宏的作用是告诉内核模块的使用者,该模块的代码所遵循的许可证类型。在 Linux 内核模块中,模块的许可证信息是很重要的,因为它决定了模块的代码在法律上的使用方式。模块加载函数,用于在模块加载时执行一些初始化操作,比如注册设备、初始化数据结构等。模块卸载函数,用于在模块卸载时执行一些清理工作,比如释放资源、注销设备等。宏,你可以在加载模块时传递参数给模块,从而改变模块的行为或配置。模块中的参数会在该目录下创建同名的文件,文件中会保存参数的值。原创 2024-05-27 11:08:30 · 832 阅读 · 0 评论
分享