Because of the Thanksgiving holiday in the U.S., TI E2E™ design support forum responses may be delayed from November 25 through December 2. Thank you for your patience.

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.

TMS320F28377S: problems with CLA CODE execution in Flash application

Part Number: TMS320F28377S
Other Parts Discussed in Thread: C2000WARE

Dear experts,
I have a problem with running my CLA CODE when I run my program in flash. When i run thise program in RAM, i don't have these problems.

Problem description:
CLA TASK1 is triggered by int 6.11 (SD1). In the ISR "sd1_isr" I have checked the receive of the interrupt as described below and it works properly. The counter Mess_ok is incremented further.

__interrupt void sd1_isr(void)
{

PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; 
//Sdfm1Regs.SDIFLGCLR.bit.MIF=1;
Mess_ok++;
if (Mess_ok>32000) Mess_ok=0;
}

exactly the same was checked cla1Isr1 (see below).

__interrupt void cla1Isr1 ()
{

PieCtrlRegs.PIEACK.all =(PIEACK_GROUP10 |PIEACK_GROUP11|PIEACK_GROUP5);

Sdfm1Regs.SDIFLGCLR.bit.MIF=1;
Mess_ok++;
if(Mess_ok>32000) Mess_ok=0;

}

The following CLA Task 1 should be executed with each trigger event of  int 6.11 (SD1).

__interrupt void Cla1Task1 ( void )
{

UAB[0] = 3; //Test dummy
}

when the program is running the value of Mess_ok is/remains 1;
Thus the ISR has been executed only once. But the  value of UAB keeps 0. So the CLA task was not executed. As already mentioned, it doesn´t work when I run the program in Flash.  

Does anyone have an idde how to solve this problem? 

greetings Artur

I`m using the following cmd file

// The user must define CLA_C in the project linker settings if using the
// CLA C compiler
// Project Properties -> C2000 Linker -> Advanced Options -> Command File
// Preprocessing -> --define
#ifdef CLA_C
// Define a size for the CLA scratchpad area that will be used
// by the CLA compiler for local symbols and temps
// Also force references to the special symbols that mark the
// scratchpad are.
CLA_SCRATCHPAD_SIZE = 0x100;
--undef_sym=__cla_scratchpad_end
--undef_sym=__cla_scratchpad_start

#endif //CLA_C

MEMORY
{
PAGE 0 :
/* BEGIN is used for the "boot to SARAM" bootloader mode */

BEGIN : origin = 0x080000, length = 0x000002
RAMM0 : origin = 0x000123, length = 0x0002DD
RAMD0 : origin = 0x00B000, length = 0x000800
RAMLS0 : origin = 0x008000, length = 0x000800
RAMLS1 : origin = 0x008800, length = 0x000800
/* RAMLS4 : origin = 0x00A000, length = 0x000800 */
/* RAMLS5 : origin = 0x00A800, length = 0x000800 */
RAMLS4_5 : origin = 0x00A000, length = 0x001000

RAMGS14 : origin = 0x01A000, length = 0x001000 /* Only Available on , F28377S, F28375S devices. Remove line on other devices. */
RAMGS15 : origin = 0x01B000, length = 0x000FF8 /* Only Available on , F28377S, F28375S devices. Remove line on other devices. */

// RAMGS15_RSVD : origin = 0x01BFF8, length = 0x000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */

RESET : origin = 0x3FFFC0, length = 0x000002

/* Flash sectors */
FLASHA : origin = 0x080002, length = 0x001FFE /* on-chip Flash */
FLASHB : origin = 0x082000, length = 0x002000 /* on-chip Flash */
FLASHC : origin = 0x084000, length = 0x002000 /* on-chip Flash */
FLASHD : origin = 0x086000, length = 0x002000 /* on-chip Flash */
FLASHE : origin = 0x088000, length = 0x008000 /* on-chip Flash */
FLASHF : origin = 0x090000, length = 0x008000 /* on-chip Flash */
FLASHG : origin = 0x098000, length = 0x008000 /* on-chip Flash */
FLASHH : origin = 0x0A0000, length = 0x008000 /* on-chip Flash */
FLASHI : origin = 0x0A8000, length = 0x008000 /* on-chip Flash */
FLASHJ : origin = 0x0B0000, length = 0x008000 /* on-chip Flash */
FLASHK : origin = 0x0B8000, length = 0x002000 /* on-chip Flash */
FLASHL : origin = 0x0BA000, length = 0x002000 /* on-chip Flash */
FLASHM : origin = 0x0BC000, length = 0x002000 /* on-chip Flash */
FLASHN : origin = 0x0BE000, length = 0x001FF0 /* on-chip Flash */

// FLASHN_RSVD : origin = 0x0BFFF0, 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 = 0x000121 /* 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" */

RAMLS2 : origin = 0x009000, length = 0x000800
RAMLS3 : origin = 0x009800, length = 0x000800

RAMGS0 : origin = 0x00C000, length = 0x001000
RAMGS1 : origin = 0x00D000, length = 0x001000
RAMGS2 : origin = 0x00E000, length = 0x001000
RAMGS3 : origin = 0x00F000, length = 0x001000
RAMGS4 : origin = 0x010000, length = 0x001000
RAMGS5 : origin = 0x011000, length = 0x001000
RAMGS6 : origin = 0x012000, length = 0x001000
RAMGS7 : origin = 0x013000, length = 0x001000
RAMGS8 : origin = 0x014000, length = 0x001000
RAMGS9 : origin = 0x015000, length = 0x001000
RAMGS10 : origin = 0x016000, length = 0x001000

// RAMGS11 : origin = 0x017000, length = 0x000FF8 /* Uncomment for F28374D, F28376D devices */

// RAMGS11_RSVD : origin = 0x017FF8, length = 0x000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */

RAMGS11 : origin = 0x017000, length = 0x001000 /* Only Available on , F28377S, F28375S devices. Remove line on other devices. */
RAMGS12 : origin = 0x018000, length = 0x001000 /* Only Available on , F28377S, F28375S devices. Remove line on other devices. */
RAMGS13 : origin = 0x019000, length = 0x001000 /* Only Available on , F28377S, F28375S devices. Remove line on other devices. */

EMIF1_CS0n : origin = 0x80000000, length = 0x10000000
EMIF1_CS2n : origin = 0x00100000, length = 0x00200000
EMIF1_CS3n : origin = 0x00300000, length = 0x00080000
EMIF1_CS4n : origin = 0x00380000, length = 0x00060000
EMIF2_CS0n : origin = 0x90000000, length = 0x10000000
EMIF2_CS2n : origin = 0x00002000, length = 0x00001000

CLA1_MSGRAMLOW : origin = 0x001480, length = 0x000080
CLA1_MSGRAMHIGH : origin = 0x001500, length = 0x000080
}


SECTIONS
{
/* Allocate program areas: */
.cinit : > FLASHB PAGE = 0, ALIGN(8)
.text : > FLASHB PAGE = 0, ALIGN(8)
codestart : > BEGIN PAGE = 0, ALIGN(8)
.stack : > RAMM1 PAGE = 1
.switch : > FLASHB PAGE = 0, ALIGN(8)

/* Allocate uninitalized data sections: */

#if defined(__TI_EABI__)
.init_array : > FLASHB, PAGE = 0, ALIGN(8)
.bss : > RAMLS2, PAGE = 1
.bss:output : > RAMLS2, PAGE = 1
.data : > RAMLS2, PAGE = 1
.sysmem : > RAMLS2, PAGE = 1
.const : > FLASHB, PAGE = 0, ALIGN(8)
#else
.pinit : > FLASHB, PAGE = 0, ALIGN(8)
.ebss : > RAMLS2, PAGE = 1
.esysmem : > RAMLS2, PAGE = 1
.econst : > FLASHB PAGE = 0, ALIGN(8)
#endif

.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */

Filter_RegsFile : > RAMGS0, PAGE = 1

.em2_cs0 : > EMIF2_CS0n, PAGE = 1
.em2_cs2 : > EMIF2_CS2n, PAGE = 1

/* CLA specific sections */
#if defined(__TI_EABI__)
Cla1Prog : LOAD = FLASHD,
RUN = RAMLS4_5,
LOAD_START(Cla1funcsLoadStart),
LOAD_END(Cla1funcsLoadEnd),
RUN_START(Cla1funcsRunStart),
LOAD_SIZE(Cla1funcsLoadSize),
PAGE = 0, ALIGN(8)
#else
Cla1Prog : LOAD = FLASHD,
RUN = RAMLS4_5,
LOAD_START(_Cla1funcsLoadStart),
LOAD_END(_Cla1funcsLoadEnd),
RUN_START(_Cla1funcsRunStart),
LOAD_SIZE(_Cla1funcsLoadSize),
PAGE = 0, ALIGN(8)
#endif

CLADataLS0 : > RAMLS0, PAGE=0
CLADataLS1 : > RAMLS1, PAGE=0

Cla1ToCpuMsgRAM : > CLA1_MSGRAMLOW, PAGE = 1
CpuToCla1MsgRAM : > CLA1_MSGRAMHIGH, PAGE = 1

#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000
#if defined(__TI_EABI__)
.TI.ramfunc : {} LOAD = FLASHD,
RUN = RAMD0,
LOAD_START(RamfuncsLoadStart),
LOAD_SIZE(RamfuncsLoadSize),
LOAD_END(RamfuncsLoadEnd),
RUN_START(RamfuncsRunStart),
RUN_SIZE(RamfuncsRunSize),
RUN_END(RamfuncsRunEnd),
PAGE = 0, ALIGN(8)
#else
.TI.ramfunc : {} LOAD = FLASHD,
RUN = RAMD0,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
RUN_SIZE(_RamfuncsRunSize),
RUN_END(_RamfuncsRunEnd),
PAGE = 0, ALIGN(8)
#endif
#else
ramfuncs : LOAD = FLASHD,
RUN = RAMD0,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
RUN_SIZE(_RamfuncsRunSize),
RUN_END(_RamfuncsRunEnd),
PAGE = 0, ALIGN(8)
#endif
#endif

/* The following section definition are for SDFM examples */
Filter1_RegsFile : > RAMGS1, PAGE = 1, fill=0x1111
Filter2_RegsFile : > RAMGS2, PAGE = 1, fill=0x2222
Filter3_RegsFile : > RAMGS3, PAGE = 1, fill=0x3333
Filter4_RegsFile : > RAMGS4, PAGE = 1, fill=0x4444

#ifdef CLA_C
/* CLA C compiler sections */
//
// Must be allocated to memory the CLA has write access to
//
CLAscratch :
{ *.obj(CLAscratch)
. += CLA_SCRATCHPAD_SIZE;
*.obj(CLAscratch_end) } > RAMLS1, PAGE = 0

.scratchpad : > RAMLS1, PAGE = 0
.bss_cla : > RAMLS1, PAGE = 0
.const_cla : LOAD = FLASHB,
RUN = RAMLS1,
RUN_START(_Cla1ConstRunStart),
LOAD_START(_Cla1ConstLoadStart),
LOAD_SIZE(_Cla1ConstLoadSize),
PAGE = 0
#endif //CLA_C
}

/*
//===========================================================================
// End of file.
//===========================================================================
*/

  

  • Hi Artur,

    The initialization code running on C28 must copy over the CLA code to RAM as CLA can only run from RAM. Can you check to see if the FLASH code on C28 is doing this. Here is an example snippet of what needs to be done by the C28. Its similar to the code that needs to be executed for setting up Ramfuncs.


    memcpy((uint32_t *)&Cla1funcsRunStart, (uint32_t *)&Cla1funcsLoadStart,
                (uint32_t)&Cla1funcsLoadSize);

    You can see examples in C2000Ware for code running from FLASH with C28 and CL to better help with understanding this.

    Thanks,

    Ashwini

  • Hello Ashwini,
    thank you for the quick reply. I copy the CLA code to RAM in my subroutine. "CLA_configClaMemory".
    The subroutine see below. I check with Mess_ok if "_FLASH" is defined. Therefore I suppose that the copying process has been done.

    //#pragma CODE_SECTION(CLA_configClaMemory, ".TI.ramfunc");
    void CLA_configClaMemory(void)
    {
    extern uint32_t Cla1funcsRunStart, Cla1funcsLoadStart, Cla1funcsLoadSize;
    
    EALLOW;
    
    #ifdef _FLASH
    
    //
    // Copy over code from FLASH to RAM
    //
    Mess_ok=2;
    memcpy((uint32_t *)&Cla1funcsRunStart, (uint32_t *)&Cla1funcsLoadStart,
    (uint32_t)&Cla1funcsLoadSize);
    #else
    Mess_ok=1;
    #endif //_FLASH
    
    //
    // Initialize and wait for CLA1ToCPUMsgRAM
    //
    MemCfgRegs.MSGxINIT.bit.INIT_CLA1TOCPU = 1;
    while(MemCfgRegs.MSGxINITDONE.bit.INITDONE_CLA1TOCPU != 1){};
    
    //
    // Initialize and wait for CPUToCLA1MsgRAM
    //
    MemCfgRegs.MSGxINIT.bit.INIT_CPUTOCLA1 = 1;
    while(MemCfgRegs.MSGxINITDONE.bit.INITDONE_CPUTOCLA1 != 1){};
    
    //
    // Select LS5RAM to be the programming space for the CLA
    // First configure the CLA to be the master for LS4 and LS5 and then
    // set the space to be a program block
    //
    // MemCfgRegs.LSxMSEL.bit.MSEL_LS4 = 1;
    // MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS4 = 1;
    MemCfgRegs.LSxMSEL.bit.MSEL_LS5 = 1;
    MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS5 = 1; 
    //
    // Next configure LS0RAM and LS1RAM as data spaces for the CLA
    // First configure the CLA to be the master for LS0(1) and then
    // set the spaces to be code blocks
    //
    MemCfgRegs.LSxMSEL.bit.MSEL_LS0 = 1;
    MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS0 = 0;
    MemCfgRegs.LSxMSEL.bit.MSEL_LS1 = 1;
    MemCfgRegs.LSxCLAPGM.bit.CLAPGM_LS1 = 0;
    
    EDIS;
    }

    below is the .map file. sorry for the illustration at the moment I can not get it better. 

    greetings Artur

    SECTION ALLOCATION MAP

    output attributes/
    section page origin length input sections
    -------- ---- ---------- ---------- ----------------
    CLADataLS0
    * 0 00008000 00000240 UNINITIALIZED
    00008000 00000240 main.obj (CLADataLS0)

    codestart
    * 0 00080000 00000002
    00080000 00000002 F2837xS_CodeStartBranch.obj (codestart)

    .text 0 00082000 00001a64
    00082000 0000074b F2837xS_sdfm_drivers.obj (.text)
    0008274b 00000585 F2837xS_DefaultISR.obj (.text:retain)
    00082cd0 0000047d F2837xS_SysCtrl.obj (.text)
    0008314d 0000021f main.obj (.text)
    0008336c 00000204 F2837xS_Gpio.obj (.text)
    00083570 000000fd F2837xS_EPwm.obj (.text)
    0008366d 000000ef F2837xS_Adc.obj (.text)
    0008375c 000000ce regelungc.obj (.text)
    0008382a 00000090 main.obj (.text:retain)
    000838ba 00000088 rts2800_fpu32.lib : fs_div28.asm.obj (.text)
    00083942 00000056 : boot28.asm.obj (.text)
    00083998 00000029 : exit.c.obj (.text)
    000839c1 00000028 F2837xS_PieCtrl.obj (.text)
    000839e9 00000024 rts2800_fpu32.lib : cpy_tbl.c.obj (.text)
    00083a0d 0000001d : memcpy.c.obj (.text)
    00083a2a 00000014 F2837xS_PieVect.obj (.text)
    00083a3e 00000012 rts2800_fpu32.lib : args_main.c.obj (.text)
    00083a50 00000009 : _lock.c.obj (.text)
    00083a59 00000008 F2837xS_CodeStartBranch.obj (.text)
    00083a61 00000002 rts2800_fpu32.lib : pre_init.c.obj (.text)
    00083a63 00000001 : startup.c.obj (.text)

    .cinit 0 00083a68 000002d5
    00083a68 00000218 main.obj (.cinit)
    00083c80 00000021 F2837xS_struct.obj (.cinit:_TRIP_SEL)
    00083ca1 0000001d F2837xS_struct.obj (.cinit:_EPWM)
    00083cbe 00000011 F2837xS_struct.obj (.cinit:_ECAP)
    00083ccf 0000000e rts2800_fpu32.lib : exit.c.obj (.cinit)
    00083cdd 0000000d F2837xS_struct.obj (.cinit:_ADC)
    00083cea 0000000b F2837xS_struct.obj (.cinit:_EQEP)
    00083cf5 0000000b F2837xS_struct.obj (.cinit:_SPI)
    00083d00 00000009 F2837xS_struct.obj (.cinit:_SDFM)
    00083d09 00000009 main.obj (.cinit:_Udq)
    00083d12 00000007 F2837xS_struct.obj (.cinit:_I2C)
    00083d19 00000007 F2837xS_struct.obj (.cinit:_MCBSP)
    00083d20 00000007 F2837xS_struct.obj (.cinit:_SCI)
    00083d27 00000006 main.obj (.cinit:_UADC)
    00083d2d 00000005 rts2800_fpu32.lib : _lock.c.obj (.cinit:__lock)
    00083d32 00000005 : _lock.c.obj (.cinit:__unlock)
    00083d37 00000004 : errno.c.obj (.cinit)
    00083d3b 00000002 --HOLE-- [fill = 0]

    .TI.ramfunc
    * 0 00086088 0000018f RUN ADDR = 0000b000
    00086088 00000113 Initialisierugc.obj (.TI.ramfunc)
    0008619b 00000078 F2837xS_SysCtrl.obj (.TI.ramfunc)
    00086213 00000004 F2837xS_usDelay.obj (.TI.ramfunc)

    .stack 1 00000400 00000200 UNINITIALIZED
    00000400 00000200 --HOLE--

    .pinit 0 00082000 00000000 UNINITIALIZED

    .ebss 1 00009000 000000e6 UNINITIALIZED
    00009000 0000005c main.obj (.ebss)
    0000905c 0000001e F2837xS_struct.obj (.ebss:_TRIP_SEL)
    0000907a 00000006 F2837xS_struct.obj (.ebss:_SDFM)
    00009080 0000001a F2837xS_struct.obj (.ebss:_EPWM)
    0000909a 0000000e F2837xS_struct.obj (.ebss:_ECAP)
    000090a8 0000000a F2837xS_struct.obj (.ebss:_ADC)
    000090b2 00000008 F2837xS_struct.obj (.ebss:_EQEP)
    000090ba 00000006 main.obj (.ebss:_Udq)
    000090c0 00000008 F2837xS_struct.obj (.ebss:_SPI)
    000090c8 00000006 rts2800_fpu32.lib : exit.c.obj (.ebss)
    000090ce 00000004 F2837xS_struct.obj (.ebss:_I2C)
    000090d2 00000004 F2837xS_struct.obj (.ebss:_MCBSP)
    000090d6 00000004 F2837xS_struct.obj (.ebss:_SCI)
    000090da 00000004 main.obj (.ebss:_Uab)
    000090de 00000003 main.obj (.ebss:_UADC)
    000090e1 00000001 rts2800_fpu32.lib : errno.c.obj (.ebss)
    000090e2 00000002 : _lock.c.obj (.ebss:__lock)
    000090e4 00000002 : _lock.c.obj (.ebss:__unlock)

    .econst 0 00083d40 000001c0
    00083d40 000001c0 F2837xS_PieVect.obj (.econst:_PieVectTableInit)

    .reset 0 003fffc0 00000002 DSECT
    003fffc0 00000002 rts2800_fpu32.lib : boot28.asm.obj (.reset)

    CLAscratch
    * 0 00008800 00000180 UNINITIALIZED
    00008800 00000180 --HOLE--

    Cla1Prog 0 00086000 00000084 RUN ADDR = 0000a000
    00086000 00000048 TraFor.obj (Cla1Prog:_Cla1Task1)
    00086048 0000000c TraFor.obj (Cla1Prog:_Cla1Task2)
    00086054 00000008 TraFor.obj (Cla1Prog:_Cla1Task3)
    0008605c 00000008 TraFor.obj (Cla1Prog:_Cla1Task4)
    00086064 00000008 TraFor.obj (Cla1Prog:_Cla1Task5)
    0008606c 00000008 TraFor.obj (Cla1Prog:_Cla1Task6)
    00086074 00000008 TraFor.obj (Cla1Prog:_Cla1Task7)
    0008607c 00000008 TraFor.obj (Cla1Prog:_Cla1Task8)

    AdcaResultRegsFile
    * 1 00000b00 00000018 UNINITIALIZED
    00000b00 00000018 F2837xS_GlobalVariableDefs.obj (AdcaResultRegsFile)

    AdcbResultRegsFile
    * 1 00000b20 00000018 UNINITIALIZED
    00000b20 00000018 F2837xS_GlobalVariableDefs.obj (AdcbResultRegsFile)

    AdccResultRegsFile
    * 1 00000b40 00000018 UNINITIALIZED
    00000b40 00000018 F2837xS_GlobalVariableDefs.obj (AdccResultRegsFile)

    AdcdResultRegsFile
    * 1 00000b60 00000018 UNINITIALIZED
    00000b60 00000018 F2837xS_GlobalVariableDefs.obj (AdcdResultRegsFile)

    CpuTimer0RegsFile
    * 1 00000c00 00000008 UNINITIALIZED
    00000c00 00000008 F2837xS_GlobalVariableDefs.obj (CpuTimer0RegsFile)

    CpuTimer1RegsFile
    * 1 00000c08 00000008 UNINITIALIZED
    00000c08 00000008 F2837xS_GlobalVariableDefs.obj (CpuTimer1RegsFile)

    CpuTimer2RegsFile
    * 1 00000c10 00000008 UNINITIALIZED
    00000c10 00000008 F2837xS_GlobalVariableDefs.obj (CpuTimer2RegsFile)

    PieCtrlRegsFile
    * 1 00000ce0 0000001a UNINITIALIZED
    00000ce0 0000001a F2837xS_GlobalVariableDefs.obj (PieCtrlRegsFile)

    DmaRegsFile
    * 1 00001000 000000e0 UNINITIALIZED
    00001000 000000e0 F2837xS_GlobalVariableDefs.obj (DmaRegsFile)

    Cla1RegsFile
    * 1 00001400 0000003e UNINITIALIZED
    00001400 0000003e F2837xS_GlobalVariableDefs.obj (Cla1RegsFile)

    Cla1ToCpuMsgRAM
    * 1 00001480 00000004 UNINITIALIZED
    00001480 00000004 main.obj (Cla1ToCpuMsgRAM)

    CpuToCla1MsgRAM
    * 1 00001500 00000002 UNINITIALIZED
    00001500 00000002 main.obj (CpuToCla1MsgRAM)

    AdcaRegsFile
    * 1 00007400 0000007c UNINITIALIZED
    00007400 0000007c F2837xS_GlobalVariableDefs.obj (AdcaRegsFile)

    AdcbRegsFile
    * 1 00007480 0000007c UNINITIALIZED
    00007480 0000007c F2837xS_GlobalVariableDefs.obj (AdcbRegsFile)

    AdccRegsFile
    * 1 00007500 0000007c UNINITIALIZED
    00007500 0000007c F2837xS_GlobalVariableDefs.obj (AdccRegsFile)

    AdcdRegsFile
    * 1 00007580 0000007c UNINITIALIZED
    00007580 0000007c F2837xS_GlobalVariableDefs.obj (AdcdRegsFile)

    Filter1_RegsFile
    * 1 0000d000 00000001
    0000d000 00000001 TraFor.obj (Filter1_RegsFile) [fill = 1111]

    Filter2_RegsFile
    * 1 0000e000 00000001
    0000e000 00000001 TraFor.obj (Filter2_RegsFile) [fill = 2222]

    Filter3_RegsFile
    * 1 0000f000 00000001
    0000f000 00000001 TraFor.obj (Filter3_RegsFile) [fill = 3333]

    Filter4_RegsFile
    * 1 00010000 00000001
    00010000 00000001 TraFor.obj (Filter4_RegsFile) [fill = 4444]

    .const_cla
    * 0 00008800 00000000 UNINITIALIZED

    PieVectTableFile
    * 0 00000d00 000001c0 DSECT
    00000d00 000001c0 F2837xS_GlobalVariableDefs.obj (PieVectTableFile)

    EmuKeyVar
    * 0 00000d00 00000000 DSECT

    EmuBModeVar
    * 0 00000d00 00000000 DSECT

    EmuBootPinsVar
    * 0 00000d00 00000000 DSECT

    FlashCallbackVar
    * 0 00000d00 00000000 DSECT

    FlashScalingVar
    * 0 00000d00 00000000 DSECT

    Clb1LogicCfgRegsFile
    * 1 00003000 0000003e UNINITIALIZED
    00003000 0000003e F2837xS_GlobalVariableDefs.obj (Clb1LogicCfgRegsFile)

    Clb1LogicCtrlRegsFile
    * 1 00003100 00000040 UNINITIALIZED
    00003100 00000040 F2837xS_GlobalVariableDefs.obj (Clb1LogicCtrlRegsFile)

    Clb1DataExchRegsFile
    * 1 00003200 00000108 UNINITIALIZED
    00003200 00000108 F2837xS_GlobalVariableDefs.obj (Clb1DataExchRegsFile)

    Clb2LogicCfgRegsFile
    * 1 00003400 0000003e UNINITIALIZED
    00003400 0000003e F2837xS_GlobalVariableDefs.obj (Clb2LogicCfgRegsFile)

    Clb2LogicCtrlRegsFile
    * 1 00003500 00000040 UNINITIALIZED
    00003500 00000040 F2837xS_GlobalVariableDefs.obj (Clb2LogicCtrlRegsFile)

    Clb2DataExchRegsFile
    * 1 00003600 00000108 UNINITIALIZED
    00003600 00000108 F2837xS_GlobalVariableDefs.obj (Clb2DataExchRegsFile)

    Clb3LogicCfgRegsFile
    * 1 00003800 0000003e UNINITIALIZED
    00003800 0000003e F2837xS_GlobalVariableDefs.obj (Clb3LogicCfgRegsFile)

    Clb3LogicCtrlRegsFile
    * 1 00003900 00000040 UNINITIALIZED
    00003900 00000040 F2837xS_GlobalVariableDefs.obj (Clb3LogicCtrlRegsFile)

    Clb3DataExchRegsFile
    * 1 00003a00 00000108 UNINITIALIZED
    00003a00 00000108 F2837xS_GlobalVariableDefs.obj (Clb3DataExchRegsFile)

    Clb4LogicCfgRegsFile
    * 1 00003c00 0000003e UNINITIALIZED
    00003c00 0000003e F2837xS_GlobalVariableDefs.obj (Clb4LogicCfgRegsFile)

    Clb4LogicCtrlRegsFile
    * 1 00003d00 00000040 UNINITIALIZED
    00003d00 00000040 F2837xS_GlobalVariableDefs.obj (Clb4LogicCtrlRegsFile)

    Clb4DataExchRegsFile
    * 1 00003e00 00000108 UNINITIALIZED
    00003e00 00000108 F2837xS_GlobalVariableDefs.obj (Clb4DataExchRegsFile)

    EPwm1RegsFile
    * 1 00004000 00000100 UNINITIALIZED
    00004000 00000100 F2837xS_GlobalVariableDefs.obj (EPwm1RegsFile)

    EPwm2RegsFile
    * 1 00004100 00000100 UNINITIALIZED
    00004100 00000100 F2837xS_GlobalVariableDefs.obj (EPwm2RegsFile)

    EPwm3RegsFile
    * 1 00004200 00000100 UNINITIALIZED
    00004200 00000100 F2837xS_GlobalVariableDefs.obj (EPwm3RegsFile)

    EPwm4RegsFile
    * 1 00004300 00000100 UNINITIALIZED
    00004300 00000100 F2837xS_GlobalVariableDefs.obj (EPwm4RegsFile)

    EPwm5RegsFile
    * 1 00004400 00000100 UNINITIALIZED
    00004400 00000100 F2837xS_GlobalVariableDefs.obj (EPwm5RegsFile)

    EPwm6RegsFile
    * 1 00004500 00000100 UNINITIALIZED
    00004500 00000100 F2837xS_GlobalVariableDefs.obj (EPwm6RegsFile)

    EPwm7RegsFile
    * 1 00004600 00000100 UNINITIALIZED
    00004600 00000100 F2837xS_GlobalVariableDefs.obj (EPwm7RegsFile)

    EPwm8RegsFile
    * 1 00004700 00000100 UNINITIALIZED
    00004700 00000100 F2837xS_GlobalVariableDefs.obj (EPwm8RegsFile)

    EPwm9RegsFile
    * 1 00004800 00000100 UNINITIALIZED
    00004800 00000100 F2837xS_GlobalVariableDefs.obj (EPwm9RegsFile)

    EPwm10RegsFile
    * 1 00004900 00000100 UNINITIALIZED
    00004900 00000100 F2837xS_GlobalVariableDefs.obj (EPwm10RegsFile)

    EPwm11RegsFile
    * 1 00004a00 00000100 UNINITIALIZED
    00004a00 00000100 F2837xS_GlobalVariableDefs.obj (EPwm11RegsFile)

    EPwm12RegsFile
    * 1 00004b00 00000100 UNINITIALIZED
    00004b00 00000100 F2837xS_GlobalVariableDefs.obj (EPwm12RegsFile)

    ECap1RegsFile
    * 1 00005000 0000001a UNINITIALIZED
    00005000 0000001a F2837xS_GlobalVariableDefs.obj (ECap1RegsFile)

    ECap2RegsFile
    * 1 00005020 0000001a UNINITIALIZED
    00005020 0000001a F2837xS_GlobalVariableDefs.obj (ECap2RegsFile)

    ECap3RegsFile
    * 1 00005040 0000001a UNINITIALIZED
    00005040 0000001a F2837xS_GlobalVariableDefs.obj (ECap3RegsFile)

    ECap4RegsFile
    * 1 00005060 0000001a UNINITIALIZED
    00005060 0000001a F2837xS_GlobalVariableDefs.obj (ECap4RegsFile)

    ECap5RegsFile
    * 1 00005080 0000001a UNINITIALIZED
    00005080 0000001a F2837xS_GlobalVariableDefs.obj (ECap5RegsFile)

    ECap6RegsFile
    * 1 000050a0 0000001a UNINITIALIZED
    000050a0 0000001a F2837xS_GlobalVariableDefs.obj (ECap6RegsFile)

    EQep1RegsFile
    * 1 00005100 00000022 UNINITIALIZED
    00005100 00000022 F2837xS_GlobalVariableDefs.obj (EQep1RegsFile)

    EQep2RegsFile
    * 1 00005140 00000022 UNINITIALIZED
    00005140 00000022 F2837xS_GlobalVariableDefs.obj (EQep2RegsFile)

    EQep3RegsFile
    * 1 00005180 00000022 UNINITIALIZED
    00005180 00000022 F2837xS_GlobalVariableDefs.obj (EQep3RegsFile)

    DacaRegsFile
    * 1 00005c00 00000007 UNINITIALIZED
    00005c00 00000007 F2837xS_GlobalVariableDefs.obj (DacaRegsFile)

    DacbRegsFile
    * 1 00005c10 00000007 UNINITIALIZED
    00005c10 00000007 F2837xS_GlobalVariableDefs.obj (DacbRegsFile)

    DaccRegsFile
    * 1 00005c20 00000007 UNINITIALIZED
    00005c20 00000007 F2837xS_GlobalVariableDefs.obj (DaccRegsFile)

    Cmpss1RegsFile
    * 1 00005c80 0000001b UNINITIALIZED
    00005c80 0000001b F2837xS_GlobalVariableDefs.obj (Cmpss1RegsFile)

    Cmpss2RegsFile
    * 1 00005ca0 0000001b UNINITIALIZED
    00005ca0 0000001b F2837xS_GlobalVariableDefs.obj (Cmpss2RegsFile)

    Cmpss3RegsFile
    * 1 00005cc0 0000001b UNINITIALIZED
    00005cc0 0000001b F2837xS_GlobalVariableDefs.obj (Cmpss3RegsFile)

    Cmpss4RegsFile
    * 1 00005ce0 0000001b UNINITIALIZED
    00005ce0 0000001b F2837xS_GlobalVariableDefs.obj (Cmpss4RegsFile)

    Cmpss5RegsFile
    * 1 00005d00 0000001b UNINITIALIZED
    00005d00 0000001b F2837xS_GlobalVariableDefs.obj (Cmpss5RegsFile)

    Cmpss6RegsFile
    * 1 00005d20 0000001b UNINITIALIZED
    00005d20 0000001b F2837xS_GlobalVariableDefs.obj (Cmpss6RegsFile)

    Cmpss7RegsFile
    * 1 00005d40 0000001b UNINITIALIZED
    00005d40 0000001b F2837xS_GlobalVariableDefs.obj (Cmpss7RegsFile)

    Cmpss8RegsFile
    * 1 00005d60 0000001b UNINITIALIZED
    00005d60 0000001b F2837xS_GlobalVariableDefs.obj (Cmpss8RegsFile)

    Sdfm1RegsFile
    * 1 00005e00 00000048 UNINITIALIZED
    00005e00 00000048 F2837xS_GlobalVariableDefs.obj (Sdfm1RegsFile)

    Sdfm2RegsFile
    * 1 00005e80 00000048 UNINITIALIZED
    00005e80 00000048 F2837xS_GlobalVariableDefs.obj (Sdfm2RegsFile)

    McbspaRegsFile
    * 1 00006000 00000024 UNINITIALIZED
    00006000 00000024 F2837xS_GlobalVariableDefs.obj (McbspaRegsFile)

    McbspbRegsFile
    * 1 00006040 00000024 UNINITIALIZED
    00006040 00000024 F2837xS_GlobalVariableDefs.obj (McbspbRegsFile)

    SpiaRegsFile
    * 1 00006100 00000010 UNINITIALIZED
    00006100 00000010 F2837xS_GlobalVariableDefs.obj (SpiaRegsFile)

    SpibRegsFile
    * 1 00006110 00000010 UNINITIALIZED
    00006110 00000010 F2837xS_GlobalVariableDefs.obj (SpibRegsFile)

    SpicRegsFile
    * 1 00006120 00000010 UNINITIALIZED
    00006120 00000010 F2837xS_GlobalVariableDefs.obj (SpicRegsFile)

    UppRegsFile
    * 1 00006200 00000048 UNINITIALIZED
    00006200 00000048 F2837xS_GlobalVariableDefs.obj (UppRegsFile)

    WdRegsFile
    * 1 00007000 0000002b UNINITIALIZED
    00007000 0000002b F2837xS_GlobalVariableDefs.obj (WdRegsFile)

    NmiIntruptRegsFile
    * 1 00007060 00000007 UNINITIALIZED
    00007060 00000007 F2837xS_GlobalVariableDefs.obj (NmiIntruptRegsFile)

    XintRegsFile
    * 1 00007070 0000000b UNINITIALIZED
    00007070 0000000b F2837xS_GlobalVariableDefs.obj (XintRegsFile)

    SciaRegsFile
    * 1 00007200 00000010 UNINITIALIZED
    00007200 00000010 F2837xS_GlobalVariableDefs.obj (SciaRegsFile)

    ScibRegsFile
    * 1 00007210 00000010 UNINITIALIZED
    00007210 00000010 F2837xS_GlobalVariableDefs.obj (ScibRegsFile)

    ScicRegsFile
    * 1 00007220 00000010 UNINITIALIZED
    00007220 00000010 F2837xS_GlobalVariableDefs.obj (ScicRegsFile)

    ScidRegsFile
    * 1 00007230 00000010 UNINITIALIZED
    00007230 00000010 F2837xS_GlobalVariableDefs.obj (ScidRegsFile)

    I2caRegsFile
    * 1 00007300 00000022 UNINITIALIZED
    00007300 00000022 F2837xS_GlobalVariableDefs.obj (I2caRegsFile)

    I2cbRegsFile
    * 1 00007340 00000022 UNINITIALIZED
    00007340 00000022 F2837xS_GlobalVariableDefs.obj (I2cbRegsFile)

    InputXbarRegsFile
    * 1 00007900 00000020 UNINITIALIZED
    00007900 00000020 F2837xS_GlobalVariableDefs.obj (InputXbarRegsFile)

    XbarRegsFile
    * 1 00007920 0000000e UNINITIALIZED
    00007920 0000000e F2837xS_GlobalVariableDefs.obj (XbarRegsFile)

    SyncSocRegsFile
    * 1 00007940 00000006 UNINITIALIZED
    00007940 00000006 F2837xS_GlobalVariableDefs.obj (SyncSocRegsFile)

    DmaClaSrcSelRegsFile
    * 1 00007980 0000001a UNINITIALIZED
    00007980 0000001a F2837xS_GlobalVariableDefs.obj (DmaClaSrcSelRegsFile)

    EPwmXbarRegsFile
    * 1 00007a00 00000040 UNINITIALIZED
    00007a00 00000040 F2837xS_GlobalVariableDefs.obj (EPwmXbarRegsFile)

    ClbXbarRegsFile
    * 1 00007a40 00000040 UNINITIALIZED
    00007a40 00000040 F2837xS_GlobalVariableDefs.obj (ClbXbarRegsFile)

    OutputXbarRegsFile
    * 1 00007a80 00000040 UNINITIALIZED
    00007a80 00000040 F2837xS_GlobalVariableDefs.obj (OutputXbarRegsFile)

    GpioCtrlRegsFile
    * 1 00007c00 00000180 UNINITIALIZED
    00007c00 00000180 F2837xS_GlobalVariableDefs.obj (GpioCtrlRegsFile)

    GpioDataRegsFile
    * 1 00007f00 00000030 UNINITIALIZED
    00007f00 00000030 F2837xS_GlobalVariableDefs.obj (GpioDataRegsFile)

    Emif1RegsFile
    * 1 00047000 00000028 UNINITIALIZED
    00047000 00000028 F2837xS_GlobalVariableDefs.obj (Emif1RegsFile)

    Emif2RegsFile
    * 1 00047800 00000028 UNINITIALIZED
    00047800 00000028 F2837xS_GlobalVariableDefs.obj (Emif2RegsFile)

    CanaRegsFile
    * 1 00048000 00000164 UNINITIALIZED
    00048000 00000164 F2837xS_GlobalVariableDefs.obj (CanaRegsFile)

    CanbRegsFile
    * 1 0004a000 00000164 UNINITIALIZED
    0004a000 00000164 F2837xS_GlobalVariableDefs.obj (CanbRegsFile)

    FlashPumpSemaphoreRegsFile
    * 1 00050024 00000002 UNINITIALIZED
    00050024 00000002 F2837xS_GlobalVariableDefs.obj (FlashPumpSemaphoreRegsFile)

    DevCfgRegsFile
    * 1 0005d000 0000012e UNINITIALIZED
    0005d000 0000012e F2837xS_GlobalVariableDefs.obj (DevCfgRegsFile)

    AnalogSubsysRegsFile
    * 1 0005d180 0000003e UNINITIALIZED
    0005d180 0000003e F2837xS_GlobalVariableDefs.obj (AnalogSubsysRegsFile)

    ClkCfgRegsFile
    * 1 0005d200 00000032 UNINITIALIZED
    0005d200 00000032 F2837xS_GlobalVariableDefs.obj (ClkCfgRegsFile)

    CpuSysRegsFile
    * 1 0005d300 00000082 UNINITIALIZED
    0005d300 00000082 F2837xS_GlobalVariableDefs.obj (CpuSysRegsFile)

    DcsmZ1RegsFile
    * 1 0005f000 00000022 UNINITIALIZED
    0005f000 00000022 F2837xS_GlobalVariableDefs.obj (DcsmZ1RegsFile)

    DcsmZ2RegsFile
    * 1 0005f040 00000022 UNINITIALIZED
    0005f040 00000022 F2837xS_GlobalVariableDefs.obj (DcsmZ2RegsFile)

    DcsmCommonRegsFile
    * 1 0005f070 00000006 UNINITIALIZED
    0005f070 00000006 F2837xS_GlobalVariableDefs.obj (DcsmCommonRegsFile)

    MemCfgRegsFile
    * 1 0005f400 00000076 UNINITIALIZED
    0005f400 00000076 F2837xS_GlobalVariableDefs.obj (MemCfgRegsFile)

    Emif1ConfigRegsFile
    * 1 0005f480 0000000a UNINITIALIZED
    0005f480 0000000a F2837xS_GlobalVariableDefs.obj (Emif1ConfigRegsFile)

    Emif2ConfigRegsFile
    * 1 0005f4a0 0000000a UNINITIALIZED
    0005f4a0 0000000a F2837xS_GlobalVariableDefs.obj (Emif2ConfigRegsFile)

    AccessProtectionRegsFile
    * 1 0005f4c0 0000002e UNINITIALIZED
    0005f4c0 0000002e F2837xS_GlobalVariableDefs.obj (AccessProtectionRegsFile)

    MemoryErrorRegsFile
    * 1 0005f500 0000003a UNINITIALIZED
    0005f500 0000003a F2837xS_GlobalVariableDefs.obj (MemoryErrorRegsFile)

    Flash0CtrlRegsFile
    * 1 0005f800 00000182 UNINITIALIZED
    0005f800 00000182 F2837xS_GlobalVariableDefs.obj (Flash0CtrlRegsFile)

    Flash0EccRegsFile
    * 1 0005fb00 00000028 UNINITIALIZED
    0005fb00 00000028 F2837xS_GlobalVariableDefs.obj (Flash0EccRegsFile)

    Flash1CtrlRegsFile
    * 1 0005fc00 00000182 UNINITIALIZED
    0005fc00 00000182 F2837xS_GlobalVariableDefs.obj (Flash1CtrlRegsFile)

    Flash1EccRegsFile
    * 1 0005ff00 00000028 UNINITIALIZED
    0005ff00 00000028 F2837xS_GlobalVariableDefs.obj (Flash1EccRegsFile)

    RomPrefetchRegsFile
    * 1 0005e608 00000002 UNINITIALIZED
    0005e608 00000002 F2837xS_GlobalVariableDefs.obj (RomPrefetchRegsFile)

    RomWaitStateRegsFile
    * 1 0005f540 00000002 UNINITIALIZED
    0005f540 00000002 F2837xS_GlobalVariableDefs.obj (RomWaitStateRegsFile)

  • Hi Artur,

    Two suggestions to help with this issue:

    1. I see in the code you posted that LS4 programming has been commented but the linker shows that both LS4 and LS5 are allocated for CLA program. I doubt this is an issue given that the application executes from RAM just fine.

    2. If the above is not the issue, adding an mdebugstop at the beginning of the CLA task function can help us determine if the CLA task is being loaded. See this link for instructions on how to add mdebugstop and how to configure the CLA in order to detect the halt of CLA due to mdebugstop. The CLA has to be connected in CCS for the halt generated by mdebugstop to be detected.

    https://software-dl.ti.com/C2000/docs/cla_software_dev_guide/debugging.html

    Thanks,

    Ashwini

  • Hello Ashwini,
    Thank you for the tip, you were right with your assumption. When I play the code in RAM, I use a different CMD file. Due to a limited memory, I could only release RAMSL5 for the CLA. Anyway, thanks a million for your help.

  • Hello Artur,

    Good to know the issue is resolved, I will go ahead and close the thread.

    Thanks,
    Ashwini