Quantcast
Channel: Tools
Viewing all articles
Browse latest Browse all 91781

Forum Post: TMS570 (TMS570LS20216): Linker generated ECC issue

$
0
0

My linker script is based on the wiki at http://processors.wiki.ti.com/index.php/Linker_Generated_ECC but there's a note there stating that the ECC algorithm sections "...is yet not verified"  for the TMS570LS20x/10x. Also the section named example Memory Map for TMS570LS20216 is empty, so it isn't of much help.

Anyway, when I debug the Debug project I'm able to step through the code to a certain point when the stack shows that the "entry point" has been reached and I'm unable to continue stepping through the code. My guess is that the issue is related with handling interrupts and possibly something to do with the ECC algorithm section in the linker script below. 

Are there any issues with the linker script below that could be causing this? Also can somebody verify that the ECC section is correct? I have a hunch that the hamming_mask should be FMC, but I haven't been able to find this anywhere in the documentation.

Note that this is a working project using nowECC, and the issues I'm having are while trying to generate the ECC data via the linker.

My tool versions are:
Code Composer Studio Version: 6.0.0.00190
Hercules Emulation 6.0.2

sys_link.cmd:

// Address of Flash ECC region #define FLASH_ECC_ORIGIN  (0x00400000)  MEMORY {     STACKS  (RW) : origin=0x08000000 length=0x00001500     RAM     (RW) : origin=0x08001500 length=0x00026B00      // Embedded Flash (F035) with vfill specifier, used for ECC generation     VECTORS (X)  : origin=0x00000000 length=0x00000020  fill=0xFFFFFFFF     FLASH0  (RX) : origin=0x00000020 length=0x0007FFE0 vfill=0xFFFFFFFF     FLASH1  (RX) : origin=0x00080000 length=0x00080000 vfill=0xFFFFFFFF     FLASH2  (RX) : origin=0x00100000 length=0x00080000 vfill=0xFFFFFFFF     FLASH3  (RX) : origin=0x00180000 length=0x00080000 vfill=0xFFFFFFFF      // ECC sections     ECC_VEC      : origin = (FLASH_ECC_ORIGIN+(start(VECTORS)>>1))           length = (size(VECTORS)>>1)           ECC = {input_range=VECTORS}      ECC_FLA0     : origin = (FLASH_ECC_ORIGIN+(start(FLASH0)>>1))                    length = (size(FLASH0)>>1)                    ECC = {input_range=FLASH0}      ECC_FLA1     : origin = (FLASH_ECC_ORIGIN+(start(FLASH1)>>1))                    length = (size(FLASH1)>>1)                    ECC = {input_range=FLASH1}      ECC_FLA2     : origin = (FLASH_ECC_ORIGIN+(start(FLASH2)>>1))                    length = (size(FLASH2)>>1)                    ECC = {input_range=FLASH2}      ECC_FLA3     : origin = (FLASH_ECC_ORIGIN+(start(FLASH3)>>1))                    length = (size(FLASH3)>>1)                    ECC = {input_range=FLASH3}  }  ECC {     algoR4F035 : address_mask = 0x003ffff8 /* Address Bits 21:3 See spnu489c.pdf, p279 */                  hamming_mask = R4         /* Use the built-in R4 mask */                  parity_mask  = 0x0c       /* Set which ECC bits are even/odd parity (spnu489c.pdf, Table 8-4) */                  mirroring    = F035       /* TMS570 are built with F035 */ }  /*----------------------------------------------------------------------------*/ /* Section Configuration                                                      */  SECTIONS {     .intvecs : {} > VECTORS     .text    : {} > FLASH0     .const   : {} > FLASH0     .cinit   : {} > FLASH0     .pinit   : {} > FLASH0     .bss     : {} > RAM     .data    : {} > RAM  }


Viewing all articles
Browse latest Browse all 91781

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>