STM32的堆棧大小在官方文件已經定義好了,分別是:
Heap_Size EQU 0x00000200 一共512字節(jié)
Stack_Size EQU 0x00000400 一共1K字節(jié)
/***********************************************************************************/
但是STM32在keil環(huán)境下每次編譯后的堆棧起始地址并不是固定的(就算事先已經定義好了堆棧的大小),因為棧的起始地址是由用戶程序中事先定義好的變量數(shù)目決定的(實測是如此)。但欣慰的是,一旦這次編譯之后,堆棧的首地址就不會再發(fā)生改變了,換言之,就是在燒完程序之后,堆棧的地址就永遠不變了。
/***********************************************************************************/
要關心STM32的堆棧關系,首先無法避免的就是下面這兩幅圖片了:
圖一:MDK環(huán)境下,STM32 Bulid Output窗口部分截圖
圖二:MDK環(huán)境下,STM32的.map文件中關于堆棧地址的說明(綠色高亮部位)
/***********************************************************************************/
STM32的內部sram的首地址為0x20000000,圖二中的__initial_sp既為棧的高地址(也就是棧的首地址)(STM32的堆棧地址在MDK下的配置默認是連續(xù)的,棧的地址高于堆的地址,棧的生長方向為從高地址向低地址生長,棧的地址為從低地址向高地址生長,最后兩者生長到了一起,也就是“頭碰頭”)圖二中的HEAP既為堆的低地址,STACK既為最后頭碰頭的地址(注意并不是棧的起始地址而是結束地址,因為棧相對于堆是逆向生長的)
/***********************************************************************************/
那么問題來了,__initial_sp的值是怎么來的呢?這就要看圖一了。
首先拋出結論:__initial_sp = 0x20000000+RW+ZI
RW:Read/Write 可讀可寫的數(shù)據(jù)段。就是那些在任務初始化時就已經被賦值了的變量,MDK一般將這種類型的數(shù)據(jù)保存在STM32的SRAM中。(“全局變量”存在“普通意義上的”SRAM 中)(“局部變量”存儲在“?!敝校ā熬植康膕tatic變量”在存儲上等價于全局變量)
ZI:Zero Initial 初始化為0的變量,也就是直接初始化并沒有賦值的變量
可以這么認為:在STM32的片內SRAM中,__initial_sp-0x20000000為用戶已經使用了的SRAM空間,從高地址到低地址依次為“棧Stack”“堆Heap”“全局變量”
/***********************************************************************************/
至此,圖二中綠色高亮部分的STACK和HEAP的數(shù)值也就不難理解了
STACK = __initial_sp - 0x400(棧的大?。?nbsp;
HEAP = STACK - 0x200(堆的大?。?nbsp;
/***********************************************************************************/
上一篇:STM32的啟動堆棧初始化
下一篇:stm32 ADC理解
推薦閱讀
史海拾趣
隨著全球市場的不斷擴大,Emerson Embedded Power積極尋求新的增長點。通過與全球知名電子制造商的合作,該公司成功將其產品打入國際市場,并贏得了眾多國際客戶的信賴。此外,公司還通過并購和戰(zhàn)略合作,進一步拓寬了業(yè)務范圍,提高了市場競爭力。
隨著國內市場的飽和,Atlantic Microwave Ltd公司開始將目光投向了更廣闊的國際市場。公司組織了一支專業(yè)的國際營銷團隊,深入調研不同國家和地區(qū)的市場需求和文化習慣,制定了針對性的市場推廣策略。同時,公司還積極參與國際電子展會和技術交流活動,展示公司的最新產品和技術實力,成功打開了多個國際市場的大門。
近年來,電子行業(yè)面臨著技術更新迅速、市場競爭日益激烈等挑戰(zhàn)。Atlantic Microwave Ltd公司敏銳地察覺到行業(yè)變革的趨勢,及時調整了公司的戰(zhàn)略方向。公司加大了對新興技術的研發(fā)投入,積極擁抱數(shù)字化轉型,優(yōu)化生產流程和管理模式,提高了公司的運營效率和市場競爭力。
背景:隨著企業(yè)規(guī)模的擴大和業(yè)務的拓展,福斯特對資金的需求也越來越大。
發(fā)展:2014年,福斯特成功在上交所上市,通過資本市場融資,為公司的發(fā)展注入了強勁動力。上市后,公司繼續(xù)加大研發(fā)投入和市場開拓力度,加速企業(yè)發(fā)展步伐。
成果:上市以來,福斯特的營收和利潤均保持快速增長態(tài)勢,企業(yè)規(guī)模和實力不斷提升。同時,公司還通過并購重組等方式,進一步鞏固和擴大市場份額。
以上五個故事概述了福斯特在電子行業(yè),特別是光伏材料領域的發(fā)展歷程和成就。這些故事不僅展現(xiàn)了福斯特的創(chuàng)業(yè)精神和創(chuàng)新能力,也反映了中國光伏產業(yè)從無到有、從小到大的發(fā)展歷程。
質量是企業(yè)生存和發(fā)展的根本。福聲科技自成立之初就高度重視產品質量管理,通過引入ISO9001質量管理體系,建立了完善的質量管理體系。公司從原材料采購、生產過程控制到成品檢驗,每一個環(huán)節(jié)都嚴格按照標準執(zhí)行,確保產品質量的穩(wěn)定性和可靠性。這一舉措不僅贏得了客戶的信賴和好評,也為公司贏得了更多的市場份額。
隨著市場的不斷變化和技術的飛速發(fā)展,福聲科技深知技術創(chuàng)新的重要性。公司不斷加大研發(fā)投入,組建了一支高素質的研發(fā)團隊,專注于電磁式蜂鳴器、壓電式蜂鳴器等新型產品的研發(fā)。通過持續(xù)的技術創(chuàng)新和產品升級,福聲科技成功推出了一系列具有自主知識產權的電聲元器件,不僅提升了產品的市場競爭力,還進一步拓寬了應用領域,如智能家居、安防系統(tǒng)等新興市場。
ICD2.5中,PIC16F877的4腳(RA2)和7腳(RA5)應該有幾種狀態(tài)?我的RA5始終高,而RA2始終低,就是找不到目標。誰知道是怎么回事?… 查看全部問答∨ |
|
正在開發(fā)WiFi的模塊,感覺代理和原廠都好牛氣啊, 代理都沒FAE,原廠的FAE根本就不理, 找過好幾家都一樣,左貞,Ralink,AMP等都一樣.. 郁悶啊… 查看全部問答∨ |
|
本來感覺萬利不錯,以前買的SE52的仿真器還可以但是這次然我失望……昨天打打電話到杭州萬利的銷售,倒也滿爽快的報價也是199。當天發(fā)貨,今天收到貨拆開就感覺到不對。首先、映入眼簾的是CR1220的時鐘電池沒有安裝。那到算了,自己加一個。其 ...… 查看全部問答∨ |
|
試用的LM4F232開發(fā)板硬件說明,希望大家能最終獲得 硬件資源: 處理器:LM4F232H5QC,CORTEX M4 80MHz, 256k Flash, 32k SRAM 板載2MB SPI Flash(W25Q16) 板載2048-Bit I2C EEPROM(AT24L02) 支持2.8英寸帶觸摸屏的TFT LCD (分辨率320x240) (ILI9325主控) 2路USB接口,支持Host, De ...… 查看全部問答∨ |
|
【玩轉C2000 Launchpad】 一C2000新建工程入門 非庫方式新建C2000工程入門 https://bbs.eeworld.com.cn/thread-362200-1-1.html 還有很多更簡單方便的新建C2000工程的方法.… 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- 阿里黑科技落地!夸克AI眼鏡全球首發(fā),高德、淘寶、支付寶都能用
- 化繁為簡, 適配復雜磁場環(huán)境,MT73xx 3D雙路輸出霍爾鎖存器賦能車規(guī)電機精準控制
- 9.5億美元收購恩智浦MEMS傳感器業(yè)務,意法半導體 在傳感器領域的地位再升級
- 高性能電動滑板車 BLDC 電機驅動器:技術解析與應用展望
- 5G工業(yè)網關的“邊緣計算+AI推理”一體化設計,PLC協(xié)議解析與缺陷檢測的實時聯(lián)動
- AR眼鏡的“工業(yè)指令投射”系統(tǒng),SLAM的空間定位、PLC數(shù)據(jù)實時疊加顯示
- 多光譜氣體傳感器的抗交叉干擾設計
- 多模態(tài)融合感知的“語義-幾何”聯(lián)合建模
- 工業(yè)觸摸屏的“壓感-手勢”多模態(tài)交互設計
- 工業(yè)機器人高精度力控的“雙模融合”傳感器設計
- 將低功耗設計進行到底——評論、轉發(fā)贏大禮!
- 芯幣競拍:感恩教師節(jié)專場
- Keysight示波器主題月有獎系列活動之 注冊大獎天天抽 搶樓踩中亦有獎
- Microchip有獎直播:VectorBlox™ SDK 報名中
- 有獎直播|ADI 慣性MEMS應用那些事
- 借助 Microchip 生態(tài)系統(tǒng)中的 PIC® 和 AVR® 單片機開啟嵌入式到云端之旅 系列在線研討會
- 帶你零起點入門STM32(專為嵌入式應用而開發(fā)的內核)
- 福祿克首款熱成像萬用表Fluke-279FC 即將上市!填寫問卷贏好禮嘍!
- EEWorld Datasheet 伴你同行!快來領取200芯積分福利啦~
- 泰克福袋:示伴功倍,萬能福袋派送中