小刀 发表于 2019-12-27 20:23:51

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

使用STM32CubIDE 将数组定义到外部SRAM 报错,IDE中应该如何设置
uint8_t a __attribute__((at(0x680000)));为什么编译时会报错说RAM超出限制。IDE中我应该如何设置,或者有例程也可以!非常感谢

小刀 发表于 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 __attribute__((section(".malloc")));

李康1202 发表于 2019-12-30 11:16:59

我的也出问题了

李康1202 发表于 2019-12-30 11:27:31

小刀 发表于 2019-12-30 13:26:46

需要修改FLASH.LD中的参数

小刀 发表于 2019-12-30 13:41:32

修改成功后

李康1202 发表于 2020-1-16 09:39:36

下面两个是FLASH.ld文件,第一个是GUIConf.c文件

李康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空间不足
页: [1]
查看完整版本: 求助STM32CubeIDE STM32F407+外部SRAM如何将数值指定存储到外..