设备树学习5--读写实操(TODO)

实现一个驱动读取自己定义的设备树

1 设备树读写接口

头文件

cpp 复制代码
#include <linux/of.h>          //节点、属性基础接口
#include <linux/of_address.h>  //reg物理地址
#include <linux/of_irq.h>      //中断
#include <linux/of_gpio.h>     //GPIO
#include <linux/of_clk.h>      //时钟
#include <linux/of_pinctrl.h>  //引脚配置
#include <linux/of_property.h>

查找/遍历设备节点

接口 功能说明
of_find_node_by_path() 按照设备树全路径查找节点
of_find_node_by_name() 按节点 name 查找
of_find_node_by_type() 按 device‑type 属性查找
of_find_compatible_node() 根据 compatible 匹配节点
of_get_child_by_name() 获取指定名字的子节点
of_next_child_node() 循环遍历所有子节点
of_node_put() 节点引用计数释放(查到节点必须调用)
of_device_is_available() 判断节点 status = "okay" 是否启用

读取节点属性(最常用)

接口 用途
of_property_read_bool(node, "xxx") 布尔属性,存在即返回 true
of_property_read_u8() 读取 uint8 属性
of_property_read_u16() 读取 uint16
of_property_read_u32() 读取单个 32 位整型
of_property_read_u64() 读取 64 位整型
of_property_read_u32_array() 读取 u32 数组
of_property_read_string() 读取字符串属性
of_property_read_string_array() 读取字符串数组
of_property_match_string() 匹配字符串列表索引
of_find_property() 获取 property 原始结构体

reg物理内存地址操作

接口 作用
of_address_to_resource() reg 转为 struct‑resource
of_iomap() 物理地址映射成内核虚拟地址
of_iounmap() 解除地址映射
of_address_in_resource() 检查地址是否落在 reg 区间

中断资源

接口 说明
irq_of_parse_and_map() 解析 interrupts 属性、映射中断号
of_irq_get() 获取节点第 n 个中断
of_irq_to_resource() 中断转为 resource 结构体

phandle引用节点

接口 说明
of_parse_phandle() 解析 phandle,拿到被引用节点
of_parse_phandle_with_args() 解析带参数的 phandle(中断控制器常用)

此外还有一些,就不全部列了。。

2 一个例子

2.1 设备树

2.2 驱动

2.3 运行结果

相关推荐
天天爱吃肉82182 小时前
行业笔记|高压连接器瞬态接触退化通用检测方法论
人工智能·笔记·python·功能测试·学习·汽车
Hhy_11072 小时前
【从零开始学数据结构 ⑥】:二叉树之堆——打破规则的优先队列
c语言·开发语言·数据结构·学习·visual studio
weixin_431600442 小时前
为什么 Agent REPL 要上 Ink:好处、用法与内部设计
前端·学习·ai·agent·ai编程
wangjialelele3 小时前
Spring Cloud 全体系学习笔记(REST、Nacos、Feign、Gateway)
java·spring boot·笔记·学习·spring·spring cloud·gateway
qeen873 小时前
【数据结构】搜索二叉树的介绍与算法原理解析及实现
数据结构·c++·学习·算法·模板
重庆小透明3 小时前
agent开发学习【第一篇】
学习
星辰即远方14 小时前
计算器仿写总结
学习·ui·ios·cocoa·xcode
影寂ldy16 小时前
SQL 事务(Transaction)完整版学习笔记(含转账案例+存储过程+异常捕获)
笔记·sql·学习
Bernice橘子18 小时前
职场英语学习计划Day034
学习