请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:RM57L843 您好!
考虑为 RM57x 生成 ECC 的链接器命令文件:
ECC 算法的正确 ADDRESS_MASK 是什么? 0xfffffff8或 0x003ffff8
正确的"palign"是什么? 32或8
这是我使用的文件。
//----------------------------------------------------------------------------
// Linker Settings
//----------------------------------------------------------------------------
--retain="*(.intvecs)"
//----------------------------------------------------------------------------
// ECC algorithm
//----------------------------------------------------------------------------
ECC
{
algoL2R5F021 : address_mask = 0xfffffff8 /* Address Bits 31:3 */
hamming_mask = R4 /* Use R4/R5 build in Mask */
parity_mask = 0x0c /* Set which ECC bits are Even and Odd parity */
mirroring = F021 /* RM57Lx and TMS570LCx are build in F021 */
}
//----------------------------------------------------------------------------
// Memory Map
//----------------------------------------------------------------------------
MEMORY
{
//----------------------------------------------------------------------------
// On-chip FLASH, 0x00000000-0x003FFFFF = 4Mx16bits.
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// On-chip FLASH0, 0x00000000-0x00200000 = 2Mx16bits.
//----------------------------------------------------------------------------
VECTORS (X) : origin=0x00000000 length=0x00000020 vfill = 0xFFFFFFFF
FLASH0 (RX) : origin=0x00000020 length=0x001FFFE0 vfill = 0xFFFFFFFF
//----------------------------------------------------------------------------
// On-chip FLASH1, 0x00200000-0x003FFFFF = 2Mx16bits.
//----------------------------------------------------------------------------
FLASH1 (RX) : origin=0x00200000 length=0x00200000 vfill = 0xFFFFFFFF
//----------------------------------------------------------------------------
// ECCs
//----------------------------------------------------------------------------
ECC_VEC (R) : origin=(0xf0400000 + (start(VECTORS) >> 3)) length=(size(VECTORS) >> 3) ECC={algorithm=algoL2R5F021, input_range=VECTORS}
ECC_FLA0 (R) : origin=(0xf0400000 + (start(FLASH0) >> 3)) length=(size(FLASH0) >> 3) ECC={algorithm=algoL2R5F021, input_range=FLASH0}
ECC_FLA1 (R) : origin=(0xf0400000 + (start(FLASH1) >> 3)) length=(size(FLASH1) >> 3) ECC={algorithm=algoL2R5F021, input_range=FLASH1}
//----------------------------------------------------------------------------
// On-chip RAM, 512Kx16bits (0x08000000-0x0807FFFF)
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// (0x0800000-0x080015FF): Stack
//----------------------------------------------------------------------------
STACKS (RW) : origin=0x08000000 length=0x00001600
//----------------------------------------------------------------------------
// (0x08001500-0x0807FFFF): RAM
//----------------------------------------------------------------------------
RAM (RW) : origin=0x08001600 length=0x0007E200
ST_ECC_FLASH (RWX) : origin=0x0807f800 length=0x00000800
//----------------------------------------------------------------------------
// External SDRAM, 4Mx32bits (0x80000000 - 0x803FFFFF)
//----------------------------------------------------------------------------
SDRAM (RWX) : origin=0x80000000 length=0x00400000
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// Section Configuration
//----------------------------------------------------------------------------
SECTIONS
{
.intvecs : {} > VECTORS
// Initialized executable code and constants.
.text palign(32) : {} > FLASH0 | FLASH1
// Initialized constant data.
.const palign(32) : {} > FLASH0 | FLASH1
// Initialized global and static variables.
.cinit palign(32) : {} > FLASH0 | FLASH1
.pinit palign(32) : {} > FLASH0 | FLASH1
.init_array palign(32) : {} > FLASH0 | FLASH1
.bss : {} > RAM
.data : {} > RAM
.sysmem : {} > RAM
.stack : {} > STACKS
}
//----------------------------------------------------------------------------
谢谢。
Marcio。