uboot调试技巧说明2

1. 前言

承接上一篇《uboot调试技巧说明1》

2. ds-5

ds-5是最强大的调试工具,它支持单步和断点调试、导出内存,不到万不得已不使用它,有专门的文档介绍。

3. winhex

winhex其实是一个功能强大的二进制查看器。 它的使用场景有如下:查看固件是否正确;查看固件组织形式。

(1)使用技巧

导入数据 uboot调试技巧说明2

二进制查找 uboot调试技巧说明2

字符查找 uboot调试技巧说明2

跳到指定block 这个对于优盘或者TF卡有效。 uboot调试技巧说明2

uboot调试技巧说明2

(2)查看固件结构

通过制作量产卡的时候,winhex的打印信息可以知道boot0烧写TF卡的第16扇区,所以我们可以跳转到该位置,查看是否和boot0内容一致。

uboot调试技巧说明2

uboot调试技巧说明2

这样就可以比较TF卡固定位置开始的二进制是否和boot0类似,我这个举例的不是来自同一个固件,所有数据不相同

4. beyond compare

Beyond compare一般用于手动合补丁的情况下

5. dd命令

dd命令可以用来导出机器内boot0、uboot等部件

dd if=/dev/zero of=/sdcard/zero.bin bs=1024 count=32  //生成一个32k的全零数据 dd if=/sdcard/zero.bin of=/dev/block/mmcblk0 bs=1024 seek=32 //将全零文件写到mmc的32k位置,即擦除emmc boot0dd if=/dev/block/mmcblk0 of=/sdcarr/boot0.bin bs=1024 skip=32 count=32 //将mmc 32k位置boot0读出来 dd if=/sdcard/zero.bin of=/dev/block/mmcblk0 bs=1024 seek=128//擦除128k位置的boot0 dd if=/sdcard/zero.bin of=/dev/block/mmcblk0 bs=1024 seek=16400//除擦16400k位置的ubootdd if=/sdcard/zero.bin of=/dev/block/mmcblk0 bs=1024 seek=12288//擦除12288k位置的uboot 6. sys_partition.fex

在开发阶段为了加快调试,可以在第一次全部烧写整个固件,以后只要烧写修改过的分区即可。 只要将不需要下载分区的downloadfile前面加上;即可。

;——————————>mmcblk0p2/nanda [partition]    name         = bootloader    size      = 32768    downloadfile = “bootloader.fex”    user_type    = 0x8000  ;——————————>mmcblk0p5/nandb [partition]    name         = env    size         = 32768    ;downloadfile = “env.fex”    user_type    = 0x8000  ;——————————>mmcblk0p6/nandc [partition]    name         = boot    size         = 32768    ;downloadfile = “boot.fex”    user_type    = 0x8000  ;——————————>mmcblk0p7/nandd [partition]    name         = system    size         = 1572864    ;downloadfile = “system.fex”    user_type    = 0x8000  ;——————————>mmcblk0p8/nande [partition]    name         = misc    size         = 32768    user_type    = 0x8000

然后在烧写固件的时候,在格式化的时候选择“否”即可。

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:uboot调试技巧说明2 https://www.yhzz.com.cn/a/13404.html

上一篇 2023-05-11
下一篇 2023-05-11

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。