根据键名解析特定属性的值相关API

mycdev.c

复制代码
#include <linux/init.h>
#include <linux/module.h>
#include <linux/of.h>

struct device_node *node; //解析得到的设备树节点对象指针
struct property *pr;   //属性结构体指针
int len;
u32 a;
u32 b[2];
const char *str;
u8 c[6];
static int __init mycdev_init(void)
{
    int i;
    //解析设备树节点信息
    node = of_find_node_by_path("/mynode@0x12345678");
    if(node == NULL)
    {
        printk("解析设备树节点失败\n");
        return -ENXIO;
    }
    printk("获取节点信息成功\n");
    //获取u32数值
    of_property_read_u32_index(node,"unit",0,&a);
    printk("%#x\n",a);
    printk("u32\n");
    //获取u32数组
    of_property_read_variable_u32_array(node,"unit",b,2,2);
    printk("%#x,%#x\n",b[0],b[1]);
    printk("u32数组\n");
    //获取字符串类型的值
    of_property_read_u8_array(node,"binarry",c,6);
    for(i=0;i<6;i++)
    {
        printk("%#x\n",c[i]);
    }
    printk("u8\n");
    return 0;
}
static void __exit mycdev_exit(void)
{


}
module_init(mycdev_init);
module_exit(mycdev_exit);
MODULE_LICENSE("GPL");
相关推荐
li357415 分钟前
将已有 Vue 项目通过 Electron 打包为桌面客户端的完整步骤
前端·vue.js·electron
Icoolkj38 分钟前
VuePress 与 VitePress 深度对比:特性、差异与选型指南
前端·javascript·vue.js
Haven-1 小时前
Java-面试八股文-JVM篇
java·jvm·面试
excel1 小时前
CNN 分层详解:卷积、池化到全连接的作用与原理
前端
我真的是大笨蛋1 小时前
JVM调优总结
java·jvm·数据库·redis·缓存·性能优化·系统架构
excel1 小时前
CNN 多层设计详解:从边缘到高级特征的逐层学习
前端
wjs0401 小时前
Git常用的命令
java·git·gitlab
superlls1 小时前
(算法 哈希表)【LeetCode 349】两个数组的交集 思路笔记自留
java·数据结构·算法
田里的水稻2 小时前
C++_队列编码实例,从末端添加对象,同时把头部的对象剔除掉,中的队列长度为设置长度NUM_OBJ
java·c++·算法
2301_794333912 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室