我按照SDK文档,重新编译了dfu的uboot。并且执行相应的dfu命令。
E:\TI_AM62X\DFU_flash\dfu-util\dfu-util.exe -R -a 0 -D tiboot3.bin
E:\TI_AM62X\DFU_flash\dfu-util\dfu-util.exe -R -a 0 -D tispl.bin
E:\TI_AM62X\DFU_flash\dfu-util\dfu-util.exe -R -a 1 -D u-boot.img
能正常启动dfu uboot了。然后进行下一个命令。
setenv dfu_alt_info ${dfu_alt_info_emmc}
dfu 0 mmc 0
在这里之后,理论上就可以进行下一步的烧录flash命令至eMMC 。
..\dfu-util\dfu-util.exe -a tiboot3.bin.raw -D E:\TI_AM62X\sd_uboot\tiboot3.bin --path "1-11" --device ,0451:*
..\dfu-util\dfu-util.exe -a tispl.bin.raw -D E:\TI_AM62X\sd_uboot\tispl.bin --path "1-11" --device ,0451:*
..\dfu-util\dfu-util.exe -a u-boot.img.raw -D E:\TI_AM62X\sd_uboot\u-boot.img --path "1-11" --device ,0451:*
..\dfu-util\dfu-util.exe -a u-env.raw -D E:\TI_AM62X\sd_uboot\uEnv.txt --path "1-11" --device ,0451:*
..\dfu-util\dfu-util.exe -e --device ,0451:* --path "1-11" --alt 0
烧录之后,切到eMMC起不来。(原来eMMC有已烧录过的程序),说明eMMC通过以上步骤后,确实数据被改写了。
然后在uboot cmd里,可以看到mmc part 有分区的。
为了进一步测试,我把mmc 给erase 所有块 。
再重新走一遍的时候,出现了新的问题。
执行dfu 0 mmc 0 的时候,提示mmc part找不到。原因是我确实清空了eMMC。
像这个种情况如何处理,因为后续如果要进行生产烧录,也是烧录到eMMC里进行启动的。
貌似还没有找到sdk里介绍eMMC重新格式化的。
就只有这里提到。
=> printenv partitions
partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
=>
如何在dfu烧录的时候,能自动格式化分区mmc 。