使用的STM32F207内部自带的RAM不够用,现外扩了一块512K外部RAM。现想自己指定某些定义的变量指定到XRAM中,求如何指定,谢谢!另外部RAM使用FSMC方式。
启动文件中已经有:
Stack_Size EQU 0x00000400
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp
; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x00000200
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
在加载文件中是否还需要 Stack 和 Heap? 比如:
RW_IRAM1 0x20000000 0x00000400 { ; stack 1K
startup_stm32f2xx.o (STACK, +ZI)
}
RW_IRAM1 +0 0x00000200 { ; heap 512
startup_stm32f2xx.o (HEAP, +ZI)
}
谢谢! 这种方式可以了,这样用:
rt_uint8_t comrx_mq_buf[COMRX_MQ_LEN] __attribute__((at(0x68000000)));
分散加载文件的具体帮助内容请你参考下keil的说明手册。
这个相对比较复杂些。
好的,谢谢!