1. 前言
承接上一篇《uboot调试技巧说明1》
2. ds-5ds-5是最强大的调试工具,它支持单步和断点调试、导出内存,不到万不得已不使用它,有专门的文档介绍。
3. winhexwinhex其实是一个功能强大的二进制查看器。 它的使用场景有如下:查看固件是否正确;查看固件组织形式。
(1)使用技巧导入数据
二进制查找
字符查找
跳到指定block 这个对于优盘或者TF卡有效。
(2)查看固件结构通过制作量产卡的时候,winhex的打印信息可以知道boot0烧写TF卡的第16扇区,所以我们可以跳转到该位置,查看是否和boot0内容一致。
这样就可以比较TF卡固定位置开始的二进制是否和boot0类似,我这个举例的不是来自同一个固件,所有数据不相同
4. beyond compareBeyond 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