Other Parts Discussed in Thread: C2000WARE
CCS generates executable file, checking map file does not show a problem, function are correctly placed, but there is a warning:
warning #10247-D: creating output section ".TI.ramfuncs" without a SECTIONS specification
Here is "2837x_RAM_lnk_cpu1.cmd" file:
MEMORY
{
PAGE 0 : /* Program Memory */
/* BEGIN is used for the "boot to SARAM" bootloader mode */
BEGIN : origin = 0x000000, length = 0x000002
RAMM0 : origin = 0x000122, length = 0x0002DE // .cinit .pinit .switch
// RAMM1 : origin = 0x000400, length = 0x000400 // .stack
// RAMLS0 : origin = 0x008000, length = 0x000800
// RAMLS1 : origin = 0x008800, length = 0x000800
// RAMLS2 : origin = 0x009000, length = 0x000800
// RAMLS3 : origin = 0x009800, length = 0x000800
// RAMLS4 : origin = 0x00A000, length = 0x000800
// RAMLS5 : origin = 0x00A800, length = 0x000800
RAMLS012345 : origin = 0x008000, length = 0x003000 // .text
RESET : origin = 0x3FFFC0, length = 0x000002
PAGE 1 : /* Data Memory */
BOOT_RSVD : origin = 0x000002, length = 0x000120
RAMM1 : origin = 0x000400, length = 0x000400 // .stack
RAMD0 : origin = 0x00B000, length = 0x000800 // .const
RAMD1 : origin = 0x00B800, length = 0x000800 // .ebss .esysmem
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 = 0x001000
RAMGS12 : origin = 0x018000, length = 0x001000
RAMGS13 : origin = 0x019000, length = 0x001000
RAMGS14 : origin = 0x01A000, length = 0x001000
RAMGS15 : origin = 0x01B000, length = 0x001000
CPU2TOCPU1RAM : origin = 0x03F800, length = 0x000400
CPU1TOCPU2RAM : origin = 0x03FC00, length = 0x000400
}
SECTIONS
{
codestart : > BEGIN, PAGE = 0
#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000
.TI.ramfunc : {} > RAMLS012345, PAGE = 0
#else
ramfuncs : > RAMLS012345, PAGE = 0
#endif
#endif
.text : > RAMLS012345, PAGE = 0 /* Executable code and constants */
.cinit : > RAMD0, PAGE = 1 /* Initilized global and static variables */
.pinit : > RAMM0, PAGE = 0 /* Tables of constructor, C++ only, otherwise empty */
.switch : > RAMM0, PAGE = 0 /* Tables for switch statements */
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */
.stack : > RAMM1, PAGE = 1 /* Obviusly stack space, size set in project C2000Linker-> Basic Options */
.stack : > RAMD0, PAGE = 1 /* Obviusly stack space, size set in project C2000Linker-> Basic Options */
.ebss : > RAMD1, PAGE = 1 /* Uninitilized global and static variables, WARNING: not initilized to zero */
.esysmem : > RAMD1, PAGE = 1 /* Heap space, Memory for malloc type functions */
.econst : > RAMD0, PAGE = 1 /* Constant variables */
// Filter_RegsFile : > RAMGS0, PAGE = 1
// ramgs0 : > RAMGS0, PAGE = 1
// ramgs1 : > RAMGS1, PAGE = 1
ramgs15 : > RAMGS15, PAGE = 1
/* The following section definitions are required when using the IPC API Drivers */
GROUP : > CPU1TOCPU2RAM, PAGE = 1
{
PUTBUFFER
PUTWRITEIDX
GETREADIDX
}
GROUP : > CPU2TOCPU1RAM, PAGE = 1
{
GETBUFFER : TYPE = DSECT
GETWRITEIDX : TYPE = DSECT
PUTREADIDX : TYPE = DSECT
}
}
//===========================================================================
// End of file.
//===========================================================================
and here is the message from console:
Building target: "Wolfspeed_cpu1.out"
Invoking: C2000 Linker
"C:/TI/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla1 --float_support=fpu32 --tmu_support=tmu0 --vcu_support=vcu2 -O2 --opt_for_speed=5 --fp_mode=relaxed --advice:performance=all --define=_INLINE --define=DEBUG --define=CPU1 -g --c99 --diag_warning=225 --diag_wrap=off --display_error_number --abi=coffabi --silicon_errata_fpu1_workaround=on -z -m"Wolfspeed_cpu1.map" --stack_size=0x100 --warn_sections -i"C:/TI/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/lib" -i"C:/TI/ccs1250/ccs/tools/compiler/ti-cgt-c2000_22.6.1.LTS/include" --reread_libs --diag_wrap=off --display_error_number --xml_link_info="Wolfspeed_cpu1_linkInfo.xml" --rom_model -o "Wolfspeed_cpu1.out" "./F2837xD/F2837xD_Adc.obj" "./F2837xD/F2837xD_CodeStartBranch.obj" "./F2837xD/F2837xD_DefaultISR.obj" "./F2837xD/F2837xD_GlobalVariableDefs.obj" "./F2837xD/F2837xD_PieVect.obj" "./F2837xD/F2837xD_SysCtrl.obj" "./F2837xD/F2837xD_usDelay.obj" "./Source/C1_Can.obj" "./Source/C1_Control.obj" "./Source/C1_Drivers.obj" "./Source/C1_Main.obj" "./Source/Func.obj" "../2837x_RAM_lnk_cpu1.cmd" "../F2837xD_Headers_nonBIOS_cpu1.cmd" -llibc.a -l"C:/TI/c2000/C2000Ware_4_01_00_00/driverlib/f2837xd/driverlib/ccs/Debug/driverlib.lib"
<Linking>
warning #10247-D: creating output section ".TI.ramfuncs" without a SECTIONS specification
Finished building target: "Wolfspeed_cpu1.out"
please see two lines above, highlighted in bold red.
I can not figure out how to remove the warning. Here is source code that requests a function to be placed in ".TI.ramfunc" segment:
#pragma CODE_SECTION(ADC_A1_Interrupt, ".TI.ramfunc");
interrupt void ADC_A1_Interrupt(void)
{
// function body here
}
I am using CCS 12.5.0
Thank you.