你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何将变量定义到外部RAM

[复制链接]
zhangcy0217 提问时间:2016-3-22 10:08 /
  使用的STM32F207内部自带的RAM不够用,外扩了一块512K外部RAM。现想自己指定某些定义的变量指定到XRAM中,求如何指定,谢谢!另外部RAM使用FSMC方式。
收藏 评论7 发布时间:2016-3-22 10:08

举报

7个回答
moyanming2013 回答时间:2016-3-22 10:35:18
参考使用分散加载文件。
农夫水 回答时间:2016-3-22 11:08:52
使用at  例如  int  a     _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 +0  0x00000200  {        ; heap 512
  startup_stm32f2xx.o (HEAP, +ZI)
  }



zhangcy0217 回答时间:2016-3-22 13:23:25
农夫水 发表于 2016-3-22 11:08
使用at  例如  int  a     _at(0x68000000);  这样  a就在后边的地址中

谢谢! 这种方式可以了,这样用:
rt_uint8_t comrx_mq_buf[COMRX_MQ_LEN] __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的说明手册。
这个相对比较复杂些。 ...

好的,谢谢!

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版