一、设备树总览

首先,设备树是一种数据结构,他用来描述一个系统的硬件组织,比如说一个BBB开发板是由哪些模块组成的。既然如此,如何描述一个组织呢?分为两部分。

  1. 各个组件的层次关系。
  2. 每个组件的具体信息。

这是通过常理就能推断出来的。

然后根据这两条常识,结合设备树知识可以知道,dts文件中的每个节点代表一个组件,整个设备树的层级关系也就是各个组件的层次关系。

二、各个组件的描述

每个组件的信息通过属性property来描述,每个属性都有对应的值value。

2.1 属性枚举

  • compatible 
    兼容性描述,驱动根据这个匹配设备。

2.1.1 地址相关属性

  • reg 
    设备寄存器地址描述,形式为 ⟨ address1 length1 [address2 length2] … ⟩ ,可以看到每个元组代表一个寄存器范围。这也是我们希望看到的。

  • #address-cells 
    表示用几个32bit单元来表示地址。如果是2,则第一个表示片选,第二个表示相对于片选基址的偏移。

  • #size-cells 
    为0或1。0表示没有地址范围,即只有一个地址;1表示用一个32bit数值表示range。

  • ranges 
    explicitly show 总线设备的地址映射,比如说bus挂了一个i2c控制器,bus节点通过range属性告诉cpu访问i2c控制器的地址。

2.1.2 中断相关属性

  • interrupt-controller 
    一个空属性,用来表示该设备接受中断信号。

  • #interrupt-cells 
    中断控制器的属性,表示每个interrupt specifier中有多少个单元

  • interrupt-parent 
    表示连接的中断控制器

  • interrupts 
    表示各个interrupt specifier,每个中断输出信号对应一个interrupt specifier。中断线编号,中断触发信号是高有效or低有效or边沿触发or电平触发的信息都编码在interrupt specifier中。

2.1.3 设备特有属性

比如某些厂商自己定义的兼容属性等,除了不能和已有的名字冲突外,还都要给出相应的binding文档,指出特定的兼容属性是什么意思,需要定义哪些属性,可能需要哪些子节点,代表什么设备。

三、特殊节点   3.1 aliases节点

给节点添加别名,相当于加了一个string属性,保存对应节点的路径。操作系统就可以通过这个属性来访问对应设备。

3.2 chosen节点

不代表实际的设备,用于firmware和OS之间传递数据。

linux 比较新的设备树 详解 device tree相关推荐

  1. 【Linux驱动开发】设备树详解(二)设备树语法详解

    ​ 活动地址:CSDN21天学习挑战赛 [Linux驱动开发]设备树详解(一)设备树基础介绍 [Linux驱动开发]设备树详解(二)设备树语法详解 [Linux驱动开发]设备树详解(三)设备树Kern ...

  2. Android 驱动(12)---Linux DTS(Device Tree Source)设备树详解

    Linux DTS(Device Tree Source)设备树详解 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) Linux DTS(Device Tr ...

  3. 高通平台msm8953 Linux DTS(Device Tree Source)设备树详解之二(DTS设备树匹配过程)

    本系列导航: 高通平台8953  Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...

  4. Linux设备树详解

    Linux设备树详解 设备树小故事 设备树文件 使用设备树 修改设备树文件 编译设备树 异常处理 编写驱动文件 参考资料 设备树小故事 设备树(Device Tree),将这个词分开就是"设 ...

  5. 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)

    本系列导航: 高通平台8953  Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...

  6. 正点原子----Linux设备树详解

    linux设备树 1.什么是设备树 2.DTS.DTB.DTC的关系 3.如何编译设备树 4.DTS基本结构 4.1.语法 4.2.设备树在系统中的体现 4.3.尝试自己添加节点 4.4.尝试对根节点 ...

  7. imx6平台设备树详解

    设备树详解 在Linux3.x版本后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板级细节的代码(比如platform_device.i2c_board_info等) ...

  8. 奇小葩讲设备树(5/5)-- Linux设备树详解(五)设备树的使用

    对于任何的知识来说,了解了理论的知识,知道了设备树怎么解析用以代替传统的范式之后,我们需要知道怎么使用设备树.对于使用我们分两部分,一部分是它有哪些接口,能做些什么,至于怎么编写dts文件本章不讨论. ...

  9. Linux驱动开发_设备文件系统详解

    目录 何为设备管理器? Linux下dev的作用 Devfs sysfs kobject udev proc 何为设备管理器? 设备管理器就是负责管理这台电脑上的外设,当我们通过电脑提供的USB口插入 ...

最新文章

  1. SAP WM初阶事务代码LX29 - List of Fixed Storage Bins
  2. php json_decode \ 反斜杠 转义 问题
  3. python编程if语法-Python编程入门基础语法详解经典
  4. 实战HMM-Viterbi角色标注地名识别
  5. Linux进程全解4——fork创建子进程
  6. 信息学奥赛C++语言: 计算两个数的最小公倍数
  7. Halcon 圆形标定板标定基本流程-标定助手操作
  8. 基于C语言实现的遗传算法系统
  9. 异速联服务器虚拟打印怎么设置,金万维异速联6.2.2.0虚拟打印步骤.doc
  10. 信号硬件入门--振幅调制信号发生器(正弦波发生器方案、AM调制方案)--First理论部分
  11. 这些好用的抠图软件,助你实现一键抠图
  12. 新发现几个百度网盘/阿里云盘搜索资源站,还能查询网盘提取码
  13. Flutter框架详解
  14. phpmyadmin mysql配置_phpmyadmin配置方式
  15. 中国移动开放平台(dev.cmccopen.cn)请求头Header:Authorization验证失败的原因(我遇到的)
  16. ⚡性能优化之首屏秒开
  17. PCB设计之EMC 47原则
  18. Jenkins邮箱配置中,使用SSL连接的问题
  19. linux查看历史的所有命令,linux查询历史记录命令history的用法介绍
  20. matlab学习-大小写字符转发

热门文章

  1. 机器视觉:图像与视频朝向检测
  2. 一个IEEE论文LaTeX模板,可能较旧
  3. 对map集合进行排序
  4. 用JavaScript玩转计算机图形学(二)基本光源
  5. 高等数学:第十章 曲线积分与曲面积分(3)高斯共识、通量、散度、斯托克斯共识、环流量、旋度
  6. 反向传播神经网络 BPNN
  7. Python基础教程(二):基础语法、变量类型
  8. 【OpenCV3】双线性插值
  9. Spring 执行 sql 脚本(文件)
  10. OAF在打开的新页面中添加按钮,功能是关闭当前页面