IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> DTBO简介 -> 正文阅读

[移动开发]DTBO简介

?1、DTBO简介 ? ? ?

? ? ? ?设备树 (DT) 是用于描述“不可发现”硬件的命名节点和属性构成的一种数据结构。操作系统(例如在 Android 中使用的 Linux 内核)会使用 DT 来支持 Android 设备使用的各种硬件配置。硬件供应商会提供自己的 DT 源文件,接下来 Linux 会将这些文件编译到引导加载程序使用的设备树 Blob (DTB) 文件中。

设备树叠加层?(DTO) 可让主要的设备树 Blob (DTB) 叠加在设备树上。使用 DTO 的引导加载程序可以维护系统芯片 (SoC) DT,并动态叠加针对特定设备的 DT,从而向树中添加节点并对现有树中的属性进行更?改。

设备树叠加层 (DTO)?扩展了现有的扁平化设备树 (FDT)?实现,让用户空间可以通过加载用于修改原始数据的额外叠加层 FDT,在运行时修改内核中的初始设备树数据。Android 不要求在运行时从用户空间更新 DT blob,而是建议供应商借助?libfdt?或?libufdt?在引导加载程序中添加设备树补丁程序

? ? ? ?DTBO(DTB Overlay,设备树块覆盖)用于在 DTB(Device Tree Blob,设备树块)的基础上添加或修改节点信息。它可以配置 ODM(Original Design Manufacturer,原始设计商)和OEM(Original Equipment Manufacturer,原始设备生产商)特有的设备节点,使这些配置与 SoC 隔离,从而让配置与更新更加方便灵活。

? ? ? ?多 DTBO 结构,编译时同一个 BSP_BUILD_FAMILY 下的多个 DTBO 都会打包到 dtbo.img 中。以 SC9863A 为例,图 图 1-1 为其多 DTBO 结构,其中 sp9863a-3h10-overlay.dtbo-base、sp9863a-1c10-overlay.dtbo-base 和 sp9863a-1h10-overlay.dtbo-base 指定的 sp9863a.dtb 都会编译并打包到 dtb.img 中。

?图1-1 多DTBO 结构示意图

? ? ?U-Boot 在启动时,它会匹配 DTBO 并将其内容合入或者覆盖到匹配的 DTB 中,随后加载到 DDR,再将地址传给 Kernel.
? ? ?dtb.img 在 boot header V2 时会打包到 boot.img,而在 boot header V3/V4 时会打包到 vendorboot.img。
? ? ?系统引入 DTBO 后,设备树分割为两部分:
? Native DT:Vendor 供应商提供的 SoC 公用部分和 Vendor 默认配置。
? Overlay DT:ODM/OEM 提供的专属配置或客制化差异配置。?

2、DTB 和 和 DTBO 节点编写?

2.1 基本语法规范
? ? ? DTBO 基本语法规范如下:
? ? ? 1. DTB 和 DTBO 的源文件在文件起始位置必须包含“/dts-v1/;”字符串标签。
? ? ? 2. DTBO 的源文件起始位置必须包含“/plugin/;”字符串标签。这是为了避免编译过程中 DTBO 对当前文件不存在的节点引用时产生报错。
? ? ? ?3. DTBO 支持 fragment 语法,fragment、target-path 和__overlay__三部分构成完整的 fragment 语法结构。其中每个部分含义如下:
? fragment 代表需要引用 DTB 中节点的片段标签
? target-path 代表需要引用的 DTB 中的节点名称
? __overlay__里的内容代表实际叠加到 DTB 中的内容
具体编写代码示例如图 图 2-1 所示。

图2-1 DTBO 编写示例

扩展阅读:设备树叠加层

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:55:38  更:2022-08-06 10:59:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 4:28:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码