设备都是以节点的形式“挂”到设备树上的,因此要想获取这个设备的其他属性信息,必须先获取到这个
设备的节点。Linux 内核使用 device_node 结构体来描述一个节点,此结构体定义在文件 include/linux/of.h
中,定义如下:
struct device_node
{
const char *name; /* 节点名字 */
const char *type; /* 设备类型 */
phandle phandle;
const char *full_name; /* 节点全名 */
struct fwnode_handle fwnode;
struct property *properties; /* 属性 */
struct property *deadprops; /* removed 属性 */
struct device_node *parent; /* 父节点 */
struct device_node *child; /* 子节点 */
struct device_node *sibling;
struct kobject kobj;
unsigned long _flags;
void *data;
#if defined(CONFIG_SPARC)
const char *path_component_name;
unsigned int unique_id;
struct of_irq_controller *irq_trans;
#endif
};
节点的属性信息里面保存了驱动所需要的内容,因此对于属性值的提取非常重要,Linux 内核中使用结
构体 property 表示属性,此结构体同样定义在文件 include/linux/of.h 中,内容如下:
struct property
{
char *name; /* 属性名字 */
int length; /* 属性长度 */
void *value; /* 属性值 */
struct property *next; /* 下一个属性 */
unsigned long _flags;
unsigned int unique_id;
struct bin_attribute attr;
};
获得设备树文件节点里面资源的步骤:
步骤一:查找我们要找的节点。
步骤二:获取我们需要的属性值。
与查找节点有关的 OF 函数有 3 个,我们依次来看一下。

更多了解公众号--迅为电子--STM32MP157开发板
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
在米尔FPGA上实现Tiny YOLO V4,助力AIoT应用
建议王总组织个开发板的捐赠活动
NEC MCU 78F0513D开发板使用教程
利用PIC24F Curiosity开发板简化设计
AN2131开发板原理图.rar
ARM嵌入式系统开发板三星S3C44B0X的完整Protel电路图.rar
当6 TOPS不再是极限:米尔RK3576 + Hailo-8,让高帧率摄像头真正“实时”
拆解:树莓派5 8 GB AI 套件
国产FPGA SoC芯选择,米尔安路飞龙核心板重磅发布
51单片机开发板
米尔出席openEuler Summit 2024,携全志T536和RK3562核心模组亮相
CY7C68013开发板原理图.rar
Jobs芯科EFR32xG24 Dev Kit开发板开箱视频
Badge USB OCD 与 78F0513D 使用演示视频
6TOPS算力驱动30亿参数LLM,米尔RK3576部署端侧多模态多轮对话
SL811HS开发板原理图.rar
莱迪思联手英伟达推出 Sensor Bridge 方案 加速边缘 AI 产品落地
慕尼黑电子展上展出的开发板(还有3D 打印机等~)
单片机开发板
12路1080P高清视频流,米尔RK3576开发板重塑视频处理极限
CFUMEVK-KIT开发板设计方案
(已送出,结贴)送一块51开发板,你出邮费
Microchip PIC24FJ256DA210开发板在图形显示上的应用
AM3359支持WINCE7.0
米尔-瑞萨RZ/G2L核心板开发板的系统启动时间优化应用笔记
Kinetis K60系列MCU开发板CFUMEVK-KIT
米尔出席2025安路科技FPGA技术沙龙
出一个全新正点原子STM32战舰开发板,全新板二手价
3G高分辨率平板开发板设计方案
GWEVB_XC蓝牙设备开发板