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.

LAUNCHXL-F28P65X: F28P65 ram allocation wth syscfg

Part Number: LAUNCHXL-F28P65X
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

Hi,

I'm working with a F28P65 LaunchPad  so i started form blink led example for a single  CPU that works fine.

Now   i try   to create a big static 32 bit  array that need in my application . I see with  CCS memory allocation window that store it in RAMLS5 section. But when i try to go over 512 elements the size exceed the  segment.

I saw in Syscfg  a  section about Linker command file configuration , so i added a memCombination that groups RAMLS5 RAMLS6 and RAMLS7.  Compile, but the problem remain. It seems that no any file is generated.

Have any suggestion about? 

Thank you.

Best regards

  • Hi Roberto,

    Could you screenshot the compiler error and where it is erroring out in the linker command file?

    If you're using the linker command tool in sysconfig, you'll need to open the global parameters at the top and activate the command tool.

    Best,

    Ryan Ma

  • Hi. At first thank you for your help. 

    I didn't see the command to activate the tool. So I tried. but some problems remain.

    In order

    I've added to led ex_blinky.c these lines

    #define SAMPLES 1024

    uint32_t i;
    uint32_t data[SAMPLES];

    and more over before the  main loop

    for(i=0;i<SAMPLES;i++)  data[i]= i;

    to populate the array.

    I get this in console

    Building target: "led_ex1_blinky.out"
    Invoking: C2000 Linker
    "C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu64 --tmu_support=tmu1 --vcu_support=vcrc -Ooff --define=_FLASH --define=DEBUG --define=CPU1 --define=_LAUNCHXL_F28P65X --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"led_ex1_blinky.map" --heap_size=0x200 --stack_size=0x3F8 --warn_sections -i"C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib" -i"C:/ti/c2000/C2000Ware_5_00_00_00" -i"D:/f28p65/led_ex1_blinky/CPU1_LAUNCHXL_FLASH/syscfg" -i"C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --reread_libs --define=_FLASH --diag_wrap=off --display_error_number --xml_link_info="led_ex1_blinky_linkInfo.xml" --entry_point=code_start --rom_model -o "led_ex1_blinky.out" "./syscfg/board.obj" "./syscfg/device_cmd.obj" "./syscfg/c2000ware_libraries.obj" "./led_ex1_blinky.obj" "./device/device.obj" "./device/f28p65x_codestartbranch.obj" "../28p65x_generic_flash_lnk_cpu1.cmd" "C:/ti/c2000/C2000Ware_5_00_00_00/driverlib/f28p65x/driverlib/ccs/Debug/driverlib.lib" -l"syscfg/device_cmd.cmd"  -lc2000ware_libraries.cmd.genlibs -llibc.a
    <Linking>
    "../28p65x_generic_flash_lnk_cpu1.cmd", line 69: 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 ".bss" size 0x802 page 0.  Available memory ranges:
       RAMLS5       size: 0x800        unused: 0x800        max hole: 0x800     
    error #10010: errors encountered during linking; "led_ex1_blinky.out" not built
     
    >> Compilation failure
    makefile:144: recipe for target 'led_ex1_blinky.out' failed
    gmake[1]: *** [led_ex1_blinky.out] Error 1
    makefile:140: recipe for target 'all' failed
    gmake: *** [all] Error 2

    **** Build Finished ****

    I compile in flash  just for test

    in 28p65x_generic_flash_cpu1.cmd  get the error in .bss definition

    SECTIONS
    {
       codestart        : > BEGIN
       .text            : >> FLASH_BANK0 | FLASH_BANK1, ALIGN(8)
       .cinit           : > FLASH_BANK0, ALIGN(8)
       .switch          : > FLASH_BANK0, ALIGN(8)
       .reset           : > RESET, TYPE = DSECT /* not used, */

       .stack           : > RAMM1
    #if defined(__TI_EABI__)
       .bss             : > RAMLS5     ************************************ Error is here
       .bss:output      : > RAMLS3
       .init_array      : > FLASH_BANK0, ALIGN(8)
       .const           : > FLASH_BANK0, ALIGN(8)
       .data            : > RAMLS5
       .sysmem          : > RAMLS4
    #else.........................................................etc..

    In C2000 syscfg add in linker command files CMD0

    RAMLS Memory combination0   

    RAMLS5,RAMLS6, RAMLS7.

    Now I activate the Linker CMD configuration.

    File is generated because i get a lot of conflicts!

    Building target: "led_ex1_blinky.out"
    Invoking: C2000 Linker
    "C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu64 --tmu_support=tmu1 --vcu_support=vcrc -Ooff --define=_FLASH --define=DEBUG --define=CPU1 --define=_LAUNCHXL_F28P65X --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"led_ex1_blinky.map" --heap_size=0x200 --stack_size=0x3F8 --warn_sections -i"C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib" -i"C:/ti/c2000/C2000Ware_5_00_00_00" -i"D:/f28p65/led_ex1_blinky/CPU1_LAUNCHXL_FLASH/syscfg" -i"C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --reread_libs --define=_FLASH --diag_wrap=off --display_error_number --xml_link_info="led_ex1_blinky_linkInfo.xml" --entry_point=code_start --rom_model -o "led_ex1_blinky.out" "./syscfg/board.obj" "./syscfg/device_cmd.obj" "./syscfg/c2000ware_libraries.obj" "./led_ex1_blinky.obj" "./device/device.obj" "./device/f28p65x_codestartbranch.obj" "../28p65x_generic_flash_lnk_cpu1.cmd" "C:/ti/c2000/C2000Ware_5_00_00_00/driverlib/f28p65x/driverlib/ccs/Debug/driverlib.lib" -l"syscfg/device_cmd.cmd"  -lc2000ware_libraries.cmd.genlibs -llibc.a
    <Linking>
    "syscfg/device_cmd.cmd", line 13: error #10263: RAMM0 memory range has already been specified
    "syscfg/device_cmd.cmd", line 13: error #10264: RAMM0 memory range overlaps existing memory range RAMM0
    "syscfg/device_cmd.cmd", line 14: error #10263: RAMM1 memory range has already been specified
    "syscfg/device_cmd.cmd", line 14: error #10264: RAMM1 memory range overlaps existing memory range RAMM1
    "syscfg/device_cmd.cmd", line 15: error #10263: CLATOCPURAM memory range has already been specified
    "syscfg/device_cmd.cmd", line 15: error #10264: CLATOCPURAM memory range overlaps existing memory range CLATOCPURAM
    "syscfg/device_cmd.cmd", line 16: error #10263: CPUTOCLARAM memory range has already been specified
    "syscfg/device_cmd.cmd", line 16: error #10264: CPUTOCLARAM memory range overlaps existing memory range CPUTOCLARAM
    "syscfg/device_cmd.cmd", line 17: error #10263: CLATODMARAM memory range has already been specified
    "syscfg/device_cmd.cmd", line 17: error #10264: CLATODMARAM memory range overlaps existing memory range CLATODMARAM
    "syscfg/device_cmd.cmd", line 18: error #10263: DMATOCLARAM memory range has already been specified
    "syscfg/device_cmd.cmd", line 18: error #10264: DMATOCLARAM memory range overlaps existing memory range DMATOCLARAM
    "syscfg/device_cmd.cmd", line 21: error #10263: RAMLS0 memory range has already been specified
    "syscfg/device_cmd.cmd", line 21: error #10264: RAMLS0 memory range overlaps existing memory range RAMLS0
    "syscfg/device_cmd.cmd", line 22: error #10263: RAMLS1 memory range has already been specified
    "syscfg/device_cmd.cmd", line 22: error #10264: RAMLS1 memory range overlaps existing memory range RAMLS1
    "syscfg/device_cmd.cmd", line 23: error #10263: RAMLS2 memory range has already been specified
    "syscfg/device_cmd.cmd", line 23: error #10264: RAMLS2 memory range overlaps existing memory range RAMLS2
    "syscfg/device_cmd.cmd", line 24: error #10263: RAMLS3 memory range has already been specified
    "syscfg/device_cmd.cmd", line 24: error #10264: RAMLS3 memory range overlaps existing memory range RAMLS3
    "syscfg/device_cmd.cmd", line 25: error #10263: RAMLS4 memory range has already been specified
    "syscfg/device_cmd.cmd", line 25: error #10264: RAMLS4 memory range overlaps existing memory range RAMLS4
    "syscfg/device_cmd.cmd", line 26: error #10264: memCombination0 memory range overlaps existing memory range RAMLS5
    "syscfg/device_cmd.cmd", line 26: error #10264: memCombination0 memory range overlaps existing memory range RAMLS6
    "syscfg/device_cmd.cmd", line 26: error #10264: memCombination0 memory range overlaps existing memory range RAMLS7
    "syscfg/device_cmd.cmd", line 27: error #10263: RAMD0 memory range has already been specified
    "syscfg/device_cmd.cmd", line 27: error #10264: RAMD0 memory range overlaps existing memory range RAMD0
    "syscfg/device_cmd.cmd", line 28: error #10263: RAMD1 memory range has already been specified
    "syscfg/device_cmd.cmd", line 28: error #10264: RAMD1 memory range overlaps existing memory range RAMD1
    "syscfg/device_cmd.cmd", line 29: error #10263: RAMGS0 memory range has already been specified
    "syscfg/device_cmd.cmd", line 29: error #10264: RAMGS0 memory range overlaps existing memory range RAMGS0
    "syscfg/device_cmd.cmd", line 30: error #10263: RAMGS1 memory range has already been specified
    "syscfg/device_cmd.cmd", line 30: error #10264: RAMGS1 memory range overlaps existing memory range RAMGS1
    "syscfg/device_cmd.cmd", line 31: error #10263: RAMGS2 memory range has already been specified
    "syscfg/device_cmd.cmd", line 31: error #10264: RAMGS2 memory range overlaps existing memory range RAMGS2
    "syscfg/device_cmd.cmd", line 32: error #10263: RAMGS3 memory range has already been specified
    "syscfg/device_cmd.cmd", line 32: error #10264: RAMGS3 memory range overlaps existing memory range RAMGS3
    "syscfg/device_cmd.cmd", line 33: error #10263: RAMGS4 memory range has already been specified
    "syscfg/device_cmd.cmd", line 33: error #10264: RAMGS4 memory range overlaps existing memory range RAMGS4
    "syscfg/device_cmd.cmd", line 34: error #10263: RAMD2 memory range has already been specified
    "syscfg/device_cmd.cmd", line 34: error #10264: RAMD2 memory range overlaps existing memory range RAMD2
    "syscfg/device_cmd.cmd", line 35: error #10263: RAMD3 memory range has already been specified
    "syscfg/device_cmd.cmd", line 35: error #10264: RAMD3 memory range overlaps existing memory range RAMD3
    "syscfg/device_cmd.cmd", line 36: error #10263: RAMD4 memory range has already been specified
    "syscfg/device_cmd.cmd", line 36: error #10264: RAMD4 memory range overlaps existing memory range RAMD4
    "syscfg/device_cmd.cmd", line 37: error #10263: RAMD5 memory range has already been specified
    "syscfg/device_cmd.cmd", line 37: error #10264: RAMD5 memory range overlaps existing memory range RAMD5
    "syscfg/device_cmd.cmd", line 38: error #10263: RAMLS8 memory range has already been specified
    "syscfg/device_cmd.cmd", line 38: error #10264: RAMLS8 memory range overlaps existing memory range RAMLS8
    "syscfg/device_cmd.cmd", line 39: error #10263: RAMLS9 memory range has already been specified
    "syscfg/device_cmd.cmd", line 39: error #10264: RAMLS9 memory range overlaps existing memory range RAMLS9
    "syscfg/device_cmd.cmd", line 40: error #10263: CPU1TOCPU2RAM memory range has already been specified
    "syscfg/device_cmd.cmd", line 40: error #10264: CPU1TOCPU2RAM memory range overlaps existing memory range CPU1TOCPU2RAM
    "syscfg/device_cmd.cmd", line 41: error #10263: CPU2TOCPU1RAM memory range has already been specified
    "syscfg/device_cmd.cmd", line 41: error #10264: CPU2TOCPU1RAM memory range overlaps existing memory range CPU2TOCPU1RAM
    "syscfg/device_cmd.cmd", line 42: error #10263: CANA_MSG_RAM memory range has already been specified
    "syscfg/device_cmd.cmd", line 42: error #10264: CANA_MSG_RAM memory range overlaps existing memory range CANA_MSG_RAM
    "syscfg/device_cmd.cmd", line 43: error #10263: CANB_MSG_RAM memory range has already been specified
    "syscfg/device_cmd.cmd", line 43: error #10264: CANB_MSG_RAM memory range overlaps existing memory range CANB_MSG_RAM
    "syscfg/device_cmd.cmd", line 44: error #10264: FLASH_BANK0 memory range overlaps existing memory range BEGIN
    "syscfg/device_cmd.cmd", line 44: error #10263: FLASH_BANK0 memory range has already been specified
    "syscfg/device_cmd.cmd", line 44: error #10264: FLASH_BANK0 memory range overlaps existing memory range FLASH_BANK0
    "syscfg/device_cmd.cmd", line 45: error #10263: FLASH_BANK1 memory range has already been specified
    "syscfg/device_cmd.cmd", line 45: error #10264: FLASH_BANK1 memory range overlaps existing memory range FLASH_BANK1
    "syscfg/device_cmd.cmd", line 46: error #10263: FLASH_BANK2 memory range has already been specified
    "syscfg/device_cmd.cmd", line 46: error #10264: FLASH_BANK2 memory range overlaps existing memory range FLASH_BANK2
    "syscfg/device_cmd.cmd", line 49: error #10263: RESET memory range has already been specified
    "syscfg/device_cmd.cmd", line 49: error #10264: RESET memory range overlaps existing memory range RESET
    "../28p65x_generic_flash_lnk_cpu1.cmd", line 69: 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 ".bss" size 0x802 page 0.  Available memory ranges:
       RAMLS5       size: 0x800        unused: 0x800        max hole: 0x800     
    error #10010: errors encountered during linking; "led_ex1_blinky.out" not built
     
    >> Compilation failure
    makefile:144: recipe for target 'led_ex1_blinky.out' failed
    gmake[1]: *** [led_ex1_blinky.out] Error 1
    makefile:140: recipe for target 'all' failed
    gmake: *** [all] Error 2

    **** Build Finished ****

    So  ,I think,  this go in conflict with 28p65x_generic_flash_cpu1.cmd.

    But if exclude from build this file  There are some errors. It seems that new file generated is incomplete

    Building target: "led_ex1_blinky.out"
    Invoking: C2000 Linker
    "C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu64 --tmu_support=tmu1 --vcu_support=vcrc -Ooff --define=_FLASH --define=DEBUG --define=CPU1 --define=_LAUNCHXL_F28P65X --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi -z -m"led_ex1_blinky.map" --heap_size=0x200 --stack_size=0x3F8 --warn_sections -i"C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib" -i"C:/ti/c2000/C2000Ware_5_00_00_00" -i"D:/f28p65/led_ex1_blinky/CPU1_LAUNCHXL_FLASH/syscfg" -i"C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --reread_libs --define=_FLASH --diag_wrap=off --display_error_number --xml_link_info="led_ex1_blinky_linkInfo.xml" --entry_point=code_start --rom_model -o "led_ex1_blinky.out" "./syscfg/board.obj" "./syscfg/device_cmd.obj" "./syscfg/c2000ware_libraries.obj" "./led_ex1_blinky.obj" "./device/device.obj" "./device/f28p65x_codestartbranch.obj" "C:/ti/c2000/C2000Ware_5_00_00_00/driverlib/f28p65x/driverlib/ccs/Debug/driverlib.lib" -l"syscfg/device_cmd.cmd"  -lc2000ware_libraries.cmd.genlibs -llibc.a
    <Linking>
    warning #10247-D: creating output section ".text" without a SECTIONS specification
    warning #10247-D: creating output section ".bss" without a SECTIONS specification
    warning #10247-D: creating output section ".const" without a SECTIONS specification
    error #10430-D: ".TI.ramfunc" section generated by __attribute__((ramfunc)) or --ramfunc=on requires a SECTIONS specification to function.
    warning #10247-D: creating output section ".data" without a SECTIONS specification
    warning #10247-D: creating output section ".cinit" without a SECTIONS specification
    error #10010: errors encountered during linking; "led_ex1_blinky.out" not built
     
    >> Compilation failure
    makefile:143: recipe for target 'led_ex1_blinky.out' failed
    gmake[1]: *** [led_ex1_blinky.out] Error 1
    makefile:139: recipe for target 'all' failed
    gmake: *** [all] Error 2

    **** Build Finished ****

    Where i be wrong?

    Thank you best regards

  • Hi Roberto,

    Please make sure to exclude the original .cmd file in the project. (RAM or FLASH) The linker command tool will generate its own .cmd files that the project will reference.

    In SysCfg, can you show me your global parameter settings? Also, it looks like .bss needs more memory allocated to this section. In the linker command tool you can add more memory directly to .bss under the Section -> C28x Compiler Section -> bss.

    Best,

    Ryan Ma 

  • Hi Ryan,

    your suggestion to modify  BSS in section  C28X Compiler Section is very good. but have to make another step after adding a new CMD section: must LOAD SETUP xxx DEFAULT otherwise the other part of linker will be empty and give a lot of error.

    So in sysconfig

    Linker Command file

    Add a new  CMD (ie CMD0  or rename under)

    Press the button SETUP xxx Default

    modify in C28x Compiler Sections bss  adding in load memory more segments (ie RAMLS5,RAMLS6+1)

    activate the generated   in Global Parameters:

    Active a Linker CMD Configuration.

    Current Active Linker CMD Configuration CMD0.

    Compile and Good Luck!

    Thank you very much for your Help

    Best Regards