Other Parts Discussed in Thread: TMS570LS3137
Tool/software: Code Composer Studio
Hello Expert,
One of my customers uses Linker CMD to generate ECC for the whole flash, and use Uniflash to load the object file to the flash (TMS570LS3137).
The vfill is used in Linker CMD to virtually fill 0xFFFFFFFF to the whole flash:
MEMORY
{
/* Flash RAM 3MiB*/
VECTORS (RX) : origin=0x00000000 length=0x00000020 vfill=0xFFFFFFFF
FLASH (RX) : origin=0x00000020 length=0x0017FFE0 vfill=0xFFFFFFFF
/* SOC RAM */
ECC_VECTORS (R) : origin=0xF0400000 length=0x000004 ECC={ input_range=VECTORS, algorithm=eccalgorithm, fill=true }
ECC_FLASH (R) : origin=0xF0400004 length=0x02FFFC ECC={ input_range=FLASH, algorithm=eccalgorithm, fill=true }
/* Safe RAM 32KiB*/
RAM (RW) : origin=0x08000000 length=0x00003400
}
ECC
{
eccalgorithm : address_mask = 0x003ffff8
hamming_mask = R4
parity_mask = 0x0C
mirroring = F021
}
After the object file is loaded to the flash using uniflash, customer noticed that the ECC of un-used flash is not programmed. Image verification failed too. Step to have the issue:
1) Erase the flash -> SUCCESS
2) Power off
3) Power on
4) Load Application without any verification -> SUCCESS
5) Verify Application -> FAILURE ----> check the memory content and found the ECC of unused flash is not programmed
6) Load Application without any verification -> SUCCESS
7) Verify Application -> SUCCESS --> check the memory content and found the ECC of unused flash is programmed correctly.
Do you have any idea why the first load (step 4) doesn't work well. Thanks