Other Parts Discussed in Thread: C2000WARE
Vamsi,
Hope you had some relaxing time off over the holiday :)
I'm getting a strange error from the flashAPI:
C28xx_CPU1: Error during Flash Verification. Address 0x000920EC, Expected 0x0000FFFF, Read 0x0000B2BD C28xx_CPU1: File Loader: Memory write failed: Unknown error C28xx_CPU1: GEL: File: /Users/germanpm/Polymorphic_Labs_LLC/Sygnal/Firmware/MCM/Sygnal-MCM/CPU1_FLASH/Sygnal-MCM.out: Load failed. C28xx_CPU1: Error during Flash Verification. Address 0x00082004, Expected 0x0000FFFF, Read 0x00000049 C28xx_CPU1: Please make sure the memory location you are programming have not already been programmed. C28xx_CPU1: Error during Flash Verification. Address 0x00082141, Expected 0x0000FFFF, Read 0x00000006 C28xx_CPU1: Please make sure the memory location you are programming have not already been programmed. C28xx_CPU1: Error during Flash Verification. Address 0x00082154, Expected 0x0000FFFF, Read 0x00003FEF C28xx_CPU1: Please make sure the memory location you are programming have not already been programmed. C28xx_CPU1: Error during Flash Verification. Address 0x000920E8, Expected 0x0000FFFF, Read 0x00000000 C28xx_CPU1: Please make sure the memory location you are programming have not already been programmed.
Looking in memory at the locations it's complaining about, all of them are 0xFFFF contrary to what the error message states. For instance:
I've tried this on my custom board as well as the LP, the behavior is the same. I am able to program a different application just fine so it appears the problem is localized to a single linker command file.
The linker file is based on the 49 flash command file shipped in C2000ware, but I've modified it to add CRC tables, and some additional sections. Any idea what could be going on? I can share the out file over email if you want.
MEMORY
{
PAGE 0 :
/* BEGIN is used for the "boot to Flash" bootloader mode */
BEGIN : origin = 0x082004, length = 0x000002
CRC_PTR : origin = 0x082006, length = 0x000002
RAMM0 : origin = 0x0000F4, length = 0x00030C
RAMLS0 : origin = 0x008000, length = 0x000800
RAMLS1 : origin = 0x008800, length = 0x000800
RAMLS2 : origin = 0x009000, length = 0x000800
RAMLS3 : origin = 0x009800, length = 0x000800
RAMLS4 : origin = 0x00A000, length = 0x000800
RESET : origin = 0x3FFFC0, length = 0x000002
/* Flash sectors */
/* BANK 0 */
//FLASH_BANK0_SEC0 : origin = 0x080002, length = 0x000FFE /* on-chip Flash */
//FLASH_BANK0_SEC1 : origin = 0x081000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC2 : origin = 0x082008, length = 0x000FF8 /* on-chip Flash */
FLASH_BANK0_SEC3 : origin = 0x083000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC4 : origin = 0x084000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC5 : origin = 0x085000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC6 : origin = 0x086000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC7 : origin = 0x087000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC8 : origin = 0x088000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC9 : origin = 0x089000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC10 : origin = 0x08A000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC11 : origin = 0x08B000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC12 : origin = 0x08C000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC13 : origin = 0x08D000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC14 : origin = 0x08E000, length = 0x001000 /* on-chip Flash */
FLASH_BANK0_SEC15 : origin = 0x08F000, length = 0x001000 /* on-chip Flash */
/* BANK 1 */
FLASH_BANK1_SEC0 : origin = 0x090000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC1 : origin = 0x091000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC2 : origin = 0x092000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC3 : origin = 0x093000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC4 : origin = 0x094000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC5 : origin = 0x095000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC6 : origin = 0x096000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC7 : origin = 0x097000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC8 : origin = 0x098000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC9 : origin = 0x099000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC10 : origin = 0x09A000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC11 : origin = 0x09B000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC12 : origin = 0x09C000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC13 : origin = 0x09D000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC14 : origin = 0x09E000, length = 0x001000 /* on-chip Flash */
FLASH_BANK1_SEC15 : origin = 0x09F000, length = 0x000FF0 /* on-chip Flash */
// FLASH_BANK1_SEC15_RSVD : origin = 0x09FFF0, length = 0x000010 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
PAGE 1 :
BOOT_RSVD : origin = 0x000002, length = 0x0000F1 /* Part of M0, BOOT rom will use this for stack */
RAMM1 : origin = 0x000400, length = 0x0003F8 /* on-chip RAM block M1 */
// RAMM1_RSVD : origin = 0x0007F8, length = 0x000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
RAMLS5 : origin = 0x00A800, length = 0x000800
RAMLS6 : origin = 0x00B000, length = 0x000800
RAMLS7 : origin = 0x00B800, length = 0x000800
RAMGS0 : origin = 0x00C000, length = 0x002000
RAMGS1 : origin = 0x00E000, length = 0x002000
RAMGS2 : origin = 0x010000, length = 0x002000
RAMGS3 : origin = 0x012000, length = 0x001FF8
// RAMGS3_RSVD : origin = 0x013FF8, length = 0x000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
}
SECTIONS
{
codestart : > BEGIN, PAGE = 0, ALIGN(4)//, crc_table(_crcTable, algorithm = CRC32_PRIME)
.TI.crctab : > FLASH_BANK0_SEC2, PAGE = 0, ALIGN(4)
.text : >> FLASH_BANK1_SEC2 | FLASH_BANK1_SEC3 | FLASH_BANK1_SEC4 |FLASH_BANK1_SEC5 | FLASH_BANK1_SEC6 | FLASH_BANK1_SEC7 | FLASH_BANK1_SEC8 | FLASH_BANK1_SEC9 | FLASH_BANK1_SEC10 | FLASH_BANK1_SEC11 | FLASH_BANK1_SEC12 | FLASH_BANK1_SEC13 | FLASH_BANK1_SEC14 | FLASH_BANK1_SEC15, PAGE = 0, ALIGN(4)//, crc_table(_crcTable, algorithm = CRC32_PRIME)
.cinit : > FLASH_BANK1_SEC2, PAGE = 0, ALIGN(4)//, crc_table(_crcTable, algorithm = CRC32_PRIME)
.switch : > FLASH_BANK1_SEC2, PAGE = 0, ALIGN(4)//, crc_table(_crcTable, algorithm = CRC32_PRIME)
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */
.stack : > RAMM1, PAGE = 1
#if defined(__TI_EABI__)
.init_array : > FLASH_BANK1_SEC2, PAGE = 0, ALIGN(4)//, crc_table(_crcTable, algorithm = CRC32_PRIME)
.bss : >> RAMLS5 | RAMLS6 | RAMLS7, PAGE = 1
.bss:output : > RAMLS3, PAGE = 0
.bss:cio : > RAMLS0, PAGE = 0
.data : > RAMLS5, PAGE = 1
.sysmem : > RAMLS5, PAGE = 1
/* Initalized sections go in Flash */
.const : > FLASH_BANK0_SEC4, PAGE = 0, ALIGN(4)//, crc_table(_crcTable, algorithm = CRC32_PRIME)
#else
.pinit : > FLASH_BANK1_SEC2, PAGE = 0//, ALIGN(4), crc_table(_crcTable, algorithm = CRC32_PRIME)
.ebss : >> RAMLS5 | RAMLS6 | RAMLS7, PAGE = 1
.esysmem : > RAMLS5 | RAMLS6 | RAMLS7 | RAMGS0 | RAMGS1 | RAMGS2 | RAMGS3, PAGE = 1
.cio : > RAMLS0, PAGE = 0
.econst : >> FLASH_BANK0_SEC4 | FLASH_BANK0_SEC5 | FLASH_BANK0_SEC6, PAGE = 0, ALIGN(4), crc_table(_crcTable, algorithm = CRC32_PRIME)
#endif
ramgs0 : > RAMGS0, PAGE = 1
ramgs1 : > RAMGS1, PAGE = 1
#if defined(__TI_EABI__)
.TI.ramfunc : LOAD = FLASH_BANK0_SEC2,
RUN = RAMLS0,
LOAD_START(RamfuncsLoadStart),
LOAD_SIZE(RamfuncsLoadSize),
LOAD_END(RamfuncsLoadEnd),
RUN_START(RamfuncsRunStart),
RUN_SIZE(RamfuncsRunSize),
RUN_END(RamfuncsRunEnd),
PAGE = 0, ALIGN(4)//, crc_table(_crcTable, algorithm = CRC32_PRIME)
#else
.TI.ramfunc : LOAD = FLASH_BANK0_SEC2,
RUN = RAMLS0,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
RUN_SIZE(_RamfuncsRunSize),
RUN_END(_RamfuncsRunEnd),
PAGE = 0, ALIGN(4)//, crc_table(_crcTable, algorithm = CRC32_PRIME)
#endif
firfilt : > RAMLS5, PAGE = 1, ALIGN(4)
firldb : > RAMLS5, PAGE = 1, ALIGN(4)
crcTablePtr : > CRC_PTR, PAGE = 0
}
/*
//===========================================================================
// End of file.
//===========================================================================
*/
Thanks,
Trey
