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:由链接器生成的 ECC

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/772021/tms570lc4357-linker-generated-ecc

器件型号:TMS570LC4357
主题中讨论的其他器件:NOWECC

您好!

我尝试编写一个简单的引导加载程序、以便能够通过串行端口将应用程序映像加载到电路板上。 我尝试了两种不同的方法:

CCS 加载程序启用自动 ECC 生成和闪存验证

2. CCS 加载程序自动 ECC 生成被禁用&无闪存验证

对于方法1、我只有在编辑了 BL_FLASH.c 文件中的 Fapi_BlockProgram 和 Fapi_BlockErase 函数(由 TI 提供)后才成功将 Fapi_DataOnly 参数切换为 Fapi_issueProgramming Command 函数中的 Fapi_DataOnly 参数。 在这些修订版本中、我能够将引导加载程序映像加载到电路板上、并使用引导加载程序加载应用程序映像.bin 文件、跳转到应用程序存储器并成功运行该应用程序代码。 我注意到、当我使用 CCS 加载程序将引导加载程序映像加载到 TMS570时、ECC 错误指示灯亮起(尽管此指示灯亮起时引导加载程序代码和应用程序代码正常工作)。 当 I PORRST 电路板时、ECC 错误指示灯熄灭、引导加载程序能够将有效的应用程序映像.bin 文件加载到电路板上、但无法跳转至该应用程序代码并运行。

在方法2中、我未成功生成任何正常运行的引导加载程序映像。 我根据以下链接修改了链接器命令文件  。使用这些修订版本、引导加载程序无法运行。

请提供以下问题的一些信息:

对最终将通过串行端口(而不是 CCS 加载程序)加载应用程序的引导加载程序进行编程时、是否应该实现由链接器生成的 ECC? 或者是否可以在没有链接器生成的 ECC 的情况下对映像进行编程?

该 ECC 错误 LED 指示灯的具体含义是什么? 为什么在 PORRST 上将其清零?

3.您能想到为什么我的引导加载程序在从 CCS 加载程序加载时能够成功跳转到应用程序代码、然后在干净启动时(在 PORRSTing 电路板后)无法运行相同的应用程序代码?

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

谢谢、

Vicki

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

    您可以使用由 CCS ECC 自动生成生成的 ECC、或由链接器命令生成的 ECC 或由 nowECC 等其他工具生成的 ECC 对引导加载程序进行编程。 Cortex R5F CPU 可以生成推测取指令、将其取指令到闪存存储器空间内的任何位置。 对具有无效 ECC 的位置的推测取指令(随后未使用)不会创建中止、但会为可纠正或不可纠正的错误设置 ESM 标志。 不可纠正的错误将无条件地导致 nERROR 引脚切换为低电平。 因此、必须注意为整个闪存空间生成正确的 ECC、包括段和任何未使用或空白闪存区域之间的空洞。

    2. ESM 模块具有每个错误通道的错误标志。 错误状态寄存器 ESMSR1、ESMSR4、ESMSR7、ESMSR2、ESMSR3提供了有关组1 (通道0-31)、组1 (通道32-63)、组1 (通道64-95)、组2和组3的挂起错误的状态信息、 两个示例。 请检查状态寄存器以确定设置了哪个通道。

    PORRST 之后、ESM 模块中的所有寄存器将被重新初始化为缺省值。 所有错误状态寄存器被清零。

    3.如果使用链接器为引导加载程序生成 ECC、则需要更改 CCS 加载程序设置、以便加载程序也不会尝试生成 ECC。 编程期间的验证也需要跳过、因为数据区域和 ECC 区域现在将采用单独的步骤进行编程。
    在 CCS"Flash 设置"中、请检查以下各项:

    1.检查连接时系统复位
    2.未选中自动 ECC 生成
    3.将程序段与64位内存区域对齐将被选中
    4.闪存验证设置应为“无”
    5.在必须取消选中程序加载之前执行空白检查