21ic问答首页 - 请问 STM32F407ZGT6 内存大小的问题
请问 STM32F407ZGT6 内存大小的问题
gisapple2021-02-22
型号:STM32F407ZGT6, Heap_Size EQU 0x00000700 可以编译通过,Heap_Size EQU 0x00000800 就出错了?
int main(void)
{
char* p1 = (char*) malloc(1024);
if(p1==NULL)
{
char a;
a='a';
}
}
Error: L6406E: No space in execution regions with .ANY selector matching system_stm32f4xx.o(.data).
请问是什么原因啊。
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 0x00000800
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
PRESERVE8
THUMB
赞0
评论
2021-03-03
赞0
评论
2021-03-03
赞0
评论
2021-03-03
赞0
评论
2021-03-03
赞0
评论
2021-03-03
赞0
可以把一些大的全局数组分配给他,绝对定位或者强制转换
评论
2021-02-24
赞0
谢谢,64K的没想给DCMI DMA用啊,是要给cpu用的 malloc(n)这样,可是系统自己好像分配错乱了,如何控制这64k给cpu使用,不让DCMI DMA用呢
评论
2021-02-24
赞0
那个64K的RAM是有限制的,只能被CPU访问,需要特别注意,都不看手册的吗
评论
2021-02-24
赞0
谢谢各位大神,
IRAM1 start 0x20000000 size 0x20000
IRAM2 start 0x10000000 size 0x10000
Heap_Size EQU 0x00002800
现在可以编译成功了。
Total RO Size (Code + RO Data) 44276 ( 43.24kB)
Total RW Size (RW Data + ZI Data) 139360 ( 136.09kB)
Total ROM Size (Code + RO Data + RW Data) 44536 ( 43.49kB)
但是 运行异常,程序不对了,使用了DCMI_Cmd(ENABLE); //DCMIʹÄÜ
DCMI 和 IRAM2 有冲突?
评论
2021-02-24
您需要登录后才可以回复 登录 | 注册