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.

F28M36 build controller software in FLASH (F28M36x_generic_C28_FLASH.cmd", line 81: error #10264: )

Other Parts Discussed in Thread: CONTROLSUITE

I'm using the F28M36 uC and have problems building (linking) the C28x code.

When is use the F28M36x_generic_C28_RAM.cmd building works and I can debug the code.

When I want to program the flash I change the .cmd to F28M36x_generic_C28_FLASH.cmd.

how the following error occurs :


**** Build of configuration Debug for project control_tms320c28 ****

"C:\\ti\\ccsv5\\utils\\bin\\gmake" -k all
'Building target: control_tms320c28.out'
'Invoking: C2000 Linker'
"C:/ti/ccsv5/tools/compiler/c2000_6.1.3/bin/cl2000" -v28 -ml -mt --float_support=fpu32 --vcu_support=vcu0 -O2 -g --diag_warning=225 --display_error_number --diag_wrap=off -z --stack_size=0x300 -m"control_tms320c28.map" --warn_sections -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.3/lib" -i"C:/ti/ccsv5/tools/compiler/c2000_6.1.3/include" -i"->Project_dir->controlSUITE/libs/math/FPUfastRTS/V100" --reread_libs --display_error_number --diag_wrap=off --xml_link_info="control_tms320c28_linkInfo.xml" --rom_model -o "control_tms320c28.out"  "../rts2800_fpu32_fast_supplement.lib" "../rts2800_fpu32.lib" "./source/sabs.obj" "./source/pwm.obj" "./source/main.obj" "./source/inverter.obj" "./source/adc.obj" "./source ti/F28M36x_usDelay.obj" "./source ti/F28M36x_SysCtrl.obj" "./source ti/F28M36x_PieVect.obj" "./source ti/F28M36x_PieCtrl.obj" "./source ti/F28M36x_Ipc_Util.obj" "./source ti/F28M36x_Ipc.obj" "./source ti/F28M36x_Gpio.obj" "./source ti/F28M36x_GlobalVariableDefs.obj" "./source ti/F28M36x_DefaultIsr.obj" "./source ti/F28M36x_CpuTimers.obj" "./source ti/F28M36x_CodeStartBranch.obj" "./source ti/F28M36x_Adc.obj" -l"->Project_dir->F28M36x_common\cmd\F28M36x_generic_C28_FLASH.cmd" -l"rts2800_fpu32.lib" "../source ti/F28M36x_Headers_nonBIOS.cmd"
<Linking>
"->Project_dir->F28M36x_common\cmd\F28M36x_generic_C28_FLASH.cmd", line 81: error #10264:

   RAMM0 memory range overlaps existing memory range BOOT_RSVD
>> Compilation failure
error #10010: errors encountered during linking; "control_tms320c28.out" not built
gmake: *** [control_tms320c28.out] Error 1
gmake: Target `all' not remade because of errors.

**** Build Finished ****

I cannot find a double declaration for RAMM0 and BOOT_RSVD. and the locations are declared the same in (RAM.cmd and FLAHS.cmd).

What am I doing wrong?

I have included the .cmd as following.

  • Hi All,

    How I see it now, the declaration in the FLASH.cmd file is NOK. the declaration RAMM0 (0x000002 to 0x00009F) and BOOT_RSVD (0x000080 to 0x000380) overlap. In RAM.cmd these are separated over page0 and page1. in FLASH.cmd they are both on page1.

    I have removed RAMM0 in FLASH.cmd:
    RAMM0 : origin = 0x000080, length = 0x000380 /* on-chip RAM block */

    also changed the allocation uninitalized data sections in FLASH.cmd
    from:
    /* Allocate uninitalized data sections: */
    .stack : > RAMM0 PAGE = 1

    To
    /* Allocate uninitalized data sections: */
    .stack : > RAMM1 PAGE = 1

    with this it seems to work.
    Not all ram can be used now with this. I hope the F28M36x_generic_C28_FLASH.cmd is updated soon.
  • Arno,

    Yes,  this is a known issue regarding the F28M35x/F28M36x C28 Flash cmd linker files. The bug will be fixed in the next controlSUITE release for F28M35x/F28M36x. Although your solution works, the fix only requires changing the origin and length values for RAMM0. 

    Please reference the following post for the solution (Applies to both 35x and 36x):

    http://e2e.ti.com/support/microcontrollers/c2000/f/171/p/382962/1350107#pi2132219854filter=answers&pi2132219854scroll=false

    Best Regards,

    Chris