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.
Hello everyone,
I'm trying to build my first project, so this is probably a dull question.
Yet yesterday I was trying to control a servo motor and it worked fine, today I tried to rebuild my program and I got this warning:
warning #10210-D: creating ".sysmem" section with default size of 0x400; use the -heap option to change the default size
"C:/ti/c2000/C2000Ware_4_01_00_00/device_support/f28002x/common/cmd/28002x_generic_ram_lnk.cmd", line 64: 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. run placement with alignment/blocking fails for section ".sysmem" size 0x400page 0. Available memory ranges:
RAMLS4567 size: 0x2000 unused: 0x12d max hole: 0x12c
error #10010: errors encountered during linking; "F28002x_Project.out" not built
>> Compilation failure
makefile:144: recipe for target 'F28002x_Project.out' failed
gmake[1]: *** [F28002x_Project.out] Error 1
makefile:140: recipe for target 'all' failed
gmake: *** [all] Error 2
Does anyone have any idea how to fix it?
P.S: The file is already linked in project properties -> Build -> C2000 Linker -> File search Path -> C:\ti\c2000\C2000Ware_4_01_00_00\device_support\f28002x\common\cmd\28002x_generic_ram_lnk.cmd
Thank you,
Hi,
As mentioned in the error message, linker is trying to fit the sysmem section of length 0x400 in the LSRAM which only has 0x12d unused memory left.
Please reallocate that to a different RAM block
Regards,
Veena
Hi,
Thank you for your answer. I tried it and then I found out that the problem is that the program is loaded in ROM and to solve it, I should load my program in Flash memory.
Do you have any idea how to do this?
Regards,
Abdel Karim
P.S: I also tried to link "28002x_generic_flash_lnk" instead of "28002x_generic_ram_lnk" to solve the problem. However, the program is built without errors but it still does not work.
Does your application use 0x400 bytes of heap memory? If not, you could reduce it reduce the section size.
If you have spare memory left in GSRAM, you can try allocating sysmem to GSRAM memory
Note that the cmd files provided in C2000ware are for reference only, please update it as per the application requirement
Regards,
Veena
Thank you
Problem solved by linking "28002x_generic_flash_lnk".
Combining the FLASH BANKS from BANK0 to BANK15 by updating the cmd file provided in C2000ware as suggested :
// FLASH_BANK0_SEC2 : origin = 0x082000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC3 : origin = 0x083000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC4 : origin = 0x084000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC5 : origin = 0x085000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC6 : origin = 0x086000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC7 : origin = 0x087000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC8 : origin = 0x088000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC9 : origin = 0x089000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC10 : origin = 0x08A000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC11 : origin = 0x08B000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC12 : origin = 0x08C000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC13 : origin = 0x08D000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC14 : origin = 0x08E000, length = 0x001000 /* on-chip Flash */
// FLASH_BANK0_SEC15 : origin = 0x08F000, length = 0x000FF0 /* on-chip Flash */
FLASH_BANK0_SEC2To15 : origin = 0x082000, length = 0xDFF0 /* combining the flashbank 0 to 15
Then I've added :
#include <flash.h> // added to main.c
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (uint32_t)&RamfuncsLoadSize); // added to main.c