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:在十六进制文件的末尾添加 CRC 时出现问题

Guru**** 2422630 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1333991/tms570lc4357-issue-adding-crc-to-the-end-of-a-hex-file

器件型号:TMS570LC4357

我们将使用稍作修改的通用引导加载程序版本来现场将应用程序映像加载到产品中。  加载应用程序映像后、bootrom 会计算 CRC32。  它将此 CRC 与在闪存末尾加载的值进行比较。  我们生成和刷写 CRC 值的方法是 Buggy。  我想将 CRC 附加到十六进制文件的末尾、并进行诸如 tera-term 加载之类的操作。 我已经阅读了 TI 文档、并通过 Google 在网上阅读了有关如何将 CRC 添加到生成的十六进制映像中的说明。 我希望我们有一个更好的例子。  从我读到的内容来看、这对我来说很合适。

我将使用此链接器脚本生成的十六进制文件与不生成 CRC 的旧版本进行了比较、期望在十六进制文件的最末尾找到唯一的区别。  整个过程中存在差异、并且似乎有很多零填充记录。  我不需要零填充记录、因为我们将原本未使用的闪存的一部分用于非易失性参数。  下面是我编写的、针对可读性进行了精简的链接器脚本。  VECTORS0 和 FLASH0供 bootrom 使用。  我需要在闪存结束时、在 CRC_SEC 中使用 CRC。  感谢任何帮助。  我只需要32位 CRC 值。

内存
{
   VECTORS0 (X)   :origin=0x00000000 length=0x00000020
   VECTORS (X)    :origin=0x00200000 length=0x00000020
   FLASH0 (RX)   :origin=0x00000020 length=0x001FFFE0
   Flash  (RX)   :origin=0x00200020 length=0x001FFEE0
   CRC_SEC (RX)   :origin=0x003FFF00 length=0x00000100
   trampoline (RW):origin=0x08000000 length=0x00000020
   栈 (RW)   :origin=0x08000020 length=0x000107E0
   RAM    (RW)   :origin=0x08010800 length=0x0006f800


部分
{
   /*具有 CRC 生成功能的 VST 应用的自定义段声明*/
   .intvecs :{}>向量
   .bss   :{}> RAM
   .data   :{}> RAM
   .sysmem :{}> RAM

   组(TEXTMEM)
   {
   .text   align (32):{}
   .const   align (32):{}
   .cinit   align (32):{}
   .pinit   align (32):{}
   /* FEE_*段必须为32位对齐*/
   FEE_TEXT_SECTION ALIGN (32):{}
   FEE_CONST_SECTION ALIGN (32):{}
   }> FLASH、crc_table (vst_crc_table、算法= CRC32_PRIME)

   FEE_DATA_SECTION ALIGN (32):{}> RAM

   .TI.crctab:> CRC_SEC

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

    您好、Richard、

    在添加 CRC 之前、您是否还可以共享其链接器 cmd 文件?

    Unknown 说:
    crc_table (vst_crc_table、algorithm= CRC32_PRIME)

    是否还要为新应用添加新的 CRC 表?

    您正试图将此 CRC 表存储在何处、您能否也共享其声明?

    --
    谢谢。此致、
    Jagadish。