当前位置:网站首页>设备树基本原理与操作方法
设备树基本原理与操作方法
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]
}
边栏推荐
猜你喜欢
WEB 渗透之CSRF
Flask框架——项目可安装化
87. (Home of cesium) cesium heat map (topography)
vulnhub pyexp: 1
2022年7月国产数据库大事记
Alibaba senior experts create a learning architecture from scratch, including Alibaba's internal technology stack PPT, PFD actual combat
MySQL超详细安装教程 手把手教你安装MySQL到使用MySQL 最简单的MySQL安装方式,这种方式装,卸载也简单
MySQL——增删改查进阶
idea——同一项目开启多个实例(不同端口)
Arduino实验三:继电器实验
随机推荐
PHP base notes - NO. 1
七夕之前,终于整出了带AI的美丽秘笈
深度学习常用公式与命令总结(更新中)
MySQL读写分离的三种实现方案
大佬们,flinkcdc 2.2 版本采集sqlserver只能采集到全量的数据,不能采集到增量的数
【C语言学习笔记(七)】C语言重定向输入与输出
flex布局
Mock模拟数据,并发起get,post请求(保姆级教程,一定能成功)
15、学习MySQL NULL 值处理
2022年最新的Android面试大厂必考174题(附带详细答案)
ROS仿真环境搭建
【汇编语言03】第2章 寄存器——实验1:查看CPU和内存,用机器指令和汇编指令编程
Shell编程案例
87. (Home of cesium) cesium heat map (topography)
pytest接口自动化测试框架 | 基于Pytest的Web UI自动化测试框架介绍
[Dataset][VOC] Rat dataset voc format 3001 sheets
dd命令:用于读取、转换并输出数据
2022年7月国产数据库大事记
剑指Offer 56.数组中数字出现的次数
WEB 渗透之SSRF