FreeRTOS에서 외부 512 * 16 RAM으로 STM32F417을 사용합니다. MAP 파일을 볼 때 사용 된 메모리의 주소는 여전히 내부 RAM에 있습니다. 데프 RTOS 힙 :STM32 ExtRAM GCC-MAP 파일
> static unsigned char ucHeap[ 60*1024 ]__attribute__ > ((section(".ExRam")));
팔 GCC-link.ld 파일 :
> rom (rx) : ORIGIN = 0x08000000, LENGTH = 0x00100000
> ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00020000
>ram2 (rwx) : ORIGIN = 0x60000000, LENGTH = 0x00100000
>...
>ExRam (NOLOAD): { *(.ExRam.) } > ram2
>...
MAP 파일 :
> .ExRam 0x60000000 0xf000
>*(.ExRam.)
>.ExRam 0x60000000 0xf000 ..\obj\heap_4.o
>
> .ARM.extab *(.ARM.extab * .gnu.linkonce.armextab.*)
> 0x6000f000 __exidx_start = .
변수, 왜에 0x6000000 지역?
>.bss 0x200053ac 0x2c ..\obj\tcp_in.o
>.bss 0x200053d8 0x4 ..\obj\raw.o
>.bss 0x200053dc 0x10 ..\obj\ip_addr.o
>.bss 0x200053ec 0x100 ..\obj\ssl_ciphersuites.o
>.bss 0x200054ec 0x678 ..\obj\dns.o
>.bss 0x20005b64 0x8 ..\obj\lwip_timers.o