使用的STM32F407ZG芯片,片外挂载1Mbytes的RAM,启动文件修改Stack_Size EQU 0x00002000 ;
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp EQU 0x20000000 + Stack_Size
;__initial_sp
; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x00000400
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
keil配置RAM1:0x68000000处已打勾。
目前在程序中定义500k大数组没有问题。运行ucos操作系统,有十几个任务,每个任务栈大小1k左右,
编译后内存使用情况如下
Program Size: Code=166212 RO-data=15892 RW-data=1528 ZI-data=645676
现在我要扩大一些任务的堆栈空间,每个任务增加1024字节的堆栈空间,编译后内存使用增加了十几k,但是一共还用不到700k的RAM,程序运行后就总重启。
外RAM明明有1M的空间,我只用了600多K为什么就总出问题呢?
还是我哪里设置的不对啊?
一周热门 更多>