linux 比较新的设备树 详解 device tree
一、设备树总览
首先,设备树是一种数据结构,他用来描述一个系统的硬件组织,比如说一个BBB开发板是由哪些模块组成的。既然如此,如何描述一个组织呢?分为两部分。
- 各个组件的层次关系。
- 每个组件的具体信息。
这是通过常理就能推断出来的。
然后根据这两条常识,结合设备树知识可以知道,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相关推荐
- 【Linux驱动开发】设备树详解(二)设备树语法详解
活动地址:CSDN21天学习挑战赛 [Linux驱动开发]设备树详解(一)设备树基础介绍 [Linux驱动开发]设备树详解(二)设备树语法详解 [Linux驱动开发]设备树详解(三)设备树Kern ...
- Android 驱动(12)---Linux DTS(Device Tree Source)设备树详解
Linux DTS(Device Tree Source)设备树详解 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) Linux DTS(Device Tr ...
- 高通平台msm8953 Linux DTS(Device Tree Source)设备树详解之二(DTS设备树匹配过程)
本系列导航: 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...
- Linux设备树详解
Linux设备树详解 设备树小故事 设备树文件 使用设备树 修改设备树文件 编译设备树 异常处理 编写驱动文件 参考资料 设备树小故事 设备树(Device Tree),将这个词分开就是"设 ...
- 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)
本系列导航: 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...
- 正点原子----Linux设备树详解
linux设备树 1.什么是设备树 2.DTS.DTB.DTC的关系 3.如何编译设备树 4.DTS基本结构 4.1.语法 4.2.设备树在系统中的体现 4.3.尝试自己添加节点 4.4.尝试对根节点 ...
- imx6平台设备树详解
设备树详解 在Linux3.x版本后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板级细节的代码(比如platform_device.i2c_board_info等) ...
- 奇小葩讲设备树(5/5)-- Linux设备树详解(五)设备树的使用
对于任何的知识来说,了解了理论的知识,知道了设备树怎么解析用以代替传统的范式之后,我们需要知道怎么使用设备树.对于使用我们分两部分,一部分是它有哪些接口,能做些什么,至于怎么编写dts文件本章不讨论. ...
- Linux驱动开发_设备文件系统详解
目录 何为设备管理器? Linux下dev的作用 Devfs sysfs kobject udev proc 何为设备管理器? 设备管理器就是负责管理这台电脑上的外设,当我们通过电脑提供的USB口插入 ...
最新文章
- SAP WM初阶事务代码LX29 - List of Fixed Storage Bins
- php json_decode \ 反斜杠 转义 问题
- python编程if语法-Python编程入门基础语法详解经典
- 实战HMM-Viterbi角色标注地名识别
- Linux进程全解4——fork创建子进程
- 信息学奥赛C++语言: 计算两个数的最小公倍数
- Halcon 圆形标定板标定基本流程-标定助手操作
- 基于C语言实现的遗传算法系统
- 异速联服务器虚拟打印怎么设置,金万维异速联6.2.2.0虚拟打印步骤.doc
- 信号硬件入门--振幅调制信号发生器(正弦波发生器方案、AM调制方案)--First理论部分
- 这些好用的抠图软件,助你实现一键抠图
- 新发现几个百度网盘/阿里云盘搜索资源站,还能查询网盘提取码
- Flutter框架详解
- phpmyadmin mysql配置_phpmyadmin配置方式
- 中国移动开放平台(dev.cmccopen.cn)请求头Header:Authorization验证失败的原因(我遇到的)
- ⚡性能优化之首屏秒开
- PCB设计之EMC 47原则
- Jenkins邮箱配置中,使用SSL连接的问题
- linux查看历史的所有命令,linux查询历史记录命令history的用法介绍
- matlab学习-大小写字符转发