历史上的今天
返回首页

历史上的今天

今天是:2025年01月15日(星期三)

正在发生

2019年01月15日 | STM32堆栈大小及位置

2019-01-15 来源:eefocus

STM32的地址空间映射:



首先STM32的堆栈是存放在片上静态SRAM中的,地址分配可以见Keil的编译map文件:


HEAP  0x200106f8  Section  512  startup_stm32f2xx.o(HEAP) 

STACK  0x200108f8  Section  1024  startup_stm32f2xx.o(STACK)


__heap_base  0x200106f8  Data  0  startup_stm32f2xx.o(HEAP) 

__heap_limit  0x200108f8  Data  0  startup_stm32f2xx.o(HEAP) 

__initial_sp  0x20010cf8  Data  0  startup_stm32f2xx.o(STACK)



上面节选中, __heap_base 是堆的基地址,__initial_sp  是栈指针 。示意图如下:



堆和栈的大小在启动文件startup_stm32f2xx.s中设置:


Stack_Size  EQU  0x00000400


AREA  STACK, NOINIT, READWRITE, ALIGN=3 

Stack_Mem  SPACE  Stack_Size 

__initial_sp


; Heap Configuration 

;  Heap Size (in Bytes)


Heap_Size  EQU  0x00000200


AREA  HEAP, NOINIT, READWRITE, ALIGN=3 

__heap_base


注意:


堆和栈,一般堆是由低地址往上增长,栈是由往下减少。都是连续的,C语言不提供内存保护机制类似的功能,如果一直堆一直增长,栈一直申请,然后就会导致栈溢出,程序崩溃。


推荐阅读

史海拾趣

EOS POWER INDIA Pvt公司的发展小趣事

EOS POWER INDIA Pvt公司成立于1991年,由美国加利福尼亚州几位电力电子领域的先驱创立。成立之初,EOS就致力于电力电子技术的研发与应用,特别是在电源解决方案方面。通过引进先进的技术和工艺,EOS在印度市场上逐步建立起自己的品牌形象,并开始为本地客户提供优质的电源产品和服务。

粤翔(FlyWin)公司的发展小趣事
根据需求分析结果,选择合适的电压监测元件、电源管理元件、储能元件和保护元件。
Belkin公司的发展小趣事

贝尔金的成功不仅仅局限于美国本土。随着全球市场的不断扩张,贝尔金也在全球范围内建立了广泛的销售网络和物流中心。位于加州洛杉矶的总部、好莱坞的工业设计中心以及纽约州罗切斯特的研发机构,共同构成了贝尔金全球业务的核心。这些机构之间的紧密合作,确保了贝尔金能够迅速响应全球市场的需求,提供高品质的产品和服务。

Gennum ( Semtech )公司的发展小趣事
确保在断电的情况下进行电路操作,避免触电危险。
Antelec公司的发展小趣事

随着技术的不断成熟和产品的不断完善,Antelec公司开始积极寻求市场拓展。公司通过与国内外知名企业和研究机构建立合作关系,将产品成功应用于多个领域,如通信、半导体制造和航空航天等。同时,公司还积极参加各类行业展会和论坛,加强了与行业内外的交流与合作。

ENSIGN公司的发展小趣事

ENSIGN不仅关注传统电子行业的发展,还积极探索新的业务领域。最近,ENSIGN集团宣布收购位于亚利桑那州的医疗保健园区River Park Post Acute和Elmwood Senior Living,以及其他七家公司。这一收购标志着ENSIGN正逐步向医疗保健领域进军,寻求多元化的发展机会。

问答坊 | AI 解惑

ucos入门知识!

[local]1[/local]uCOS-II中文手册…

查看全部问答>

帮忙关于LCD12864

我的这块就是KS0108控制器不带汉字库的 datasheet :http://www.datasheetarchive.com/pdf-datasheets/Datasheets-312/166945.pdf 可不可以提供显示图形的程序.具体电路图…

查看全部问答>

无线通信芯片nRF903

本帖最后由 paulhyde 于 2014-9-15 09:40 编辑 无线通信芯片nRF903与89C51的接口设计  …

查看全部问答>

过滤空气的环保手表

这是个外形前卫的手表除了能显示时间之外还有更新鲜的功能,那就是过滤空气。现在全球变暖的问题日益严重,而人类呼出的二氧化碳就是一种主要的温室气体。这款手表的设计师企图从源头消灭掉人类呼出的二氧化碳,所以在手表中加入了小型的空气过滤装 ...…

查看全部问答>

关于wince手写识别的几个问题

麻烦各位了,小弟新手,有几个问题在这里求教: 1.wince自带手写识别软件不能识别简体,请问怎样做才能让它识别简体? 2.如果要编写一个自己的识别软件,难度大吗?编写的大概步骤是什么?(希望能  比帮助文档具体一点)恳请赐告!谢谢 …

查看全部问答>

in [求助] 中, 换了一个电源带来的问题

in [求助] 中, 换了一个电源带来的问题 我的问题这样的, 主机只是简单的扫描端口, 子机负责把信息显示出来(用LED),开机时会读取一下EEPROM中字符,总共才20个字符。 原来我用子机的电源,主机的电源也是从子机那里拉过来的,很正常,也很 ...…

查看全部问答>

今年题型有变,没有通信,该如何准备呢?

本帖最后由 paulhyde 于 2014-9-15 09:47 编辑 传闻今年没有无线通信题目了,不知是否属实。 如果真的没有了,以前做无线通信的该怎么准备呢?  …

查看全部问答>

ARM启动代码学习(一)RO和RW还有ZI代表什么?(转载)

    一般而言,一个程序包括只读的代码段和可读写的数据段。在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit) ...…

查看全部问答>

励志故事:要么孤独,要么庸俗

就像叔本华所说的,“要么是孤独,要么就是庸俗”。我不会去想别人的、世俗的感受,我只追求内心的、精神的满足。这就是26岁的我所想的。  1987年出生,我今年刚好26岁。   工作已经五年,在社会这个酱缸里混了五年,在这个肖申克监狱里待了五 ...…

查看全部问答>

晒WEBENCH设计的过程+变送器电源

晒WEBENCH设计的过程+变送器电源 进入“WEBENCH® 设计中心” http://www.ti.com.cn/lsds/ti_zh/analog/webench/overview.page 输入参数:输入电压12V~36V,输出24V,开始设计 WEBENCH 为设计者提供了多种应用方案 选择其中一个方案 开始 ...…

查看全部问答>