STM32F407IG临时堆栈划分

2020-01-15来源: eefocus关键字:STM32F407IG  临时堆栈  临时变量

今天调试STM32F407IG,发现编译器编译完成后占用RAM空间28K,但是在仿真的时候总是死或跳到内存错误的中断里死在那里。


后来发现是在某个函数中开辟的临时变量过大,导致内存溢出,将下面红色字体把堆栈的空间划分的大一些就好了。


startup_stm32f4xx.s


; Amount of memory (in bytes) allocated for Stack

; Tailor this value to your application needs

; Stack Configuration

;    Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>

;


Stack_Size      EQU     0x00001400 ; 划分堆栈空间


                AREA    STACK, NOINIT, READWRITE, ALIGN=3

Stack_Mem       SPACE   Stack_Size

__initial_sp



; Heap Configuration

;     Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>

;


Heap_Size       EQU     0x00000200


                AREA    HEAP, NOINIT, READWRITE, ALIGN=3

__heap_base

Heap_Mem        SPACE   Heap_Size

__heap_limit

关键字:STM32F407IG  临时堆栈  临时变量 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic485733.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32栈和堆使用不同RAM的实现方法
下一篇:STM32看门狗研究

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F407IG开启FPU,做开方运算
步骤如下:1 . 建立工程,添加相关必要的文件到工程中。 2. 打开 option for target 选择 Target 标签,在code generatio中,将floating point hardware 选择 USE FPU。 3.  编译你的工程,保证通过。当然也不一定需要编译通过,先做编译是为了后面添加浮点库做准备,这样发现问题和知道哪里出问题。 4.  打开 option for target 选择 C/C++ 标签, 在define中添加:USE_HAL_DRIVER,STM32F407xx,__TARGET_FPU_VFP
发表于 2017-02-05
带小数点DS18B20程序
#include <REGX52.H> #define uchar unsigned char sbit DQ=P2^0; //数据传输线接单片机的相应的引脚 unsigned char tempL=0; //临时变量低位(无符号字符变量) unsigned char tempH=0; //临时变量高位 unsigned int tempa; //温度值(整型变量) uchar display_data[4]={0}; void DS18_delay(int useconds)//延时函数 { int s; for (s=0; s<useconds;s++
发表于 2012-10-20
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved