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/LAUNCHXL2-RM46:CAN 引导加载程序-来自 tiobj2bin 的巨型.bin 大小

Guru**** 2524550 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/935537/ccs-launchxl2-rm46-can-bootloader---huge-bin-size-from-tiobj2bin

器件型号:LAUNCHXL2-RM46
主题中讨论的其他器件:UNIFLASH

工具/软件:Code Composer Studio

我正在使用应用报告 SPNA241中引用的 TI CAN 引导加载 程序、我希望能够使用 UniFlash 将 CAN 引导加载程序加载到我们的电路板上、而不是在另一台机器上安装 CCS。

当我添加编译后 tiobj2bin 输入以创建.bin 文件时、结果大小约为4 GB!

我没有对链接器命令文件(bl_link.cmd)进行任何更改、它包含几行 vfill:

存储器

   引导程序   (X)  :origin=0x00000000 length=0x00000020     vfill =0xFFFF
   FLASH0    (RX) :origin=0x00000020 length=0x00140000-0x20 vfill = 0xffffffff
   SRAM      (RW) :origin=0x08002000 length=0x0002D000
   栈     (RW) :origin=0x08000000 length=0x00002000
/*用户代码开始(2)*/
#if 1.
   ECC_VEC (R):origin=(0xf0400000 +(start (vectors)>> 3))
                  length=(size (vectors)>> 3)
                  ecc={algoL2R4F021、input_range=vectors}

   ECC_FLA0 (R):origin=(0xf0400000 +(开始(FLASH0) >> 3))
                  length=(size (FLASH0) >> 3)
                  ecc={algoL2R4F021、input_range=FLASH0}
#endif
/*用户代码结束*/

文件大小显然大大超过了闪存的大小、并且与.out 文件的603KB 大小不一致。

如何创建大小合理的.bin?

谢谢!

-Tom

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

    bin 格式不支持已初始化段之间的间隔、如果 out 文件包含闪存和 ECC 区域的内容、那么 bin 文件必须包含 闪存和 ECC 区域地址之间的4、029、415、424字节的间隔。

    Uniflash 支持对 TI ELF 格式文件进行编程、因此您可以改用 Uniflash 对.out 文件进行编程、而不是对 bin 文件进行编程?

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

    嗯、现在我觉得傻了。 我尝试过、但收到错误"[ERROR] CortexR4:文件加载程序:验证失败:地址0x00000000处的值不匹配请验证目标存储器和存储器映射。" 我已经有一段时间在努力让引导加载程序正常工作、但您提到 ECC 时提醒我、需要取消选中"Auto ECC Generation"、并在"Flash Settings"中为"Flash Verification settings"选择"None"。 允许使用.out 文件进行编程。

    感谢您的快速回复!

    -Tom