如何将变量定义到外部RAM
使用的STM32F207内部自带的RAM不够用,现外扩了一块512K外部RAM。现想自己指定某些定义的变量指定到XRAM中,求如何指定,谢谢!另外部RAM使用FSMC方式。 参考使用分散加载文件。 使用at例如inta _at(0x68000000);这样a就在后边的地址中 moyanming2013 发表于 2016-3-22 10:35参考使用分散加载文件。
启动文件中已经有:
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 +00x00000200{ ; heap 512
startup_stm32f2xx.o (HEAP, +ZI)
}
农夫水 发表于 2016-3-22 11:08
使用at例如inta _at(0x68000000);这样a就在后边的地址中
谢谢! 这种方式可以了,这样用:
rt_uint8_t comrx_mq_buf __attribute__((at(0x68000000))); 有谁用过加载分散法,给指导一下,谢谢! zhangcy0217 发表于 2016-3-22 11:14
启动文件中已经有:
Stack_Size EQU 0x00000400
分散加载文件的具体帮助内容请你参考下keil的说明手册。
这个相对比较复杂些。 moyanming2013 发表于 2016-3-22 22:32
分散加载文件的具体帮助内容请你参考下keil的说明手册。
这个相对比较复杂些。 ...
好的,谢谢!
页:
[1]