CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 10098|回复: 0

DTC工具在CubieBoard6上的使用

[复制链接]
发表于 2017-5-19 15:50:46 | 显示全部楼层 |阅读模式
本帖最后由 bill 于 2017-5-19 15:50 编辑

  众所周知,全志平台使用的内核配置文件是sys_config.fex文件,而CB6使用的是更通用的DTS(Device Tree Source),翻译过来就是设备树源码。Device Tree是一种描述硬件的数据结构,易于开发人员调试。
  在调试阶段,经常需要改动dts的配置,修改完后我们并不需要重新编译固件。当修改dts文件,只需要编译成二进制的dtb文件,并推送到CB6相关目录下即可,省下了编译固件所浪费的时间。

  不论是编译dts生成dtb,还是反编译,都需要用到一个工具: DTC,全称device tree compiler,直译过来就是设备树编译器。


如何下载dtc工具
Ubuntu下获取DTC工具:
  1. $sudo apt-get install device-tree-compiler
复制代码
如何使用DTC工具

命令参数:
-I:  被编译文件的格式
-O: 生成文件的格式
-o:    编译生成的文件名

例:
$dtc -I dtb -O  dts -o kernel.dts kernel.dtb
编译kernel.dtb,生成kernel.dts。


结合CB6的调试,简单的说明一下使用步骤:
1.使用ADB调试,将CB6文件系统下的kernel.dtb拷贝出来。
  1. <font size="3">$adb pull /misc/kernel.dtb /work/</font>
复制代码
2.使用DTC工具,将kernel.dtb反编译生成可编辑的dts文件。
  1. <font size="3">$dtc -I dtb -O  dts -o kernel.dts kernel.dtb</font>
复制代码
3.按调试需要,自行修改kernel.dts,并编译成dtb文件。
  1. <font size="3">$dtc -I dts -O  dtb -o kernel.dtb kernel.dts</font>
复制代码
4.使用ADB,将生成的dtb文件push到CB6,替换原有的文件。
  1. <font size="3">$adb push /work/kernel.dtb  /misc/</font>
复制代码
5.重启即可生效
  1. <font size="3">$sync:reboot</font>
复制代码
当然,debug有时不能一步到位地解决问题,但这种调试方法可大幅提高调试的效率。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-12-22 10:00 , Processed in 0.020764 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部