没有合适的资源?快使用搜索试试~ 我知道了~
对LS10XX嵌入式系统,包含1028 ,1046 等设备的设备做了一个简单的总结,在Linux内核中ARM相关文件存放位置如下: ARM核心代码存储在 arch/arm 文件夹下; ARM SoC核心架构代码存储在 arch/arm 文件夹下; ARM SoC周边外设模块驱动存储在 drivers 文件夹下; ARM SoC特定代码存储在 arch/arm/mach-xxx 文件夹下;
资源推荐
资源详情
资源评论
Linux 设备树(Device Tree)
在 Linux3.x 版本下,Linux 内核中 ARM 架构的板级信息大量放置在 arch/arm/mach-xxx 和
arch/arm/plat-xxx 文件夹下,例如 platform 设备、resource、spi_board_info 以及各种硬件的
platform_data,这些信息对 Linux 内核来说无关紧要,会造成大量的冗余编码,导致 ARM 的 merge 工作量
较大。当采用设备树(device tree)之后,许多硬件的细节可以直接透过设备树传递给 Linux 内核,大大减少了
Linux 内核的冗余代码量。
设备树并不是在这时被重新发明,在 Linux 内核的其他架构如 PowerPC,很早便开始使用设备树来对硬件
进行描述。
在 Linux 内核中 ARM 相关文件存放位置如下:
ARM 核心代码存储在 arch/arm 文件夹下;
ARM SoC 核心架构代码存储在 arch/arm 文件夹下;
ARM SoC 周边外设模块驱动存储在 drivers 文件夹下;
ARM SoC 特定代码存储在 arch/arm/mach-xxx 文件夹下;
ARM SoC 板级代码被移除,由设备树机制来负责传递硬件拓扑和硬件资源信息。
简介
设备树实例
Linux 设备树可描述的信息如下:
CPU 的数量和类别;
SoC 内存基地址和大小;
SoC 内部总线和桥;
SoC 外设连接;中断控制器和中断使用情
况;
各种外设控制器和外设使用情况;
在系统上电后,BootLoader 会将设备树传递给 Linux 内核,内核根据识别的树信息展开为
platform_device、 spi_device 等设备,并且这些设备用到的内存、中断、等资源也被传递给内核,内核会将
这些资源绑定到相应的设备中。
Device Tree 组成与结构
model
:描述设备模块信息,比如名字什么的
compatible
:也叫做
“
兼容性
”
属性,这是非常重要的一个属性!
compatible
属性的值是一个字符串列表,
compatible
属性用于将设备和驱动绑定起来。
#address-cells
:子节点中有几个起始地址
#size-cells
:子节点中起始地址的长度
DTS(Device Tree Source)
.dts 文件是一种 ASCII 文本格式的 Device Tree 描述。在 ARM Linux 中,一个.dts 文件对应一个 ARM 的
machine,一般被放置在 arch/arm/boot/dts/ 目录。
DTSI(Device Tree Source Include)
由于一个 SoC 基本都会对应多个 machine,这样便会存在许多共同的部分,Device Tree 将一些公用的部
分使用.dtsi 文件保存,类似于 C 语言的头文件。特定于 machine 的.dts 文件一般都会引用这个.dtsi 文件。
DTC(Device Tree Compiler)
dtc 是编译 dts 的工具,可以将 dts 文件转换为二进制.dtb 文件。DTC 的源代码位于内核的 scripts/dtc 目
录,在
Linux 内核使能了 Device Tree 的情况下, 编译内核的时候主机工具 dtc 会被编译出来。
DTB(Device Tree Block)
.dtb 文件是 .dts 被 DTC 编译后的二进制格式的设备树文件,它可以被 linux 内核解析。
DTS 存储结构
Device Tree 的基本单元是 node,这些 node 会被组装成树结构,除了根节点,每个节点都只有一个父节
点。一个设备树中只有一个根节点,每个节点包含若干个属性值来描述节点的一些特性。
上图设备树实例图的对应.dts 文件如下所示
剩余13页未读,继续阅读
资源评论
six2me
- 粉丝: 1w+
- 资源: 58
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功