设备树编译

由于内核只识别二进制格式的扁平设备树,因此需要一个特殊的设备树编译器"dtc",将设备树源码文件(.dts)编译二进制文件(.dtb)。dtc编译器会对输入文件进行语法和语义检查,并根据Linux内核的要求检查各节点及属性,将设备树源码文件(.dts)编译二进制文件(.dtb),以保证内核能正常启动。最新的dtc编译器Git仓库位于www.gdl.com,可以通过如下命令获得源码

  $git clone

  dtc编译器的使用方法如下所示[6]:

  dtc [-I <input_fomat>] [-O <ouput_fomat>] [-o output_filename] [-V output_version] input_filename

  input_format可以使用以下三个参数:

  dtb: 表示输入文件为dtb文件;

  dts: 表示输入文件为dts文件;

  fs: 表示输入文件为与/proc/device-tree文件的格式相同。

  output_format可以使用以下三个参数:

  dtb: 表示输出文件为dtb文件;

  dts: 表示输出文件为dts文件;

  asm: 表示输出文件为汇编语言文件;

 如果output_format为“dtb”是,ouput_version用来规定生成的dtb文件的版本号,目前dtb文件可用的版本号为1,2,3,16或17,output_format的缺省值为17。-S指定的是生成的dtb文件的大小,需要适当地扩大以供u-boot 创建/chose节点时使用。input_filename和output_filename分别为输入和输出文件名。从dtc编译器的使用方法中发现,dtc编译器不仅可以实现dts文件到dtb文件的转换,也可以实现dtb文件到dts文件的转换。

  Linux源码的arch/powerpc/boot/dts/目录下存放了很多dts文件,可以作为参考文件。另外dtc编译器在内核源码2.6.25版本之后已经被包含进去。在2.6.26版本之后,生成blob的简单规则已经加入makefile,如下命令:

  $ make ARCH=powerpc canyonlands.dtb

  也可以根据自己的硬件修改好dts文件后,用下面类似命令生成dtb文件。

  $ dtc -f -I dts -O dtb -R 8 -S 0x3000 test.dts > mpc836x_mds.dtb

  $ mkimage -A ppc -O Linux -T flat_dt -C none -a 0x300000 -e 0 -d mpc836x_mds.dtb mpc836x_mds.dtu

  注:最新的U-Boot使用dtb镜像文件。而freescale的U-Boot需要如上使用mkimage为dtb添加镜像信息。

<script type="text/javascript" id="wumiiRelatedItems"> </script>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值