zhangcy0217 发表于 2016-3-22 10:08:24

如何将变量定义到外部RAM

使用的STM32F207内部自带的RAM不够用,现外扩了一块512K外部RAM。现想自己指定某些定义的变量指定到XRAM中,求如何指定,谢谢!另外部RAM使用FSMC方式。

moyanming2013 发表于 2016-3-22 10:35:18

参考使用分散加载文件。

农夫水 发表于 2016-3-22 11:08:52

使用at例如inta   _at(0x68000000);这样a就在后边的地址中

zhangcy0217 发表于 2016-3-22 11:14:47

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)
}



zhangcy0217 发表于 2016-3-22 13:23:25

农夫水 发表于 2016-3-22 11:08
使用at例如inta   _at(0x68000000);这样a就在后边的地址中

谢谢! 这种方式可以了,这样用:
rt_uint8_t comrx_mq_buf __attribute__((at(0x68000000)));

zhangcy0217 发表于 2016-3-22 13:25:28

有谁用过加载分散法,给指导一下,谢谢!

moyanming2013 发表于 2016-3-22 22:32:34

zhangcy0217 发表于 2016-3-22 11:14
启动文件中已经有:
Stack_Size      EQU   0x00000400



分散加载文件的具体帮助内容请你参考下keil的说明手册。
这个相对比较复杂些。

zhangcy0217 发表于 2016-3-23 21:05:57

moyanming2013 发表于 2016-3-22 22:32
分散加载文件的具体帮助内容请你参考下keil的说明手册。
这个相对比较复杂些。 ...

好的,谢谢!
页: [1]
查看完整版本: 如何将变量定义到外部RAM