Other Parts Discussed in Thread: SYSBIOS
Tool/software: TI-RTOS
Hello,
I work on project with linux/gcc build of sysbios for Sitara.
Recently I had to increase heap size to 24MB and noticed that heap region is included in binary, so it also grown above 24MB.
Toolchain I use: arm-none-eabi-gcc (4.8.4-1+11-1) 4.8.4 20141219 (release)
This is my heap configuration:
var mainHeap = HeapMem.create() mainHeap.size = 25165824; mainHeap.sectionName = ".biosheap"; Memory.defaultHeapInstance = mainHeap; Program.sectMap[".c_int00"] = new Program.SectionSpec(); Program.sectMap[".c_int00"].loadAddress = 0x80000000; Program.sectMap[".c_int00"].runAddress = 0x80000000; Program.sectMap[".biosheap"] = new Program.SectionSpec(); Program.sectMap[".biosheap"].runSegment = "DDR2"
Program.sectMap[".biosheap"].type = "NOLOAD";
it results in linker.cmd section:
.biosheap (NOLOAD) : {*(.biosheap)} > DDR2
objdump shows:
Size VMA LMA File off Algn .biosheap 01800000 80027040 80027040 00037040 2**3 ALLOC .bss 0002f748 81863930 81863930 0187392c 2**3 ALLOC
size output:
text data bss dec hex
231373 44892 25507656 25783921 1896e71
resulting binary size: 25573676
It looks like section type "NOLOAD" is ignored. Changing it to "DSECT" also does not help.
Can anyone help me with this issue?
Thanks in advance!