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

如何把外部SRAM像内部RAM一样分配变量

[复制链接]
黑皮男 提问时间:2018-9-26 01:19 /
阅读主题, 点击返回1楼
收藏 评论13 发布时间:2018-9-26 01:19
13个回答
Dandjinh 回答时间:2018-10-12 13:29:35
黑皮男 发表于 2018-10-11 13:16
就是说再编译的阶段,编译器就自动把变量定义到外部ram,而无需在代码中指定 ...

1. 修改.ld文件
  1. MEMORY
  2. {
  3. RAM (xrw)    : ORIGIN = 0x20000000, LENGTH = 256K
  4. FLASH (xr)   : ORIGIN = 0x8000000,  LENGTH = 1024K
  5. SDRAM (rw)   : ORIGIN = 0xC0000000, LENGTH = 16M
  6. }

  7. SECTIONS
  8. {
  9.   .sdramsec :
  10.   {
  11.     . = ALIGN(4);
  12.         _start_sdram = .;
  13.         *(.sdramss)
  14.        
  15.         . = ALIGN(4);
  16.         _end_sdram = .;
  17.   } >SDRAM AT> FLASH
  18. }
复制代码
2. 在适当的地方调用以下函数
  1. extern uint32_t _start_sdram, _end_sdram;

  2. void InitExtraSections(void)
  3. {
  4.     uint32_t size = _end_sdram - _start_sdram;
  5.     memcpy((uint8_t *)_start_sdram, (uint8_t *)0xC0000000, size);
  6. }
复制代码



huangxuejia-292 回答时间:2018-10-12 17:30:53
STM32 官方例子有,不过好像不是GCC的
黑皮男 回答时间:2018-10-13 13:38:00
Dandjinh 发表于 2018-10-12 13:29
1. 修改.ld文件
2. 在适当的地方调用以下函数

多谢指点,抽空试一下
rockzhouchina 回答时间:2018-10-16 15:03:31
多谢分享
12

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版