This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM437X Startware MLO

我们基于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卡却没有任何反应。

请问这个是什么原因呢? 

  • 理论上应该都是一样的,你可以用ultral edit比较下两个bin文件的区别。

  • 我用beyond compare 比较了两个文件的区别。这两个文件大小有些区别。当关键的image header部分都是对的。

  • 理论上来说,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,这两点在配置的时候有注意到吗?

  • 编译的时候是选择的这个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卡却不能运行。

  • 编译的时候是选择的这个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卡却不能运行。

  • 你用我们的prebuilt image中的MLO,放在SD卡中,看看能不能跑起来,排除一下SD卡和接口方面的问题。

    如果能跑起来的话,再把能跑起来的MLO和你编的做下对比,看看header那部分和后面是否有差异。