教你如何查看Microchip MPU SD烧录镜像中设备树的内容

挂载SD image文件

用过Microchip MPU产品做Linux相关应用开发的工程师都知道,在使用buildroot生成组后的烧录镜像时,会在output/images目录下自动生成一个sdcard.img文件。那我们如何检测打包到该镜像中的文件,比如查看设备树的内容。

  • 首先挂载SD卡烧录镜像文件:

例如使用buildroot自动生成的烧录镜像文件是sdcard.img

sudo kpartx -av sdcard.img

在这里插入图片描述
可以看到挂载sdcard.img文件后,发现镜像文件被分为2个分区

  • 手动挂载boot代码存储分区:

Microchip MPU的SD卡或者eMMC烧录镜像文件,会被分为2个分区。第一个分区是被格式化为FAT格式且大小为64MB的boot分区,用来存储boot.bin、itb文件、u-boot.bin和uboot.env文件。

Microchip MPU在启动的时候,内部ROM Code首先会挂载第一个boot分区,然后尝试从boot分区寻找boot.bin文件并加载到MPU内部SRAM进行运行。

mkdir tmp
sudo mount /dev/mapper/loop11p1 tmp/

在这里插入图片描述

提取itb文件中的内容

关于itb文件,Microchip在其linux4sam网站上给出了以下解释“ we use a FIT image, which embeds the Kernel + Device Tree blobs in a single file.“
The FIT image is a placeholder that has the zImage and the base Device Tree, plus additional overlays that can be selected at boot time.

也就说在单个itb文件里面,打包进去了多个dtb文件,在uboot加载阶段,根据用户不同的配置,来动态地加载不同的dtb文件,实现用户板级的灵活配置。

dumpimage -l /tmp/sam9x60ek.itb

在这里插入图片描述

  • 手动从itb文件里面提取所需要的dtb文件:
sudo dumpimage -T flat_dt -p l -o at91-sam9x60ek.dtb sam9x60ek.itb

在这里插入图片描述

  • 使用fdtdump命令查看dtb文件:
fdtdump at91-sam9x60ek.dtb

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值