首页 > 其他分享 >设备树 理解

设备树 理解

时间:2024-01-16 21:45:12浏览次数:22  
标签:name cells label 理解 设备 节点 属性

参考 :

  https://doc.embedfire.com/linux/rk356x/driver/zh/latest/linux_driver/base_dynamic_device_tree.html

  https://www.jianshu.com/p/dc2919b140da

  : 前的是节点别名; = 前的是属性名; =后的是属性值; { 前的是节点名; < >中既可以10进制数也可以16进制数

  初始化platform_device时,根据设备树中设备节点的"compatible"属性和platform_driver中的of_match_table对应的值加载对应的驱动

  设备树中的每一个设备的节点都要有一个compatible属性。

  设备树节点,“/ {…};”表示“根节点”,每一个设备树只有一个根节点。不同文件的根节点最终会合并为一个。在根节点内部的“chosen{…}”、“leds{…}”等字符,都是根节点的子节点。
  设备树节点追加内容,子节点比根节点下的子节点多了一个“&”, 这表示该节点在向已经存在的子节点追加数据。本代码中的“&pwm1{…}”、“&uart1{…}”等等追加的目标节点,就是定义在==“imx6ul.dtsi”==中。

  主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。 /proc/devices类似一个类别,而/dev/下是某个类别下的项,由他们两个最终确定了一对多关系。

  设备device和驱动driver的区别:设备对应具体的芯片,一个设备有且只能匹配一个驱动程序,但一个驱动程序可以适配若干个设备。

  /sys/firmware/devicetree/ 目录下是以目录结构程现的dtb文件, 根节点对应base目录, 每一个节点对应一个目录文件夹, 每一个属性对应一个文件(可以cat)。

  节点(node)的格式为:
    [label:] node-name[@unit-address] {
      [properties definitions]
      [child nodes]
    };
    [ 中的内容可有可无 ], label 等用于此node的别名,用&label的形式引用
    属性(properties)就是键值对即 “name=value” 的形式,value有3种取值方式
      属性格式1有值的形式 [label:] property-name = value;
      属性格式2无值的形式 [label:] property-name; 属性也可以用别名&label引用

    value值只有3种形式 数字类型 <0x1234>; 字符串类型 "hello"; 数组类型 [0x12 0x7F]
    reg 属性只会被其上最近的#address-cells和#size-cells修饰

  常用属性:#address-cells=; #size-cells=; compatible=; model=; status=; reg=; 这几个都是规范中制定的固定属性名; 可以有用户自定义的属性名比如 asdasd=; 只要自己私有驱动中能有对此属性名的解释即可

 

 

标签:name,cells,label,理解,设备,节点,属性
From: https://www.cnblogs.com/lance9527/p/17968617

相关文章

  • 理解为什么用函数
    1.Shell函数是什么?shell函数开发:函数的特点,类似于alias别名一样,能够简化Linux命令的操作,让整个命令更易读,更易用1.函数,就是讲你需要执行的shell命令,组合起来,组合成一个函数体2.需要给函数体,起一个名字,这个名字就称之为函数名3.完整的就是函数名字+函......
  • 从0到1:实验室设备借用小程序开发笔记
    概论实验室设备借用小程序,适合各大高校,科技园区,大型企业集团的实验室设备借用流程,通过数字化的手段进一步提升相关单位设备保障水平,规范实验室和设备管理,用户通过手机小程序扫描设备的二维码,可以方便快捷的提交个人资料,办理借用手续,从而大大提高了工作效率功能规划1.设备清单:展......
  • 关于二叉树递归代码的粗鄙理解
    整体来看,二叉树的递归代码,可以分为终止条件,单层递归逻辑。单层递归逻辑就是所谓的根左右那三种,选哪一种也是有讲究的,如果不需要对根节点进行处理,那三种都可以。如果题目侧重与由子节点推到父节点,就采用后序遍历。如果题目侧重与由父节点推到子节点,就采用前序遍历。终止条件怎......
  • 回溯过程浅理解
    如何知道这一题需要用回溯呢?回溯就像试触,如果不符合条件,就往回缩,但是这种缩,不是回到起点,而是回到上一步。所以题目像二叉树路径,这样需要不断的试触并且要记录之前的路径信息的,就要用到回溯。关于回溯如何用,有一些关键点。有递归就有回溯,单层递归中有加就有减,(这个加减要广义......
  • Oracle ASMLIB配置iSCSI设备导致的问题
     OracleASMLIB配置iSCSI设备导致的问题 出于测试目的或者环境不重要等目的,如果使用iSCSI设备并且使用ASMLIB配置管理,可能会遇到如下两个问题。都是我遇到的问题。OracleLinux7上边正常安装配置ASMLIB后,如果进行重启会导致扫描不到之前创建标记的盘,需要手工使用oracleasm......
  • 对进程以及创建进程的理解
    【一】进程和程序【1】什么是进程?进程就是正在运行的程序【2】谁来执行进程?cpu【3】进程和程序的区别?程序是存储再硬盘里面的一堆代码和数据进程是正在运行的程序【二】进程调度问题有一个算法叫做任务调度算法就像是一个非常聪明的调度员,在计算机系统中负责安排......
  • javascript node.js , java jvm , jdk, jre 的理解。
    网上的截图: 来看看node.js     再来看看java.     ......
  • 国标视频监控平台EasyCVR如何通过接口调用下载设备录像文件
    安防监控系统国标GB28181协议EasyCVR视频监控平台采用了开放式的网络结构,平台可支持Windows/Linux(CentOSubuntu)/国产麒麟系统,能在局域网、公网、专网等复杂的网络环境中,将场景中分散的海量网络监控设备进行统一接入与汇聚管理,并能提供实时远程视频监控、视频录像、回放与存储、......
  • 正确理解c# default关键字
    背景最近QA测试一个我开发的一个WebAPI时,我意识到之前对C#的default的理解一直是想当然的。具体情况是这样,这个API在某些条件下要返回模型的默认值,写法类似于下面这样[HttpGet(Name="GetWeatherForecast")]publicWeatherForecastGet(){returndefault;}实际上,这个......
  • BOSHIDA DC电源模块在物联网设备中的关键作用
    BOSHIDADC电源模块在物联网设备中的关键作用DC电源模块在物联网设备中发挥着关键作用。物联网设备通常需要稳定可靠的电源供应,以保证设备的正常运行。DC电源模块提供了相应的电压和电流输出,为物联网设备提供所需的电力。 具体来说,DC电源模块在物联网设备中的关键作用包括:1.......