主题中讨论的其他器件: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)
}



