2022.11.23

#include <linux/init.h>
#include <linux/module.h>
#include <linux/of.h>
/*mynode@0x12345678{
    compatible = "hqyj,mynode";
    astring = "hello 22071";
    unit = <0xaabbccdd 0x11223344>;
    binarry = [00 0c 29 7b f9 be]
    mixed = "hello",[11 22],<0x12345678>;
};
*/
//定义指针指向获取的设备树结点
struct device_node *node;
struct property* pr;
int len,i,ret;
unsigned int val;
unsigned int array[2];
const char *str;


static int __init mycdev_init(void)
{
    //通过路径获取设备树结点信息
    node = of_find_node_by_path("/mynode@0x12345678");
    if(node == NULL)
    {
        printk("of_find_node_by_path is error\n");
        return -EFAULT;
    }
    printk("of_find_node_by_path is success\n");
    // printk("name = %s,value = %s\n",node->properties->name,(char *)node->properties->value);
    // printk("name = %s,value = %s\n",node->properties->next->name,(char *)node->properties->next->value);
    // printk("name = %s,value = %s\n",node->properties->next->next->name,_be32_to_cpup((int *)node->properties->next->next->value),_be32_to_cpup((int *)node->properties->next->next->value+1));
   
   //解析单字节属性
//    pr = of_find_property(node,"astring",&len);
//    if(pr == NULL)
//    {
//     printk("of_find_property is error\n");
//     return -EFAULT;
//    }
//    for(i = 0;i < len;i++)
//    {
//     printk("name = %s,value = %#x\n",pr->name,*((char *)pr->value+i));
//    }

//获取u32的值
ret = of_property_read_u32_index(node,"uint",1,&val);
if(ret)
{
    printk("of_property_read_u32_index is error\n");
    return EFAULT;

}
printk("value = %#x\n",val);
    return 0;
}

static void __exit mycdev_exit(void)
{

}

module_init(mycdev_init);
module_exit(mycdev_exit);
MODULE_LICENSE("GPL");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值