设备树学习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 运行结果

相关推荐
一只路人甲9 小时前
使用AI快速学习
学习
传奇开心果编程9 小时前
【Rust入门练中学】第2课:变量、可变性与常量
开发语言·学习·rust
边境悍匪11 小时前
蜗牛学苑 Java 智能体学习 Day42|项目周开发技术汇总 1 思维导图复盘
java·开发语言·spring boot·学习·spring
Gyr012 小时前
浅刷了一遍51CTO软考题库客观题及其解析(4)
学习·软考·知识点·信息安全工程师
是隼人12 小时前
buuctf-pwn [NewStarCTF 2023 公开赛道]stack migration(64位栈迁移)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
ι:13 小时前
单相桥式全控整流仿真从零复现教学
windows·学习·matlab·simulink
传奇开心果编程13 小时前
【Rust入门练中学】 第3课:数据类型
开发语言·学习·rust
humors22114 小时前
今年我正在看、看完和还没看的书单(不定期更新)
学习·阅读·读书·书单·书籍
泡泡鱼(敲代码中)14 小时前
MySQL 学习笔记:DCL、函数与约束 —— 安全、效率、完整性的三板斧
开发语言·笔记·sql·学习·mysql·gitee
爱吃苹果的日记本14 小时前
数据结构第五课
数据结构·学习