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.

[参考译文] CCS/AM5716:RTOS 引导加载程序失败

Guru**** 2588495 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/636912/ccs-am5716-rtos-bootloader-fails

器件型号:AM5716
Thread 中讨论的其他器件:CCStudio

工具/软件:Code Composer Studio

您好!

在论坛的帮助下、我能够将 TI SBL 项目移植到 CCS 环境中。

我可以通过 CCS 在 idkAM571x 上运行和调试 SBL 代码。 但是、当我使用生成的 MLO 文件(通过 SD 卡)进行引导时、不会发生任何情况。

我的尝试:

A)

注意:idkAM571x_SBL.out 是通过 CCS 生成的。

objcopy.exe -O 二进制 idkAM571x_SBL.out idkAM571x_SBL.bin

tiimage 0x40331000 mmcsd idkAM571x_SBL.bin MLO

MLO 不运行

B)

注意:SBL.OUT 是通过 gmake SBL 生成的。

objcopy.exe -O 二进制 SBL.out sbl.bin

tiimage 0x40331000 mmcsd sbl.bin MLO

MLO DO 运行

编译器设置:

-mcpu=cortex-a15 -mtune =cortex-a15 -marm -mfloat-abi=hard -mfpu=neon -dos571x_build -dsoc_AM571x -Dam5718 -D__armv7 -didkAM571x -dboot_mcSD -depp_nom /ti/pdk_am57xx_1_0_8/packages/ti/boot/sbl/src/mmcsd -i"-i"-dcs_i_i"-dov-/ti/pdk_am57xx_1_0_8/packages/ti/csl -i_i_i_intrabi-dce-v7 /ti/pdk_am57xx_1_0_8/packages:/ti/pdk_am57xx_1_0_8/packages/ti/boot/sbl/src/rprc -dcabi_ine-v/i:/ti/pdk_am57xx_1_0_8/packages -i_i_i_i_i_ines"-v/i"i-tex-dweg"/ti/pdk_am57xx_1_0_8/packages/ti/board -ex-ines"-/i"i:-dctrabi-tex-ine-tex-ines"/i"i-tex-dce-tex-ine"-ine"-ine-tex-cov.c:-ine-tex-ine-tex-ine-tex-ine-tex-ine-ci-/Develop/TC_CTR_V5/Workspace_CCS_V7/idkAM571x_SBL /ti/pdk_am57xx_1_0_8/packages/ti/boot/sbl/soc /ti/pdk_am57xx_1_0_8/packages/ti/boot/sbl/board/src

链接器设置:

mtune = cortex-a15 -marm -DAM571x_build -DSOC_AM571x -Dam5718 -D_ARMv7 -DidkAM571x -dboot_MMCSD -DOAPP_NOM -g -gddwarf-3 -gstrict-dwarf -Wall -speces="sbosys.cn"-mwl"/ti/pdk_am57xx_1_0_8/packages/ti/drv/uart/lib/a15/release -/ti/pdk_am57xx_1_0_8/packages/ti/drv/i2c/lib/a15/release -startL /ti/pdk_am57xx_1_0_8/packages/ti/drv/spi/lib/a15/release -intradem/-mv//ti/pdk_am57xx_1_0_8/packages/ti/csl/lib/am571x/a15/release -degl"-intrab/-mv/cn"-mwl"-ine-v/-intradem/-inuwl"-v-ex-v/-v/-mv/-definese-v/-mv/-intrab-mv/-mwl"-v/-v/-ex-inuwl"/ti/pdk_am57xx_1_0_8/packages/ti/drv/mmcsd/lib/a15/release /ti/bios_6_46_05_55/packages/gnu/targets/arm/rtsv7A/lib -v/-mv/-v/-v/-v/-v/-v/-v/-defines/-v/-v/-v/-v/-v/-v/-v/-v/-/ti/pdk_am57xx_1_0_8/packages/ti/board/lib/idkAM571x/a15/release /ti/pdk_am57xx_1_0_8/packages/ti/drv/pm/lib/am571x/a15/release /ti/pdk_am57xx_1_0_8/packages/ti/osal/lib/nonos/am571x/a15/release /ti/pdk_am57xx_1_0_8/packages/ti/fs/fatfs/lib/a15/release

我在 Windows 上使用 SDK RTOS v04.01.00.06、PDK v1.0.8、CCS 7.2.0.00013

此致、

Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Christian、

    在构建步骤中、我无法看到您将与 CCS 工程一起使用的链接器命令文件。 您能否确认使用 pdk_am57xx_1_0_8\packages/ti\boot\sbl\boardIdkAM571x\build 中提供的链接器命令文件

    链接 器命令文件的链接器命令文件。 这是将 start_code 段放在地址0x40331000 (SBL_MEM 段的开头)的文件

    您可以在此处发布您的 SBL.map 文件、以便我们了解您是否已经执行此步骤。

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rahul、

    是的、我认为是这样。 SBL_SRC_DIR 指向构建/变量中定义的 C:\ti\pdk_am57xx_1_0_8\packages/ti\boot\SBL。 linker.cmd 在 GNU Linker\Libraries (-T)中有一个条目、请参阅屏幕截图

    在映射文件后面加上条目:

    2786:.startcode 0x40331000 0x0

    e2e.ti.com/.../idkAM571x_5F00_SBL.map.txt

    此致、

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从您的映射文件中、 条目符号似乎不在 SBL_MEM 的基础上。 地图文件与 makefile 编译的映射文件之间的快速比较显示 startcode 段为空、入口符号位于0x40331bb4

    我不确定链接顺序是否导致了此问题、但您需要找到一种方法来保存 SBL_MEM 基础上的条目符号。

    以下是我要引用的地图文件中的快照:

    这是使用 makefile 构建的文件中的样子:

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rahul、
    如果链路顺序会导致此问题、我需要在哪里调整/尝试某种操作?
    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    在 e2e.ti.com/support/arm/sitara_arm/f/791/t/629312上、您可以下载从 E2E 移植的 SBL 项目。 .startcode 和 entry...之间还有地址差异。

    另一个显著特征:

    使用 gmake 生成、请参阅(加载一个 ao 文件-一个)

    e2e.ti.com/.../gmake.map.txt

    使用 CCS 生成、请参阅(仅加载.o 文件)

    e2e.ti.com/.../CCS.map.txt

    我是否必须在 CCS 中的某个位置输入"Common Entry Object"? 或者它与我的问题无关吗?

    此致、

    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Christian、

    在 Build Options -> CCS Build 下、有一个选项卡可用于更改链接顺序。 如果是链接文件、您能否通过将 SBL_init.S 置于顶部来尝试该选项。
    我们尚未尝试此选项、但我正在与 Sahin 合作、他帮助您处理原始帖子、以查看我们是否可以强制编译器将符号放置在 RBL 预期的 OCMC 存储器中的位置。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们尝试了此处提供的建议、并能够将条目重新定位到位置0x40331000。 以下是有助于此设置的屏幕截图

    希望这可以解决启动问题。

    此致、

    Rahul

    PS:我们在更新 SBL 二进制文件后使用 SD/MMC 测试了 SBL 引导

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢大家

    Christian