This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/LAUNCHXL2-570LC43: GEL Output: Memory Map Setup for Flash @ Address 0x0 due to System Reset

Part Number: LAUNCHXL2-570LC43
Other Parts Discussed in Thread: HALCOGEN, , UNIFLASH

Tool/software: TI C/C++ Compiler

Dear all,

I am a beginner in Hercules micro-controller programming.I used Launchxl2-570LC43 for two days without any problem. RTIBlinky example is successfully built using halcogen and ccs8.1. but after loading example_adcdisplay.c in HALcogen, it started to receive this error when starting the debug session. I searched in many threads and used linker generated ECC cmd file with vfill command does not changed this issue. I can connect to the target but couldn't read the core registers stating unable to read. 

I observed in one thread that in Arm cortex devices registers which are not mapped to a memory, cannot be read not like in c28x devices. the demo project is running properly but this gel output remains as same. is there some thing wrong with HL_sys_intvecs.asm in the section

resetEntry
        b   _c_int00

this is my code for linker.cmd file

MEMORY
{
/* USER CODE BEGIN (2) */
#if 0
/* USER CODE END */
    VECTORS (X)  : origin=0x00000000 length=0x00000020
    FLASH0  (RX) : origin=0x00000020 length=0x001FFFE0
    FLASH1  (RX) : origin=0x00200000 length=0x00200000
    STACKS  (RW) : origin=0x08000000 length=0x00001500
    RAM     (RW) : origin=0x08001500 length=0x0007EB00

/* USER CODE BEGIN (3) */
#endif
    VECTORS (X)  : origin=0x00000000 length=0x00000020 vfill = 0xffffffff
    FLASH0  (RX) : origin=0x00000020 length=0x001FFFE0 vfill = 0xffffffff
    FLASH1  (RX) : origin=0x00200000 length=0x00200000 vfill = 0xffffffff
    STACKS  (RW) : origin=0x08000000 length=0x00001800
    RAM     (RW) : origin=0x08001800 length=0x0007E800

    ECC_VEC (R)  : origin=0xf0400000 length=0x4 ECC={ input_range=VECTORS }
    ECC_FLA0 (R) : origin=0xf0400000 + 0x4 length=0x3FFFC ECC={ input_range=FLASH0 }
    ECC_FLA1 (R) : origin=0xf0440000 length=0x40000 ECC={ input_range=FLASH1 }
/* USER CODE END */
}

/* USER CODE BEGIN (4) */
ECC
{
   algo_name : address_mask = 0xfffffff8
   hamming_mask = R4
   parity_mask = 0x0c
   mirroring = F021
}

thanks in advanced for helping me in this.

Thank you.

  • Hello Buddhika,

    In the memory section of your linker cmd file, the ECC_xxx don't contain the ECC algorithm. The correct should like this:

    ECC_VEC (R) : origin=0xf0400000 length=0x4 ECC={ algorithm=algo_name, input_range=VECTORS }
    ECC_FLA0 (R) : origin=0xf0400000 + 0x4 length=0x3FFFC ECC={algorithm=algo_name, input_range=FLASH0 }
    ECC_FLA1 (R) : origin=0xf0440000 length=0x40000 ECC={ algorithm=algo_name, input_range=FLASH1 }

    Can you post the details of your error message?
  • Hi QJ Wang,

     Thanks for the reply. I have been digging up further about the architecture in last week as well as about what you have mentioned. I changed the code as you said but the error seems to be consistent. In details this is a screen shot of the debug window in ccs8.1. After connecting to the target program runs normally. According to the GEL file,  this output shows due to the OnResetDetected() and OnTargetConnect functions. functions are mentioned below. In the start of the debug session it seems that reset vector interrupt is being called at 0x00000000 ( .intvects   _c_int00 ). can this occur due to corruption in RAM memory. on chip flash settings are also displayed in one debug window.Thanks again for helping me in this.

    OnResetDetected(){

        if(MemSwitchState == COMPL){
       
            memmap(FLASH, EMIF);
            MemoryMap = FLASH;
            GEL_TextOut("\tMemory Map Setup for Flash @ Address 0x0 due to System Reset\n",,,,,);
        }
       
        if(MemSwitchState == STARTED)
        
            MemSwitchState == COMPL;
        } 

    OnTargetConnect(){

        if(MemoryMap == FLASH){
            memmap(FLASH, EMIF);
            GEL_TextOut("\tMemory Map Setup for Flash @ Address 0x0",,,,,);
        }   
        if(MemoryMap == RAM){
            memmap(RAM, EMIF);
            GEL_TextOut("\tMemory Map Setup for RAM @ Address 0x0.",,,,,);
            GEL_TextOut("\tFor Debugging Only!",,,,,);
        }  

    Does this section includes the ECC algorithm. I am using the safe TI diagnostic library v 2.4 which I included in include options.

    ECC
    {
       algo_name : address_mask = 0xfffffff8
       hamming_mask = R4
       parity_mask = 0x0c
       mirroring = F021
    }

    Thanks.

  • Dear QJ Wang,
    I am still having the problem. this message pops up even when erasing the flash using Uniflash. I used two of these devices always same message pops up.
    thanks and regards,
    Buddhika.

  • Buddhika,

    The GEL file should work without any problem. Do you swap the memory for flash and SRAM? The memory starting at 0x00 is mapped to flash by default, but you can map this area as SRAM.