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.

[参考译文] TMS570LC4357:tiobj2bin.bat -添加到链接器生成的 ECC 中、使.bin 文件变得很大

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/772829/tms570lc4357-tiobj2bin-bat---added-in-linker-generated-ecc-and-it-made-my-bin-file-huge

器件型号:TMS570LC4357

您好!

我正在尝试为我的引导加载程序代码和应用程序代码创建一个.bin 文件。 启用自动 ECC 生成功能后、我已成功为应用代码创建.bin 文件(~101 KB); 但是、将链接器生成的 ECC 添加到应用程序代码的 LCF 和引导加载程序的 LCF 中并禁用自动 ECC 生成后、会导致编译产生巨大的.bin 文件(~3.9 GB)。 看起来.bin 文件用0填充我的应用程序/引导加载程序数据和 ECC (范围广泛)之间的存储器空间。

1.为什么 tiobj2bin 实用程序会生成如此大的.bin 文件(用0填充)?

2.我是否可以对 LCF 进行任何修订以减小.bin 文件大小?

感谢您抽出宝贵的时间为您提供帮助。

谢谢、

Vicki

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

    是的、bin 文件非常大、它包含整个闪存的内容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    原始二进制文件不包含地址、因此所有存储器空位都填充为零。 ECC 地址位于0xF040_0000。 二进制文件包含填充到闪存(0x00xxxxxx)、SRAM (0x08xxxxxx) 和0xF04_0000之间所有未使用地址的零。

    闪存 API 可选择自动计算 ECC 并对其进行编程。

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

    由于我最终不会使用 CCS 加载程序对我的应用程序和引导加载程序映像进行编程、因此我无法利用此自动 ECC 生成功能、因为必须在 CCS 工程属性中启用它。 我最终将使用 RS-232连接(或某种类似协议)对我的器件进行编程。

    是否有在不使用 CCS 加载程序对应用程序和引导加载程序映像进行编程的情况下使用自动 ECC 生成?

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

    您可以使用闪存 API 计算引导加载程序中的 ECC 并对其进行编程。 如果不使用 CCS 加载程序、就无法使用自动 ECC。

    使用引导加载程序命令文件生成 ECC、并使用 CCS 加载程序为整个闪存加载 ECC。

    使用 UART 引导加载程序将应用程序映像下载到闪存中、并计算/编程应用程序的 ECC (16字节边界)。