Part Number: CODECOMPOSER
Hello,
Our code got too large for how the cmd file and gel files were configured, with error in CCS below, and configuration of cmd file below and gel file attached. When we tried to move .text and .far into the EMIFBSDRAM in the cmd file then when we start the CCS, the debugger cannot find main to stop at anymore. When we tried moving other sections, the debugger has a verification error. Can anyone explain in general how we can move the CCS code sections like .text and .far section to the larger memory in our memory map where the debugger can still find the main function (i.e., do certain sections always have to be together in the same memory map section)? Does this require modifying other files or the CCS debug configuration so the jtag can locate the code to single step through? Thank you again.
(error from CCS)
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, or the section contains padded functions. run placement with alignment fails for section ".far" size 0x2082c. Available memory ranges:
IRAM size: 0x40000 unused: 0x18a0c max hole: 0x18a0c
(cmd file configuration)
MEMORY
{
DSPL2ROM : org = 0x700000, len = 0x100000
DSPL2RAM : org = 0x800000, len = 0x40000
DSPL1PRAM : org = 0xe00000, len = 0x8000
DSPLDPRAM : org = 0xf00000, len = 0x8000
SHDSPL2ROM : org = 0x11700000, len = 0x100000
IRAM : org = 0x11800000, len = 0x40000
CACHE_L1P : org = 0x11e00000, len = 0x8000
CACHE_L1D : org = 0x11f00000, len = 0x8000
EMIFASDRAM : org = 0x40000000, len = 0x8000000
EMIFACS2 : org = 0x60000000, len = 0x2000000
EMIFACS3 : org = 0x62000000, len = 0x2000000
EMIFACS4 : org = 0x64000000, len = 0x2000000
EMIFACS5 : org = 0x66000000, len = 0x2000000
L3_CBA_RAM_ID : org = 0x80000000, len = 0x1000
L3_CBA_RAM_BL : org = 0x80001000, len = 0xf000
L3_CBA_RAM : org = 0x80010000, len = 0x10000
EMIFBSDRAM : org = 0xc0000000, len = 0x10000000
}
SECTIONS
{
.text: load > IRAM
.ti.decompress: load > IRAM
.stack: load > IRAM
GROUP: load > L3_CBA_RAM
{
.bss:
.neardata:
.rodata:
}
.cinit: load > L3_CBA_RAM
.pinit: load > L3_CBA_RAM
.init_array: load > IRAM
.const: load > L3_CBA_RAM
.data: load > IRAM
.fardata: load > IRAM
.switch: load > L3_CBA_RAM
.sysmem: load > IRAM
.far: load > IRAM
.args: load > IRAM align = 0x4, fill = 0 {_argsize = 0x0; }
.cio: load > L3_CBA_RAM
.ti.handler_table: load > IRAM
.c6xabi.exidx: load > IRAM
.c6xabi.extab: load > IRAM
.id: load > L3_CBA_RAM_ID
.clk: load > IRAM
.prd: load > IRAM
.swi: load > IRAM
.tsk: load > IRAM
.idl: load > IRAM
.idlcal: load > IRAM
.hwi_vec: load > IRAM
.sysdata: load > IRAM
.dsm: load > IRAM
.mem: load > IRAMfreertosdsp.gel
.bios: load > IRAM
.gio: load > IRAM
.sys: load > IRAM
.sysregs: load > IRAM
.gblinit: load > IRAM
.sysinit: load > IRAM
.trcdata: load > IRAM
.hwi: load > IRAM
.rtdx_text: load > IRAM
.TSK_idle$stk: load > IRAM
.LOG_system$buf: load > IRAM
.rtdx_data: load > IRAM
.hst1: load > IRAM
.hst0: load > IRAM
.trace: load > IRAM
.hst: load > IRAM
.log: load > IRAM
.pip: load > IRAM
.sts: load > IRAM
.heap: load > L3_CBA_RAM
.L3_CBA_RAM_ID: load > L3_CBA_RAM
.l3_cba_ram_bl: load > L3_CBA_RAM_BL
.L3_CBA_RAM$heap: load > L3_CBA_RAM
.printf: load > L3_CBA_RAM
.ppinfo: load > IRAM
.ppdata: load > IRAM
.binit: load > IRAM
.vecs: load > IRAM
.obj: load > IRAM
}
Thank you again.