Hi,
I am implementing the FLAC project on the C5515 EVM board. I need to set a big heap for malloc, because the FLAC really has a lot of malloc in the library.
I manually added a command file as below:
-stack 0x1000 /* PRIMARY STACK SIZE */ -sysstack 0x1000 /* SECONDARY STACK SIZE */ -heap 0x01C000 /* HEAP AREA SIZE */
MEMORY { MMR (RW) : origin = 0000000h length = 0000C0h /* MMRs */ VEC (RX) : origin = 00000C0h length = 000300h /* on-chip ROM vectors */ DARAM (RW) : origin = 0000400h length = 00FC00h /* on-chip DARAM */ DYNRAM (RW) : origin = 0010000h length = 020000h INITVAR (RW) : origin = 0030000h length = 010000h SARAM (RW) : origin = 0040000h length = 0C0000h }
SECTIONS { vectors : > VEC ALIGN = 256 .const : > INITVAR //constant data .bss : > INITVAR, fill = 0 //global & static vars .cinit : > INITVAR //autoinitialization tables .switch : > INITVAR //switch statement table .data : > INITVAR //initialized vars .cio : > INITVAR //C I/O buffers .stack : > INITVAR ALIGN = 4 .sysstack : > INITVAR ALIGN = 4
.sysmem : > DYNRAM //dynamic memory (malloc)
.text : > SARAM ALIGN = 4
} When I compile the code, the CCS gives an error "section .sysmem(0x10000) spans page boundary: not allowed before CPU revision 3.0". If I change the heap size to 0x8000, it works. But if I set 0x1C000, it fails. I know 0x1C000 is still below 128KW boundary. Why does this error occur? How can I increase the heap size? Thanks.