dtb to dts by dtc
来源:互联网 发布:北师大网络教育会计学 编辑:程序博客网 时间:2024/06/05 11:46
1,
DTC(Device tree compiler)是一个小工具,负责将DTS转换成DTB(Device tree blob)。DTB是DTS的二进制形式,供机器使用。使用中,我们首先根据硬件修改DTS文件,然后在编译的时候通过DTC工具将DTS文件转换成DTB文件,然后将DTB文件烧写到机器上(如emmc,磁盘等存储介质)。系统启动时,fastboot(或者类似的启动程序,如Uboot)在启动内核前将DTB文件读到内存中,跳转到内核执行的同时将DTB起始地址传给内核。内核通过起始地址就可以根据DTB的结构解析整个设备树。说设备树的规范可以分成两个层次,是针对DTS的,关于DTB的结构不在此范围内。DTB仅仅是为了方便机器使用而对DTS的转换而已(也可以说DTS仅是为了方便人类使用而对DTB的一种描述)。
2,
其实device tree编译之后最终是会被全部放在一个.dtb结尾的文件,下面将dtb反编译成dts:
-bash-4.3# find / -name *.dtb
/pns/sdm_b/lcpa.X31.ahp.dtb
/pns/sdm_b/lbra.X31.dtb
/pns/sdm_b/lcaa.X31.dtb
/pns/sdm_b/lnia.X31.dtb
/pns/sdm_b/lcpa.X31.shp.dtb
/pns/sdm_a/lcaa.X32.dtb
-bash-4.3# dtc -I dtb "/pns/sdm_a/lcaa.X32.dtb" > /tmp/xxx.dts
-bash-4.3# cat /tmp/xxx.dts
/dts-v1/;
/ {
epapr-version = "ePAPR-1.1";
part-number = "LCAA";
version = "00000000";
revision = "0002";
fragment@0 {
target = <0xdeadbeef>;
__overlay__ {
#address-cells = <0x1>;
#size-cells = <0x0>;
lcaa0_ep_0_clk@90000 {
compatible = "nsn,vrha-clk-agusta";
reg = <0x90000 0x1000>;
interrupts = <0x26 0x27>;
interrupt-names = "sync_irq", "phaselatch_irq";
vrha_event = <0x1>;
fpga-name = "augusta";
clk-version = <0x1>;
再将反汇编生成的dts文件用dtc编译为dtb:
-bash-4.3# dtc -I dts -O dtb -o /tmp/xxxx.dtb /tmp/xxx.dts
-bash-4.3# ls -all /tmp/xxxx.dtb
-rw-r--r-- 1 root root 5159 Jan 3 20:59 /tmp/xxxx.dtb
上面Dtc编译器有几个选项和参数:
-I是输入文件格式,在本文中是dts
-O是目标文件格式,在本文中是dtb
-o是目标文件路径
最后一个参数是输入文件路径
编译之后会在目标文件路径生成一个dtb文件,这个文件名必须按照前面uboot默认配置中的文件进行命名,本文中是devicetree.dtb
从运行中的内核生成dts:
-bash-4.3# dtc -I fs -O dts -o /tmp/xxxx.dts /proc/device-tree/
-bash-4.3# ls /tmp/xxxx.dts
/tmp/xxxx.dts
/tmp/xxxx.dts
3,
安装dtc:
sudo apt-get install device-tree-compiler
4,
http://blog.chinaaet.com/cuter521/p/5100050348
0 0
- dtb to dts by dtc
- 使用dtc将dtb转换成dts
- DTB to DTS
- 使用dtc将dtb反编译成dts
- 编译uboot遇到/bin/sh: dtc: 未找到命令 make[2]: *** [arch/arm/dts/zynq-zc702.dtb] 错误 127
- dtimg转dtb,dtb反编译为dts方法
- 如何将dtb反编译成dts
- 如何将dtb反编译成dts
- 将dtb反编译成dts
- FreeBSD的dts生成dtb文件
- dtb
- imx6sx-sdb.dtb imx6sx-sdb.dts 设备树 (d:\swwork\solo\linux-3.14.28\arch\arm\boot\dts)
- [ZedBoard移植嵌入式Linux教程(9,10)]编译设备树dts为dtb,制作根文件系统
- ARM Linux 3.x 的设备树(Device Tree)之DTB、DTS
- ARM Linux 3.x 的设备树(Device Tree)之DTB、DTS
- ARM Device Tree起源 --- DTS (device tree source) --- Device Tree Blob (.dtb)
- ARM Linux 3.x 的设备树(Device Tree)之DTB、DTS
- *** Your dtc is too old, please upgrade to dtc 1.4 or newer
- JAVA利用FreeMarker生成(导出)Word文档(Bug修改)
- 3.3.4_绘制坐标系旁边的文本标签
- 删除cocoapods中的一些repo选项:pod repo remove xxx
- 系统分区
- Webrtc服务器搭建
- dtb to dts by dtc
- 服务器端渲染和客户端渲染有什么区别?
- 第八届山东省ACM省赛比赛感想
- 服务机器人常用的定位导航技术及优缺点分析
- JS 的引用赋值与传值赋值
- 3.3.6_在圆弧周围绘制文本
- 解决cron无法运行报错:FAILED to authorize user with PAM (Module is unknown)
- Java 动态代理与class字节码动态修改技术
- Longest Substring Without Repeating Characters