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:SRAM ECC 错误、用于强制设置1位且2BIT 生成异常

Guru**** 2426460 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1345237/tms570lc4357-sram-ecc-error-forcing-1bit-and-2bit-generates-exception

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

您好

使用安全库执行 SRAM_ECC_ERROR_FORCE_2BIT、SRAM_ECC_ERROR_FORCE_1位选择测试时、我面临一个问题。

仅当应用程序与引导加载程序结合使用时、才会观察到该问题。

但如果应用程序独立运行、则不会发现问题。

我需要帮助来解决此问题。

RetVal = SL_SelfTest_SRAM (SRAM_ECC_ERROR_CHING_2bIT、true、&failInfoTCMRAM);
/*在 SRAM 上运行1位 ECC 测试*/
RetVal = SL_SelfTest_SRAM (SRAM_ECC_ERROR_CHING_1bit、true、&failInfoTCMRAM);

下面是应用程序链接文件配置。

内存
{
/*这些配置设置对于所有基于 SAFERTOS 的
*应用程序。
*如果整个构建使用 ARM 模式、则向量长度可以为0x20。
*在使用 Thumb 模式时,需要0x80以适应交互工作
*代码。 */

VECTORS (X):origin=0x00200000 length=0x00000080 vfill = 0xffffffff
KERN_FUNC (RX):origin=0x00200080 length=0x0000ff80 vfill = 0xffffffff
FLASH0 (RX):origin=0x00210000 length=0x001D0000 vfill = 0xffffffff
堆栈(RW):origin=0x08000000 length=0x00003000
kern_data (rw): origin=0x08003000 length=0x00002000
RAM (RW):origin=0x08005000 length=0x0007B000


ECC_VEC (R): origin=0xf0400000 length=0x10 ECC={ input_range=vectors }
ECC_Kern (R):origin=0xf0400000 + 0x10 length=0x1ff0 ECC={input_range=Kern_FUNC}
ECC_FLA0 (R):origin=0xf0400000 + 0x10 + 0x1ff0 length=0x2e000 ECC={input_range=FLASH0}


ECC{
algoL2R5F021:Address_mask = 0xfffffff8 /*地址位31:3 */
AMMING_MASK = R4 /*使用 R4/R5内置掩码*/
page_mask = 0x0c /*设置哪些 ECC 位为偶数和奇校验*/
镜像= F021 /* RM57Lx 和 TMS570LCx 是在 F021中构建的*/

/*------------------ */
/*段配置*/

部分
{
/*这些配置设置对于所有基于 SAFERTOS 的
*应用程序。 */

/*需要导出以下符号:
*
* lnkKernelFuncStartAddr -运行时使用的闪存存储器部分的开始部分。
*
*重要说明: lnkKernelFuncStartAddr 可以重新定位(例如,当
*使用了 bootloader)、但必须根据其大小对齐它
*(四舍五入到下一个2的幂)、否则 MPU 将为
*配置不正确。
*
* lnkEndFlashAddress -运行时使用的 Flash 存储器段的末尾。
*
* lnkKernelFuncStartAddr -包含 ARM Cortex-M4内核的 Flash 块的起始地址、
*中断矢量表和内核函数。
*注意:这应该根据段大小对齐,即0x8000。
*
* lnkKernelFuncEndAddr -包含 ARM Cortex-M4内核的 Flash 块的结束地址、
*中断矢量表和内核函数。
*
* lnkKernelDataStartAddr -包含 ARM Cortex-M4内核的 RAM 块的起始地址、
*系统堆栈和内核数据。
*
* lnkKernelDataEndAddr -包含 XML 核心文件的 RAM 块的结束地址、
*系统堆栈和内核数据。
*/

/*在此演示应用中,内核函数部分位于
* Flash 存储器启动;如果应用程序被重定位,则不会出现这种情况。 */
.intvecs palign (32)、start (lnkStartFlashAddress)、start (lnkKernelFuncStartAddr)
fill =0xffffffff{}>向量

.kernel_function end( lnkKernelFuncEndAddr ):
{
*(内核函数)
}> KERN_FUNC

unpriv_flash palign (32),end( lnkEndFlashAddress ):
{
*(.text)
*(.const)
}> FLASH0

.cinit align (32):{}> FLASH0
.pinit align (32):{}> FLASH0

stack_data start( lnkKernelDataStartAddr ):{}> stacks
kernel_data end( lnkKernelDataEndAddr ):{}> kern_data

.bss :{}> RAM
.data :{}> RAM
.sysmem:{}> RAM
Log_data:> RAM //log
PROFILE_DATA:> RAM //PROFILE
/*这些配置设置适用于 SafeRTOS TMS570LC43x FPU 演示
*项目。 其中包含了这些示例、用于演示如何使用
*被分组到已知的位置,从而使 MPU 区域能够
*可以定义。 */

__idle_hook_data__
: start( lnkIdleTaskDataStartAddr )
{}> RAM palign ( 0x20)

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

    尊敬的 Vipin Kumar:

    使用安全库执行 SRAM_ECC_ERROR_FORCE_2BIT、SRAM_ECC_ERROR_FORCE_1位选择测试时、我面临一个问题。

    仅当应用程序与引导加载程序结合使用时、才会观察到该问题。

    [/报价]

    具体问题是什么、您能否更详细地描述一下。 我的意思是 ESM 标志在测试后未设置? 或者您的代码是否在某处卡住? 或者您将获得中止?

    请提供更多详细信息。

    此外、如果可能、您能否为该问题提供一个最简单的项目?

    --

    谢谢。此致、
    Jagadish。

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

    我们周五开会、我应该要在最后实施错误触发。

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

    尊敬的 Vipin Kumar:

    我了解了出现此问题的根本原因、这应该是由于在 MPU 配置中未启用 SRAM ECC 区域、如下所示:

    如果我们未启用此区域、则将无法在应用程序中读取此区域、并且无法更改相应的数据。

    因此、启用该区域以强制设置 SRAM ECC 错误非常重要。

    --
    谢谢。此致、
    Jagadish。

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

    您好,Jagadish

    我 无法通过 HALGoGen 修改该区域。

    是需要手动操作。

    关于
    维平·库马尔

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

    尊敬的 Vipin Kumar:

    为什么您无法从 HALCoGen 进行更改?

    尝试更改应用程序代码、而不是引导加载程序。 如果您为应用启用突出显示的区域、它应该可以正常工作。

    --
    谢谢。此致、
    Jagadish。

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

    您好,Jagadish

    我附上了应用程序 halcogen 的屏幕截图.

    区域4已经存在、但地址不同、我无法更改。

    正如我记得的、我 在论坛中搜索并发现、如果应用程序具有任何 RTOS、则不能对其进行更改。

    关于

    维平·库马尔

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

    你好,Vipin Kumar

    我在区域4添加了、但不需要区域4。

    只需选择一个不使用区域的区域即可进行配置。

    例如、8区未使用。

    因此、我也可以在此处进行配置:

    --
    谢谢。此致、
    Jagadish。

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

    您好,Jagadish

    好的。

    让我检查一下。

    关于

    维平·库马尔