我们基于IDK437X开发的板子,使用processor_sdk_rtos_am437x_3_01_00_06中startware 编译MLO 有两种方式。
一种是使用gmake pdk命令编译, 另外一种是用CSS导入bootloader工程进行编译。
现在的情况是gamke pdk编译生成的bootloader_boot_mmcsd_a9host_release_ti.bin 改名为MLO之后,放入TF卡可以运行。
但是通过CSS编译出的bootloader_boot_mmcsd_a9host_release.out可以通过CCS load并运行,但bootloader_boot_mmcsd_a9host_release_ti.bin 改名为MLO之后,放入TF卡却没有任何反应。
请问这个是什么原因呢?
Jian Zhou:
理论上应该都是一样的,你可以用ultral edit比较下两个bin文件的区别。
Sunny Guo:
回复 Jian Zhou:
我用beyond compare 比较了两个文件的区别。这两个文件大小有些区别。当关键的image header部分都是对的。
Steven Liu1:
理论上来说,bootloader_boot_mmcsd_a9host_release.out这个文件是没有header的,所以只能够通过CCS load或者用UART的方式直接加载到固定地址上运行,但是放在SD卡中的文件的执行,是需要解析出相关的image大小、加载地址等header的信息的,所以才有了bootloader_boot_mmcsd_a9host_release_ti.bin这种带有_ti后缀的image文件。
如果印象中不错的话,ccs的编译bootloader的话,要选择平台,以及启动方式的, 一定用mmcsd的debug或者release,这两点在配置的时候有注意到吗?
Sunny Guo:
回复 Steven Liu1:
编译的时候是选择的这个build configuration. 编译会生成bootloader_boot_mmcsd_a9host_release.out , 通过post_build脚本生成bootloader_boot_mmcsd_a9host_release_ti.bin
bootloader_boot_mmcsd_a9host_release.out 通过css load program之后可以运行,但是生成的bootloader_boot_mmcsd_a9host_release_ti.bin改名为MLO之后放到TF卡却不能运行。
Sunny Guo:
回复 Steven Liu1:
编译的时候是选择的这个build configuration. 编译会生成bootloader_boot_mmcsd_a9host_release.out , 通过post_build脚本生成bootloader_boot_mmcsd_a9host_release_ti.bin
bootloader_boot_mmcsd_a9host_release.out 通过css load program之后可以运行,但是生成的bootloader_boot_mmcsd_a9host_release_ti.bin改名为MLO之后放到TF卡却不能运行。
Steven Liu1:
回复 Sunny Guo:
你用我们的prebuilt image中的MLO,放在SD卡中,看看能不能跑起来,排除一下SD卡和接口方面的问题。
如果能跑起来的话,再把能跑起来的MLO和你编的做下对比,看看header那部分和后面是否有差异。