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:启动闪存安全

Guru**** 2463330 points
Other Parts Discussed in Thread: TMS570LC4357, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1081047/tms570lc4357-power-on-flash-safe

部件号:TMS570LC4357
《线程:UNIFLASH》中讨论的其他部件

王工您好:

    我想咨询一下。

    1)我们通过CCS用J - link下载程序时,如何保证程序下载正确,不会出现错误?

    2)程序下载到Flash中后,tms570会自动生成ECC或者CRC保护吗?

    3)如果在程序下载完成后,然后断电。在下次上电前,存储数据的flash出现错误,那么上电后,tms570能检测到这个错误吗?

    4)TMS570中的程序运行,如果不在cmd文件中特殊指定的情况下,是否加载到ram中运行,还是直接在flash中运行?    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [ )我们通过CCS用J userid="507609" url="~ë/support/icls/arm-based 微处理器-组/基于 ARM 的微控制器/f/arm-based 微控制器- forum/1081047/tms570lc4357 -加电-闪-安全"] 1 μ m - link下载程序时,如何保证程序下载正确,不会出现错误?[/引述]

    CCS 和 Uniflash 在代码加载到闪存后支持闪存验证。  验证有两种类型-快速和完全。 缺省情况下使用 FAST (因为 Full 可能需要一些时间)。 快速验证将验证几个内存位置(内存的第一个和最后几个字节以及其中的一些随机位置)中的内容。 完全验证将验证内存的全部内容。 验证过程是将内存的内容与加载文件中包含的数据进行比较。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="507609" url="~ë/support/icls/arm-based 微处理器-组/基于 ARM 的微控制器/f/arm-based 微控制器- forum/1081047/tms570lc4357-power -On-flash-safe "] 2)程序下载到Flash中后,tms570会自动生成ECC或者CRC保护吗?

    CCS 和 Uniflash 支持 ECC 生成:

    默认情况下,片上闪存插件在编程前擦除闪存,为可执行文件生成 ECC 并对其与主阵列闪存内容进行编程,并验证编程内容。 如果需要,用户可以启用空白检查- CPU 验证以确认闪存在编程前被擦除。  

    您可以在链接步骤中使用链接器 cmd 文件生成 ECC。 必须启用 CCS 链接步骤中提供的–ECC 选项。 启用-ECC 后,链接程序将为闪存应用程序生成 ECC 映像,并将其附加到可执行文件的末尾。 TI 闪存工具(CCS 和 UniFlash)能够对附加的 ECC 图像进行编程,而不是对默认生成的自动 ECC 进行编程。 使用链接器 ECC 选项时,应禁用 TI 闪存工具中提供的自动 ECC 生成。

    有关如何使用 Linker CMD 文件生成 ECC 的信息,请参阅以下链接中的注释:

    https://software-dl.ti.com/hercules/hercules_docs/latest/hercules/How_to_Guides/index.html

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="507609" url="~ë/support/icls/arm-based 微处理器-组/基于 ARM 的微控制器/f/arm-based 微控制器- forum/1081047/tms570lc4357 -加电-闪-安全"] 3)如果在程序下载完成后,然后断电。在下次上电前,存储数据的flash出现错误,那么上电后,tms570能检测到这个错误吗?[/quot]

    1.您可以在启动过程中计算应用程序映像的 CRC,并将计算出的 CRC 与预定的硬编码 CRC 值进行比较。

    2.由于闪存受 ECC 保护,当您从闪存读取数据时,将检查 ECC。  

    [引用 userid="507609" url="~ë/support/icls/arm-based 微处理器-组/基于 ARM 的微控制器/f/arm-based 微控制器- forum/1081047/tms570lc4357-power -On-flash-safe "] 4)TMS570中的程序运行,如果不在cmd文件中特殊指定的情况下,是否加载到ram中运行,还是直接在flash中运行?   [/引用]

    据我所知,您需要将输出部分置于 SRAM 中并从 SRAM 运行。  链接器可以为每个输出部分分配目标内存中的两个位置:加 载该部分的位置和运行该部分的位置。

    在您的 c 代码中,您必须手动将代码复制到 SRAM 中。

    请参阅我的 bootloader 示例。 F021闪存 API 相关代码被编程到闪存中,但通过 SRAM 执行。