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.

TMS320F28027F-Q1: Not enough memory - updating linker command file

Part Number: TMS320F28027F-Q1
Other Parts Discussed in Thread: TMS320F28027F

Hello Guys,

Good day. I am posting this in behalf of the customer. Could you help to check the encountered error below from our customer. 

They try program the TMS320F28027F launchpad using Simulink. They have the following error shown below:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<Linking>
"C:/ProgramData/MATLAB/SupportPackages/R2021a_1/toolbox/target/supportpackages/tic2000/src/c28027.cmd", line 26: error:
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 ".ebss" size
0x2ddapage 0. Available memory ranges:
PRAML0 size: 0x1000 unused: 0x1000 max hole: 0x1000
error: errors encountered during linking; "../PQM.out" not built
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
They assume that they have to update the linker command file to accommodate a large program. Since they are also new to programming, kindly help also to clearly understand the memory mapping concept and the linker command file. Here is their linker command file :
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MEMORY
{
PAGE 0:
BEGINRAM: origin=0x0, length=0x2
PRAML0: origin=0x8000, length=0x1000
OTP: origin=0x3d7800, length=0x400
FLASH: origin=0x3f0000, length=0x7ff6
BEGINFLASH: origin=0x3f7ff6, length=0x2
CSM_PWL: origin=0x3f7ff8, length=0x8
IQTABLES: origin=0x3fe000, length=0xb50
IQTABLES2: origin=0x3feb50, length=0x8c
IQTABLES3: origin=0x3febdc, length=0xaa
BOOTROM: origin=0x3ff27c, length=0xd44
RESET: origin=0x3fffc0, length=0x2
VECTORS: origin=0x3fffc2, length=0x3e
PAGE 1:
RAMM0M1: origin=0x2, length=0x7fe
}
#if BOOT_FROM_FLASH
SECTIONS
{
.vectors: load = 0x000000000
.text: > FLASH, PAGE = 0
.switch: > FLASH, PAGE = 0
.bss: > PRAML0, PAGE = 0
.ebss: > PRAML0, PAGE = 0
.far: > PRAML0, PAGE = 0
.cinit: > FLASH, PAGE = 0
.pinit: > FLASH, PAGE = 0
.const: > FLASH, PAGE = 0
.econst: > FLASH, PAGE = 0
.reset: > RESET, PAGE = 0, TYPE = DSECT
.data: > PRAML0, PAGE = 0
.cio: > PRAML0, PAGE = 0
.sysmem: > RAMM0M1, PAGE = 1
.esysmem: > RAMM0M1, PAGE = 1
.stack: > RAMM0M1, PAGE = 1
.rtdx_text: > FLASH, PAGE = 0
.rtdx_data: > PRAML0, PAGE = 0
IQmath: > FLASH, PAGE = 0
codestart: > BEGINFLASH, PAGE = 0
csmpasswds: > CSM_PWL, PAGE = 0
csm_rsvd: > PRAML0, PAGE = 0
ramfuncs: LOAD = FLASH,
RUN = PRAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
IQmathTables: > IQTABLES, PAGE = 0 , TYPE = NOLOAD
IQmathTables2: > IQTABLES2, PAGE = 0 , TYPE = NOLOAD
IQmathTables3: > IQTABLES3, PAGE = 0 , TYPE = NOLOAD
}
#else
SECTIONS
{
.vectors: load = 0x000000000
.text: > PRAML0, PAGE = 0
.switch: > PRAML0, PAGE = 0
.bss: > RAMM0M1, PAGE = 1
.ebss: > RAMM0M1, PAGE = 1
.far: > RAMM0M1, PAGE = 1
.cinit: > PRAML0, PAGE = 0
.pinit: > PRAML0, PAGE = 0
.const: > RAMM0M1, PAGE = 1
.econst: > RAMM0M1, PAGE = 1
.reset: > RESET, PAGE = 0, TYPE = DSECT
.data: > RAMM0M1, PAGE = 1
.cio: > RAMM0M1, PAGE = 1
.sysmem: > RAMM0M1, PAGE = 1
.esysmem: > RAMM0M1, PAGE = 1
.stack: > RAMM0M1, PAGE = 1
.rtdx_text: > PRAML0, PAGE = 0
.rtdx_data: > RAMM0M1, PAGE = 1
IQmath: > PRAML0, PAGE = 0
codestart: > BEGINRAM, PAGE = 0
csmpasswds: > CSM_PWL, PAGE = 0
csm_rsvd: > PRAML0, PAGE = 0
ramfuncs: > PRAML0, PAGE = 0
IQmathTables: > IQTABLES, PAGE = 0 , TYPE = NOLOAD
IQmathTables2: > IQTABLES2, PAGE = 0 , TYPE = NOLOAD
IQmathTables3: > IQTABLES3, PAGE = 0 , TYPE = NOLOAD
}
#endif
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Thank you in advance for the support. 

Best regards,

Jonathan