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.

TMS320F280037: Cla1ProgRunStart = 0

Part Number: TMS320F280037
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Cla1ProgRunStart is set to 0, not sure why.

This is from the .map file. 

page  address   name                             
----  -------   ----                             
0     00000000  Cla1ProgRunStart                 
0     00000000  Cla1Task1                        
0     00000400  __stack                          
0     00000600  __TI_STACK_END                   
0     00001480  gFromCLA                         
0     00001500  SwingCommutationA                
0     00001506  SwingCommutationB                
0     0000150c  SwingCommutationC                
0     00001512  ValveCommutationA                
0     00001518  ValveCommutationB                
0     0000151e  ValveCommutationC                
0     00001540  gToCLA                           
0     00001636  __claabi_addd                    
0     00001d9e  __TI_frcdivd                     
0     00002270  __claabi_mpyd                    
0     00002654  __claabi_divd                    
0     00002944  __claabi_mpyll                   
0     00002ad8  __TI_frcmpyd                     
0     00002c5a  __claabi_cmpull                  
0     00002d8a  __claabi_asrll                   
0     00002eb4  __claabi_lslll                   
0     00002fba  __claabi_cmplli                  
0     000030bc  __claabi_lsrll                   
0     000031be  __claabi_fltid                   
0     000032aa  __claabi_cvtdf                   
0     0000336c  __claabi_cvtfd                   
0     000033fe  __claabi_addll                   
0     0000346c  __claabi_subd                    
0     000034a6  __claabi_memset                  
0     000034d8  Cla1Task2                        
0     000034e0  Cla1Task3                     
 

This is from the memory section in f280037_cla_flash_link.cmd

 BEGIN            : origin = 0x00080000, length = 0x00000002
   BOOT_RSVD        : origin = 0x00000002, length = 0x00000126

   RAMM0            : origin = 0x00000128, length = 0x000002D8
   RAMM1            : origin = 0x00000400, length = 0x000003F8
   // RAMM1_RSVD       : origin = 0x000007F8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */
   //shared by CPU and CLA
   RAMLS0           : origin = 0x00008000, length = 0x00000800
   RAMLS1           : origin = 0x00008800, length = 0x00000800
   RAMLS2           : origin = 0x00009000, length = 0x00000800
   RAMLS3           : origin = 0x00009800, length = 0x00000800
   //RAMLS4           : origin = 0x0000A000, length = 0x00000800
   //RAMLS5           : origin = 0x0000A800, length = 0x00000800
   //RAMLS6           : origin = 0x0000B000, length = 0x00000800
   RAMLS4_5_6		: origin = 0x0000A000, length = 0x00001800
   RAMLS7           : origin = 0x0000B800, length = 0x00000800

   RAMGS0           : origin = 0x0000C000, length = 0x00001000
   RAMGS1           : origin = 0x0000D000, length = 0x00001000
   RAMGS2           : origin = 0x0000E000, length = 0x00001000
   RAMGS3           : origin = 0x0000F000, length = 0x00000FF8
   // RAMGS3_RSVD      : origin = 0x0000FFF8, length = 0x00000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */

   BOOTROM          : origin = 0x003F8000, length = 0x00007FC0
   SECURE_ROM       : origin = 0x003F2000, length = 0x00006000

   RESET            : origin = 0x003FFFC0, length = 0x00000002

And this is from the sections of the same file.

// CLA program memory */
#if defined(__TI_EABI__)
    Cla1Prog        : LOAD = FLASH_BANK0,
                      RUN = RAMLS4_5_6,
                      LOAD_START(Cla1ProgLoadStart),
                      RUN_START(Cla1ProgRunStart),
                      LOAD_SIZE(Cla1ProgLoadSize),
                      ALIGN(8)
#else
    Cla1Prog        : LOAD = FLASH_BANK0,
                      RUN = RAMLS4_5_6,
                      LOAD_START(_Cla1ProgLoadStart),
                      RUN_START(_Cla1ProgRunStart),
                      LOAD_SIZE(_Cla1ProgLoadSize),
                      ALIGN(8)
#endif

When I try to build, I get the following error:

../28003x_cla_flash_lnk.cmd", line 158: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment/blocking fails for section "Cla1Prog" size 0x3510 page 0. Available memory ranges:
RAMLS4_5_6 size: 0x1800 unused: 0x1800 max hole: 0x1800

Ths size reported (0x3510) is the location of CLATask8, the size should be around 0x1300.

The code was running fine on a 280049 processor with C2000W2_00_00_02 and older compiler. I cannot get the old code to compile on the currently installed C2000Ware and compiler.  

Thanks for the help.