Hello,
to generate valid ECC data for the entire internal flash memory of the TMS570LS3137 we would like to specify the memory range from 0x0 to 0x2fffff.
nowECC -i application.hex -r 0x0 0x2FFFFF -o application_ecc.hex -F021 16M_ADD -r4
Unfortunately the nowECC tool returns the error:
Error 48 - Invalid range value - End address: 0x002fffff is invalid
The error is returned, because our input file doesn't contain addresses up to 0x2FFFFF.
Our input file is not filled up to 0x2FFFFF with 0xFF, as this is anyway the erased value which should also be considered in nowECC for uninitialized data, if the range to be calculated is explicitely stated.
We have to force the nowECC tool to generate ECC data for the entire internal flash memory, to prevent the error pin toggling for speculative prefetches of the core. (http://e2e.ti.com/support/microcontrollers/hercules/f/312/t/228184.aspx)
It seems that with linker generated ECC and virtual memory filling (VFILL) such a use case would be possible, but unfortunately we can't switch to linker generated ECC as after the link process an external tool is used to modify some sections in the application file (builddate, application CRC value, ect..). The ECC needs to be calculated after this
Is there any way to force nowECC to generate ECC data also for holes in the input file?