Other Parts Discussed in Thread: C2000WARE,
Hello,
we are trying to make the Flash ECC work.
In the linker cmd file we have
MEMORY
{
BEGIN : origin = 0x080000, length = 0x000008 /* Increased length from 2 to 8 for ECC elignment */
RAMM : origin = 0x0000F5, length = 0x000703
RESET : origin = 0x3FFFC0, length = 0x000002
FLASH_BANK0_1 : origin = 0x080009, length = 0x01EFB0 /* on-chip Flash, aligned to multiply of eight for ECC */
/* Gap between FLASH_BANK0_1 and FLASH_BANK0_1_CRC : 7 bytes, aligned to multiply of eight for ECC */
FLASH_BANK0_1_CRC : origin = 0x09EFC0, length = 0x40 /* on-chip Flash: 32B for CRC table */
FLASH_BANK0_1_ECC : origin = 0x01080001, length = 0x3DF6 ECC={ input_range=FLASH_BANK0_1 algorithm=F021 }
...
}
We decided to use the linker support for ECC because of the possibility to exercise fault injection tests with the --ecc:data_error option.
The firmware builds without warnings, but we don't know how to flash the firmware so that the calculated ECC data gets programmed in the MCU.
Below the output from the DSLite tool
DSLite flash -c ti_sdk/C2000Ware/device_support/f28004x/common/targetConfigs/TMS320F280049C_LaunchPad.ccxml -l config/make/f28004x.ufsettings -e -f .build-PvApp_BL16512_P00-Debug/exe/PV-Controller_PvApp_0001_BL16512_P00 -r 0
DSLite version 12.2.0.2933
Configuring Debugger (may take a few minutes on first launch)...
Initializing Register Database...
Initializing: IcePick_C_0
Executing Startup Scripts: IcePick_C_0
Initializing: C28xx_CPU1
Executing Startup Scripts: C28xx_CPU1
Initializing: CLA1_0
Executing Startup Scripts: CLA1_0
Connecting...
C28xx_CPU1: GEL Output:
Memory Map Initialization Complete
C28xx_CPU1: GEL Output: ... DCSM Initialization Start ...
C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
C28xx_CPU1: GEL Output: ... DCSM Initialization Start ...
C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
Loading Program: .build-PvApp_BL16512_P00-Debug/exe/PV-Controller_PvApp_0001_BL16512_P00
Preparing ...
.text: 0 of 4 at 0x80000
C28xx_CPU1: GEL Output: ... DCSM Initialization Start ...
C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...
.text: 0 of 5302 at 0x8000c
.text: 0 of 110378 at 0x80a68: 3%
.text: 32752 of 110378 at 0x80a68: 23%
.text: 65504 of 110378 at 0x80a68: 43%
.text: 98256 of 110378 at 0x80a68: 62%
.text: 0 of 484 at 0x8e200: 70%
.data: 0 of 140 at 0x8e2f4: 70%
.data: 0 of 15564 at 0x8e33c: 70%
.data: 0 of 808 at 0x901a4: 80%
.data: 0 of 84 at 0x9efc0: 80%
.data: 0 of 31724 at 0x1080001: 80%
error: C28xx_CPU1: File Loader: Verification failed: Attempted to write past the end of memory at 0x1080001@Program
Finished: 80%
Failed: File: .build-PvApp_BL16512_P00-Debug/exe/PV-Controller_PvApp_0001_BL16512_P00: Load failed.
config/make/rules.mk:87: recipe for target 'flash' failed
Please advise.