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.

[参考译文] AM2434:加载后文本部分似乎发生了更改

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1429371/am2434-text-section-seems-changed-after-loading

器件型号:AM2434

工具与软件:

您能否说明如何在 EVM 上加载二进制文件?

您是使用 CCS 加载二进制文件还是使用 SBL 加载二进制文件?

此外、您能否说明如何计算已加载二进制文件的 CRC?

 

  1. 添加了用于计算文本段 CRC 的代码(文本段包含计算其自身 CRC 的指令。)
  2. CRC 通过使用静态方法使用来自 ELF 文件的文本段进行计算(使用单独的 CRC 计算器离线)。
  3. 作为正常的 AM243x 应用程序、ELF 文件会使用工具"out2rpc"转换为 RPRC 文件。
  4. 作为正常的 AM243x 应用、RPRC 文件由 SBL 从闪存加载。
  5. 执行第1步中的用于 CRC 计算的代码并比较第2步中的 CRC。   
    在文本段中、大多数块都通过了比较、但有些块失败了。  
     正如我所观察到的,它似乎是失败的,块附近的指令存在()和 CRC 计算从步骤1。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Zhi:

    添加了用于计算文本段 CRC 的代码(文本段包含计算自身 CRC 的说明。)

     最终 CRC 是否也包含用于 CRC 计算的代码?

    使用来自 ELF 文件的文本段静态计算 CRC (使用单独的 CRC 计算器离线)。

    离线工具是否应该生成与代码本身生成的 CRC?

    [quote userid="624908" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1429371/am2434-text-section-seems-changed-after-loading 通过文本段中大多数块的比较、但有些块失败。  
     正如我所观察到的,它似乎是失败的,块附近的指令存在()和 CRC 计算从步骤1。

    您能告诉我们、哪个特定文本部分与 CRC 不匹配吗?

    您还提到了" .TI.section.flags "章节、您能将映射文件发送到您看到过的位置吗? 无法看到包含此名称的部分。

    此致、

    Tushar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="16414" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1429371/am2434-text-section-seems-changed-after-loading/5525641 #5525641"]

     最终 CRC 是否也包含用于 CRC 计算的代码?

    [报价]

    是的、CRC 校验也涵盖了 CRC 计算本身的代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="16414" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1429371/am2434-text-section-seems-changed-after-loading/5525641 #5525641"]

    离线工具是否应该生成与代码本身生成的 CRC?

    [报价]

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能告诉我们哪些特定文本部分与 crc 不符吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请将映射文件发送至何处? 我无法看到具有此名称的部分。

    e2e.ti.com/.../mcu_5F00_m4f.zip

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

    关于部分的问题  .TI.section.flags ...

    这是一个元数据段。  其中包含用于跟踪可执行文件中实体属性的编译工具(尤其是链接器)信息。  每个段都有多个与其关联的标志。  其中一些指令在 ELF 目标文件标准中指定的 flags 字段中编码。  TI 需要为该段添加更多标志。  但我们不想使用现有的标志字段、因为害怕全部使用它们、从而违反 ELF 标准等  因此、我们在此元数据段中放置额外的仅 TI 标志。  一个示例是用于标记保留的段的标志、该段是与 C28x 目标支持的实时固件更新功能相关的属性。

    还有其他几个元数据段。  所有指定的段 .debug_ 某些是元数据。  出于您的目的、请忽略所有元数据部分、包括 .TI.section.flags .

    谢谢。此致、

    -George.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    执行步骤1中的 CRC 计算代码并比较步骤2中的 CRC。

    您能否说明一下如何在运行时获取用于 CRC 计算的段的起始地址和大小?