专栏中心

EEPW首页 > 专栏 > STM32栈stack 堆栈 注意事项 Stack_Size EQU 0x00000400

STM32栈stack 堆栈 注意事项 Stack_Size EQU 0x00000400

发布人:电子禅石 时间:2020-05-29 来源:工程师 发布文章

标题一、看STM32启动文件,例如startup_stm32f10x_cl.s
一般默认是Stack_Size      EQU     0x00000400
表示工程中栈大小是1024字节,即局部变量不能大于1024字节。
如果函数中出现局部变量例如u8 temp[4000];
启动文件的栈应该修改为Stack_Size      EQU     0x00001000 ,此时栈是4096字节。
备注:栈stack是一块程序运行时用来存储临时变量的内存RAM空间。栈一般静态分配,并且后进先出,栈的生命周期从程序的起始直到程序结束。一个函数返回,其用到的栈空间就被释放给后续函数使用。
————————————————

标题二、判断STM32编译后代码是否超出芯片容量

例如keil 5 编译后,如图:Program Size: Code=15280 RO-data=284 RW-data=980 ZI-data=15964

11.png

Code为程序代码部分
RO-data 表示 程序定义的常量const temp;
RW-data 表示 已初始化的全局变量
ZI-data 表示 未初始化的全局变量
Code, RO-data,RW-data …flash
RW-data, ZIdata…RAM
使用是CPU是STM32F103C8,FLASH有64kBytes,RAM有20kBytes


22.png

查看工程的map文件
Total RO  Size (Code + RO Data)                15564 (  15.20kB)
Total RW  Size (RW Data + ZI Data)             16944 (  16.55kB)
Total ROM Size (Code + RO Data + RW Data)      16384 (  16.00kB)
123
工程代码使用的FLASH和ARM均小于CPU的额定大小,正常。
————————————————

原文链接:https://blog.csdn.net/weixin_37787043/article/details/104442843————————————————
:https://blog.csdn.net/weixin_37787043/article/details/104442843

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

C64+ 系列DSP上Cache 的应用(第一部分)

视频 2009-10-16

为机器人技术的未来发展筑牢安全防线

机器人 2025-09-12

模拟对话丨实现更智能的数字预失真引擎:一种基于神经网络的方法

模拟技术 2025-09-12

商务部公布对原产于美国的进口相关模拟芯片发起反倾销立案调查

揭秘 PCB 设计与制造过程

EDA/PCB 2025-09-12

避免隔离设计的隐藏成本!

TI Zigbee 射频芯片RF4CE 以及RemoTI 开发包

视频 2009-10-16

C64+ 系列DSP上Cache 的应用(第二部分)

视频 2009-10-16

高性能系列DSP上TCP2/VCP2协处理器

视频 2009-10-16

桥接差距:为何设计者-制造商合作在 PCB 制造中至关重要

EDA/PCB 2025-09-12

如何设计PCB布局以提升半桥GaN驱动器性能

EDA/PCB 2025-09-12

一文了解数据转换器的线性度误差!

深入分析同步多个∑-∆ ADC时的典型问题

电源与新能源 2025-09-12

中国在贸易谈判前对美国芯片发起反倾销调查

ADS62C17 数据转换器

更多 培训课堂
更多 焦点
更多 视频

技术专区