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

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

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

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

举报

10个回答
小刀 回答时间: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")));
李康1202 回答时间:2019-12-30 11:16:59
我的也出问题了
李康1202 回答时间:2019-12-30 11:27:31
微信截图_20191230112607.png
小刀 回答时间:2019-12-30 13:26:46
需要修改FLASH.LD中的参数
小刀 回答时间:2019-12-30 13:41:32
修改成功后
1.png
李康1202 回答时间:2020-1-16 09:39:36
下面两个是FLASH.ld文件,第一个是GUIConf.c文件
GUIConf.png
guiexsram2.png
gui外部sdram.png
李康1202 回答时间: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开发
林万山 回答时间:2021-2-20 11:21:12
likang1202 发表于 2020-1-16 09:39
下面两个是FLASH.ld文件,第一个是GUIConf.c文件

编译后bin文件过大
林万山 回答时间:2021-2-20 11:22:23
生锈的小刀 发表于 2019-12-30 13:37
在工程中找到
**FLASH.LD文件
MEMORY

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