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

求助STM32CubeIDE STM32F407+外部SRAM如何将数值指定存储到外..

[复制链接]
生锈的小刀 提问时间:2019-12-27 20:23 /
使用STM32CubIDE 将数组定义到外部SRAM 报错,IDE中应该如何设置
uint8_t a[300000] __attribute__((at(0x680000)));为什么编译时会报错说RAM超出限制。IDE中我应该如何设置,或者有例程也可以!非常感谢

收藏 评论8 发布时间:2019-12-27 20:23

举报

8个回答
生锈的小刀 回答时间:2019-12-30 13:37:58
在工程中找到
**FLASH.LD文件
MEMORY
{
  CCMRAM        (xrw)        : ORIGIN = 0x10000000,        LENGTH = 64K
  RAM        (xrw)        : ORIGIN = 0x20000000,        LENGTH = 128K
  FLASH        (rx)        : ORIGIN = 0x8000000,        LENGTH = 1024K
  MALLOC(rw)    : ORIGIN = 0x68000000, LENGTH = 1024K    //这是增加内容
}
中增加
MALLOC(rw)    : ORIGIN = 0x68000000, LENGTH = 1024K
ORIGIN:后边内容为 外部内存地址
LENGTH:后为外部RAM大小
在文件
  ._user_heap_stack :
  {
    . = ALIGN(8);
    PROVIDE ( end = . );
    PROVIDE ( _end = . );
    . = . + _Min_Heap_Size;
    . = . + _Min_Stack_Size;
    . = ALIGN(8);
  } >RAM
后添加
.malloc :
  {
    . = ALIGN(4);
    __MALLOC_SYMBOLS = .;      
    *(.malloc)
    *(.malloc*)
   
    . = ALIGN(4);
    __EMALLOC_SYMBOLS = .;      
  } >MALLOC

数组定义时要这样定义
uint8_t testsram[500] __attribute__((section(".malloc")));
likang1202 回答时间:2019-12-30 11:16:59
我的也出问题了
likang1202 回答时间:2019-12-30 11:27:31
微信截图_20191230112607.png
生锈的小刀 回答时间:2019-12-30 13:26:46
需要修改FLASH.LD中的参数
生锈的小刀 回答时间:2019-12-30 13:41:32
修改成功后
1.png
likang1202 回答时间:2020-1-16 09:39:36
下面两个是FLASH.ld文件,第一个是GUIConf.c文件
GUIConf.png
guiexsram2.png
gui外部sdram.png
likang1202 回答时间:2020-1-16 09:42:22
参考Cube_fw_f4
STM32Cube_FW_F4_V1.24.0\Projects\STM324x9I_EVAL\Applications\STemWin\STemWin_MemoryDevice
libi00488 回答时间:2020-5-18 12:19:28
请问,你这么设置之后编译的HEX和BIN文件大小是多少?我按照你这么设置之后bin文件有3G。 hex文件也有8M多,请问还有什么地方要设置吗?第一次用CubeIDE开发

所属标签

相似问题

官网相关资源

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