stm32f407,外RAM,ucos任务堆栈大小不够用

2019-07-21 05:19发布

使用的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为什么就总出问题呢?
还是我哪里设置的不对啊?

0条回答

一周热门 更多>