Other Parts Discussed in Thread: NOWECC, UNIFLASH
Tool/software: TI C/C++ Compiler
Hi, I apologize in advance for posting in the incorrect forum (if I am). We used to use:
nowECC -r5 -f021 16M_ADD -a foo.hex
but since nowECC is no longer supported, we'd like to migrate to having the ECC generated by the linker command file. The only documentation I could get from nowECC is running it with the -h option, where I get vague information, and seemingly not directly correlated to the information here: h t t p processors.wiki.ti.com/index.php/Linker_Generated_ECC. For example, the -r5 option description is "To use "ECC in CPU" feature of Cortex-R5" which provides little real information. How does that translate to the linker command line process?
I tried applying the example given in the wiki, and although I get no errors, the hex file generated has about double the ECC section than in the hex file generated by nowECC.
Ideally, if someone could tell me exactly how to create an identical hex file from the above command line instruction by using whatever linder command line information, I'd be thrilled.
Here is the relevant snip from the linker command file (that generated a bigger ECC section than I was expecting):
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
{
PBL_VEC (RWX) : origin, blah blah
PBL_CRC (RW) : origin, blah blah
PBL_TXT (RWX) : origin, blah blah
ECC_VEC (R) : origin=(0xf0400000 + (start(PBL_VEC) >> 3))
length=(size(PBL_VEC) >> 3)
ECC={algorithm=algoL2R5F021, input_range=PBL_VEC}
ECC_CRC (R) : origin=(0xf0400000 + (start(PBL_CRC) >> 3))
length=(size(PBL_CRC) >> 3)
ECC={algorithm=algoL2R5F021, input_range=PBL_CRC}
ECC_TXT (R) : origin=(0xf0400000 + (start(PBL_TXT) >> 3))
length=(size(PBL_TXT) >> 3)
ECC={algorithm=algoL2R5F021, input_range=PBL_TXT}
Could someone help, please? Thanks!