Where is _c_int00 defined? Concerto f28m35h52c1 using CCS5.4.
Thanks,
Pat
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.
Where is _c_int00 defined? Concerto f28m35h52c1 using CCS5.4.
Thanks,
Pat
If you are not using DSP/BIOS, you should be able to specify the address using the linker command file. The general idea is to put the boot module (where _c_int00 is defined) into an output section of its own, then allocate that output section to a specific memory address. For example for C5000:
boot > 0x1234
{
-l rts55.lib<boot.obj>(.text)
}
You can change the address 0x1234 to be whatever address that you want to put the code. Probably the start of your RAM would be a good place so that the linker doesn’t have problems allocating other objects around it.
None of these links tell me anything about the location of the definition for the concerto, as far as I can tell. How should this procedure be constructed for the C2000?
Thanks,
Pat
Here is the data from my linker cmd file. I am trying to add a definite start up location for boot. How should this be done?
MEMORY
{
CSM_ECSL_Z1 : origin = 0x00200000, length = 0x0024
CSM_RSVD_Z1 : origin = 0x00200024, length = 0x000c
RESETISR (RX) : origin = 0x00200030, length = 0x0010
//, FILL=0xFFFFFFFF /* Reset ISR is mapped to boot to Flash location */
INTVECS (RX) : origin = 0x00201000, length = 0x01B0
FLASHLOAD (RX) : origin = 0x00201200, length = 0x2E00
/* For storing code in Flash to copy to RAM at runtime */
CINIT : origin = 0x00204800, length = 0x400
// test
// FLASH (RX) : origin = 0x00204000, length = 0x7BFD0
// seperate flash for Download file storage
FLASH_M (RX) : origin = 0x00205000, length = 0x3000
FLASH_L (RX) : origin = 0x00208000, length = 0x4000
FLASH_K (RX) : origin = 0x0020C000, length = 0x4000
FLASH_J (RX) : origin = 0x00210000, length = 0x10000
FLASH_I (RX) : origin = 0x00220000, length = 0x10000
FLASH_H (RX) : origin = 0x00230000, length = 0x10000
FLASH_G (RX) : origin = 0x00240000, length = 0x10000
FLASH_F (RX) : origin = 0x00250000, length = 0x10000
FLASH_E (RX) : origin = 0x00260000, length = 0x10000
FLASH_D (RX) : origin = 0x00270000, length = 0x4000
FLASH_C (RX) : origin = 0x00274000, length = 0x4000
FLASH_B (RX) : origin = 0x00278000, length = 0x4000
FLASH_A (RX) : origin = 0x0027C000, length = 0x3F00
// FLASH (RX) : origin = 0x00204000, length = 0x30000 //seperate section for NID, plus download boot stuff
// FLASH_DLOAD (RX) : origin = 0x00240000, length = 0x30000
//
CSM_RSVD_Z2 : origin = 0x0027FF00, length = 0x00DC
/////
CSM_ECSL_Z2 : origin = 0x0027FFDC, length = 0x0024
//R.Liang: combine C0 and C1 into one memory C0_1
//C0 (RWX) : origin = 0x20000000, length = 0x2000
//C1 (RWX) : origin = 0x20002000, length = 0x2000
C0_1 (RWX) : origin = 0x20000000, length = 0x4000
BOOT_RSVD (RX) : origin = 0x20004000, length = 0x0FF8
//combine C2 and C3 into single memory C2_3
//C2 (RWX) : origin = 0x200051B0, length = 0x0E50
//C3 (RWX) : origin = 0x20006000, length = 0x2000
C2_3 (RWX) : origin = 0x200051B0, length = 0x2E50
/////
S0 (RWX) : origin = 0x20008000, length = 0x2000
S1 (RWX) : origin = 0x2000A000, length = 0x2000
S2 (RWX) : origin = 0x2000C000, length = 0x2000
S3 (RWX) : origin = 0x2000E000, length = 0x2000
S4 (RWX) : origin = 0x20010000, length = 0x2000
S5 (RWX) : origin = 0x20012000, length = 0x2000
S6 (RWX) : origin = 0x20014000, length = 0x2000
S7 (RWX) : origin = 0x20016000, length = 0x2000
CTOMRAM (RX) : origin = 0x2007F000, length = 0x0800
MTOCRAM (RWX) : origin = 0x2007F800, length = 0x0800
}
/* Section allocation in memory */
SECTIONS
{
.intvecs: > INTVECS
.resetisr: > RESETISR
.cinit: > CINIT
.text : > FLASH_M |FLASH_L | FLASH_K | FLASH_J | FLASH_I | FLASH_H
.const : > FLASH_M |FLASH_L | FLASH_K | FLASH_J | FLASH_I | FLASH_H
/*.cinit : > FLASH_M |FLASH_L | FLASH_K | FLASH_J | FLASH_I | FLASH_H */
.pinit : > FLASH_M |FLASH_L | FLASH_K | FLASH_J | FLASH_I | FLASH_H
.dload : > FLASH_G | FLASH_F |FLASH_E | FLASH_D | FLASH_C | FLASH_B | FLASH_A
.vtable : > C0_1
.data : > C0_1
.bss : > C2_3
.sysmem : > C0_1
.stack : > C0_1
.z1secvalues : > CSM_ECSL_Z1
.z1_csm_rsvd : > CSM_RSVD_Z1
.z2secvalues : > CSM_ECSL_Z2
.z2_csm_rsvd : > CSM_RSVD_Z2
GROUP
{
ramfuncs
{
-
l F021_API_CortexM3_LE.lib
}
}
LOAD = FLASHLOAD,
RUN = C0_1,
LOAD_START(RamfuncsLoadStart),
LOAD_SIZE(RamfuncsLoadSize),
LOAD_END(RamfuncsLoadEnd),
RUN_START(RamfuncsRunStart),
RUN_SIZE(RamfuncsRunSize),
RUN_END(RamfuncsRunEnd),
PAGE = 0
GROUP : > MTOCRAM
{
PUTBUFFER
PUTWRITEIDX
GETREADIDX
}
GROUP : > CTOMRAM
{
GETBUFFER :
TYPE = DSECT
GETWRITEIDX :
TYPE = DSECT
PUTREADIDX :
TYPE = DSECT
}
}
__STACK_TOP = __stack + 256;
Thanks,
Pat
It appears that I need to add
rtsv7M3_T_le_eabi.lib : boot.obj
to my cmd file and assign a fixed location for the boot module. My approach was to place this module at the end of FLASH_J:
FLASH_J (RX) : origin = 0x00210000, length = 0xff00
Then create a section for the CM3 boot module:
BOOT_CM3 (RX) : origin = 0x0021ff00, length = 0x100
Then create a GROUP for the module:
GROUP : > BOOT_CM3
{
-l rtsv7M3_T_le_eabi.lib : boot.obj //(.text)
}
This gives the following error:
"C:/Texas Instruments/PLUS_CCU_V6_2/plus_ccu_cm3/dsp_c28x/cfg/F28M35H52C1_m3_FreeRTOS.cmd", line 140: error #10026-D:
expecting output section, GROUP, or UNION instead of "-"
Any suggestions, please?
Thanks,
Pat