基于设备树的驱动开发
时间: 2024-04-25 14:24:42 浏览: 16
基于设备树的驱动开发是一种在Linux系统中使用设备树来描述硬件设备和驱动程序之间关系的方法。设备树是一个用节点描述系统中设备的树状结构,它将平台设备进行了完全的抽象,使得在编写驱动程序时只需要关注设备和驱动的具体实现,而不需要编写一个个平台设备。\[1\]
在基于设备树的驱动开发中,总线由Linux内核提供,而开发者只需要实现设备和驱动的具体实现。在没有设备树的情况下,需要分别编写并注册平台设备和平台驱动。而在使用设备树的情况下,设备的描述被放到了设备树中,因此只需要实现平台驱动即可。\[2\]
在设备树建立好后,需要编写Linux设备驱动程序来获取设备树上的属性值来驱动具体的设备。Linux内核提供了一系列函数来获取设备树节点或属性信息,这些函数的原型定义在include/linux/of.h文件中,它们都有一个统一的前缀"of_"。通过使用这些OF函数,开发者可以方便地获取设备树中的信息来进行驱动开发。\[3\]
综上所述,基于设备树的驱动开发是一种使用设备树来描述硬件设备和驱动程序之间关系的方法,它简化了驱动开发的过程,使得开发者只需要关注设备和驱动的具体实现。
#### 引用[.reference_title]
- *1* [基于设备树的驱动编写](https://blog.csdn.net/wangjie36/article/details/127345727)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [设备树下的 platform 驱动开发框架](https://blog.csdn.net/Chuangke_Andy/article/details/122104775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [Linux基于设备树的驱动开发](https://blog.csdn.net/weixin_40639467/article/details/122507821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]