当前位置:网站首页>设备树基本原理与操作方法
设备树基本原理与操作方法
2022-08-03 18:57:00 【ST小智】
活动地址:CSDN21天学习挑战赛
学习计划
**
1,学习目标
一周掌握设备树
2,学习内容
例如:
Linux设备树控制方法
掌握循环语句
3,学习时间
提示:可以添加计划学习的时间
例如: 周一至周五晚上 7 点—晚上9点
周六上午 9 点-上午 11 点
周日下午 3 点-下午 6 点
4,学习产出
提示:统计学习计划的总量
例如:
技术笔记 2 遍
CSDN技术博客 3 篇
学习的vlog 视频 1 个
**
学习日记
**
第一:为什么要使用设备树
在老的Linux内核的arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的描述不同板级硬件信息的代码,而这些板级信息对于内核来说不过是一些垃圾代码,因为不同的板级他们的硬件信息都不相同,这些都是硬件特有的信息,对内核而言没有任何的意义,但是往往这部分代码特别的多,造成内核的冗余。设备树的引入就是为了解决这个问题。
设备树是一种描述硬件的数据结构,在linux2.6版本上才开始使引入,采用了设备树之后,许多硬件的细节可以直接通过它传递给Linux,而不再需要在内核中进行大量的冗余编码,它通过bootloader将硬件资源传给内核,使得内核和硬件资源描述相对独立。
设备树可以描述的信息包括CPU的数量和类别、内存基地址和大小、总线和桥、外设连接、中断控制器和中断使用情况、GPIO控制器和GPIO使用情况、Clock控制器和Clock使用情况。
另外,设备树对于可热插拔的热备不进行具体描述,它只描述用于控制该热插拔设备的控制器。
第二:Linux设备树目标
https://www.kernel.org/doc/Documentation/devicetree/usage-model.txt
The “Open Firmware Device Tree”, or simply Device Tree (DT), is a data
structure and language for describing hardware. More specifically, it is a
description of hardware that is readable by an operating system
so that the operating system doesn’t need to hard code details of the
machine
提供一种语言来解耦硬件配置信息
第三:Linux设备树概述:dts、dtsi
DTS(device tree source)
DTS: .dts文件是设备树的源文件。
文件.dts是一种ASCII文本格式的设备树描述 ,一个.dts文件对应一个ARM的设备, 一般放置在内核的arch/arm/boot/dts/目录中 。
由于一个SoC可能对应多个设备(一个SoC可以对应多个产品和电路板),这些.dts文件势必须包含许多共同的部分,Linux内核为了简化,把SoC公用的部分或者多个设备共同的部分一般提炼为.dtsi,类似于C语言的头文件。其他的设备对应的.dts就包括这个.dtsi 。
目录:arch/arm64/boot/dts/mediatek/auto2735evb.dts
第四:Linux设备树语法
设备树用树状结构描述设备信息,它有以下几种特性:
DeviceTree的结构非常简单,由两种元素组成:
Node(节点)
Property(属性)
[label:] node-name[@unit-address] {
[properties definitions]
[child nodes]
}
边栏推荐
- 不要小看 WebSocket!长连接、有状态、双向、全双工都是王炸技能
- 如何理解即时通讯开发移动网络的“弱”和“慢”
- 87.(cesium之家)cesium热力图(贴地形)
- 金鱼哥RHCA回忆录:CL210管理计算资源--管理计算节点+章节实验
- vulnhub pyexp: 1
- 分享即时通讯开发之WebSocket:概念、原理、易错常识、动手实践
- cocos creater 3.x 插件安装方法
- PHP基础笔记-NO.1
- fatal error: jni.h: No such file or directory
- 【WPS-OFFICE-Word】 WPS中样式的运作原理?样式自动更新、自动改变如何处理?样式的管理方法?
猜你喜欢
随机推荐
梅科尔工作室-14天华为培训六
懵逼!阿里一面被虐了,幸获内推华为技术四面,成功拿到offer,年薪40w
Rust:多线程并发编程
系统太多,多账号互通如何实现?
dd命令:用于读取、转换并输出数据
Shell:循环语句
讯方实训云平台——加速教育高质量发展的“数字底座”!
idea——同一项目开启多个实例(不同端口)
unity3d-游戏物体控制方法
BinomialTree 二叉树
【Django-Docker】Sqlite3.db读取权限不够-20220803
谷歌浏览器安装插件教程步骤,开发用这2个插件工作效率倍增
七夕之前,终于整出了带AI的美丽秘笈
[Azure Event Hub] Create Event Hub Consume Client + Custom Event Position with Azure AD Authentication
warnings.warn(“Title is more than 31 characters. Some applications may not be able to read the file
Oracle 脚本实现简单的审计功能
Don't look down upon the WebSocket!Long connection, stateful, two-way, full-duplex king is Fried
软件测试回归案例,什么是回归测试?
架构基本概念和架构本质
【C语言学习笔记(七)】C语言重定向输入与输出