日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

有幾個問題,眾多博文中抄來抄去,內(nèi)容一樣,卻沒有解釋清楚


上電初始化堆棧,在進(jìn)入_main后又說初始化堆棧,有什么不同

堆棧的地址是怎么得出來的

關(guān)于這兩個問題,先借用一下要標(biāo)準(zhǔn)的啟動流程

一般而言,系統(tǒng)上電后第一個執(zhí)行的是由匯編所編寫的啟動文件,其主要工作為一下五部分:


  (1)、初始化堆棧指針SP=_initial_sp


  (2)、初始化PC指針,令其=Reset_Handler


  (3)、初始化中斷向量表


  (4)、配置系統(tǒng)時鐘

  

  (5)、調(diào)用C庫函數(shù)_main初始化用戶堆棧,從而最終調(diào)用main函數(shù)進(jìn)入C的世界


STM32的中斷向量表規(guī)定每一行必須是SP地址,第二行是復(fù)位中斷入口地址,上電后,CPU首先就會讀這兩個值,分別存為SP和PC寄存器。上述流程第一行_initial_sp就是SP地址。

那么_initial_sp的值是怎么得到的呢?這是根據(jù)STM32的SRAM分配規(guī)則計算的,SRAM從規(guī)定的地址開始分別存付已初始全局和靜態(tài)變量、未初化全局和靜態(tài)變量、堆、棧,其中變量的長度是你寫程序后就固定了,堆和棧的長度則是在啟動代碼中定義的,那么把它們加起來就會得于_initial_sp的值,編譯后,_initial_sp就被替代為上述計算好的地址。


第二個問題,上電已經(jīng)初始了SP,為什么后邊又初始化堆棧?因為上電只是將_initial_sp值存入了SP寄存器,這只是一個棧頂指針,但堆的大小和棧的大小并沒有初始化,所以在_main中要把在啟動文件中定義好的值傳給C庫進(jìn)行堆棧大小的初始化。無論是帶系統(tǒng)的,還是裸機(jī)程序,都要管理堆棧的大小,這就是會產(chǎn)生堆棧溢出的原因。


另外,對于有MMU的系統(tǒng),在進(jìn)入保護(hù)模式后,地址切換到虛擬地址,還要對SP重新賦值,因為上電時的地址是實模式下真實的物理地址,而MMU是虛擬線性地址

關(guān)鍵字:STM32  啟動  堆棧初始化 引用地址:STM32的啟動堆棧初始化

上一篇:STM32系統(tǒng)芯片,加快LoRa IoT智能設(shè)備開發(fā)
下一篇:STM32堆棧整理

推薦閱讀

魅藍(lán)已經(jīng)宣布,將于本月17日在北京舉辦新品發(fā)布會,正式發(fā)布旗下首款全面屏S6。隨著發(fā)布會的臨近,該機(jī)的外觀及配置信息悉數(shù)揭曉。↑↑↑魅藍(lán)S6邀請函上周魅藍(lán)S6正式通過工信部入網(wǎng)許可,外觀可謂毫無懸念了。如圖所示,魅藍(lán)S6正面與紅米5區(qū)別不大,亮點在于背部,其采用了全金屬機(jī)身、隱藏式U型天線設(shè)計。攝像頭下方有“mblu”的魅藍(lán)Logo,同時“MEIZU”L...
芯科技消息(文/李泰宏),臺系連接器廠兆利表示,盡管目前可撓式手機(jī)仍處于各家廠商的研發(fā)初期,不過看好這將是客戶的秘密武器,公司也成立的專屬研發(fā)團(tuán)隊,與客戶溝通發(fā)展趨勢,搶攻可撓式手機(jī)商機(jī)。兆利指出,可撓式手機(jī)要解決的問題主要有幾個,首先是面板折疊后,厚度不能太厚,第二則是面板對折后,會出現(xiàn)水滴形的空間,要如何透過軸承,來解決這空間...
#include__CONFIG(0X1F71);#define uchar unsigned char#define uint unsigned intconst uchar Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};const uchar Tab1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//帶小數(shù)點的代碼 void DisPlay(uchar date1,uchar date2,uchar date3,ucha...
集微網(wǎng)1月9日消息,日前,索尼公司發(fā)布了其首個搭載“XR認(rèn)知芯片”的智能電視產(chǎn)品系列,該BRAVIA XR電視陣容,包括畫諦?系列8K液晶電視Z9J、畫諦?系列4K OLED電視A90J和A80J以及4K液晶電視X95J和X90J。新品BRAVIA XR電視由其大腦——XR認(rèn)知芯片(Cognitive Processor XR)驅(qū)動。該芯片采用了不同于傳統(tǒng)人工智能(AI)的新處理方法,可以模仿人類視...

史海拾趣

問答坊 | AI 解惑

premierelectronics

我是上海派睿電子的朱林 下面給您介紹下我們的3個網(wǎng)站 http://www.newark.com/ 這是我們美國的網(wǎng)站 http://uk.farnell.com/ 這是我們英國的網(wǎng)站 www.premierelectronics.com.cn 我們中國的網(wǎng)站 我們公司的簡介請查看附件 謝謝 麻煩 ...…

查看全部問答∨

tms320f28027的燒寫

首先感謝soso了 提供F2802x_CSP_RTM升級燒寫插件 有這個就太簡單了 找到28027例程,也就是下載2802X的庫文件 這里面有個flash的例程,打開這個程序,把那個Example_2802xFlash.c    Remove掉 加上自己主程序例如Example_2802xGpioT ...…

查看全部問答∨

誰在ARM9平臺上驅(qū)動過單色液晶屏?

  想利用板子的擴(kuò)展接口讓板子提供對單色屏的支持,有朋友做過嗎?能提供點相關(guān)資料嗎?有的話發(fā)我郵箱:lylove1943@163.com 大恩不言謝,100分送上?。 ?

查看全部問答∨

QTE是否可以移植到uClinux上呢

問題,如題。 曾嘗試在qte根目錄里mkspecs里添加arm-elf-g++目錄,然后修改qmake.conf中的編譯器名稱,configure里指定用arm-elf-g++來編譯,但是報錯。請問大蝦們是否有方法讓qte或qtopia運行在uClinux平臺呢?有的話要怎樣做呢? …

查看全部問答∨

顯擺!MSP430開發(fā)的無線抄表系統(tǒng)

    響應(yīng)SOSO號召出來顯擺下,這是2007年的一個項目的初期文檔,項目采用MSP430F149作為主控,小區(qū)內(nèi)通過Zigbee芯片完成組網(wǎng),然后經(jīng)GPRS進(jìn)行數(shù)據(jù)遠(yuǎn)程傳輸,上位機(jī)完成數(shù)據(jù)的分析統(tǒng)計功能,已經(jīng)有公司將項目中的產(chǎn)品推向市場。這次 ...…

查看全部問答∨

求教 Timer_B捕獲問題

我想利用定時器Timer_B捕獲方波時間 ,現(xiàn)在程序中還有p1.3中斷 但程序死機(jī) ,將Timer_B中斷封掉 程序正常 請問高手 問題在那里 程序如下 /********** TIMER_B 初始化 *********/ TBCTL = SHR_0+CNTL_0+TBSSEL_0+ID_1+MC_2+TBCLR+TBIE; ...…

查看全部問答∨

【設(shè)計工具】Virtex-5 用戶指南

Virtex-5 系列概述本概述簡要介紹 Virtex-5 系列的功能和產(chǎn)品選擇。• Virtex-5 數(shù)據(jù)手冊:直流和開關(guān)特性本數(shù)據(jù)手冊包含 Virtex-5 系列的直流和開關(guān)特性指標(biāo)。• Virtex-5 RocketIO GTP 收發(fā)器用戶指南本指南介紹 Virtex-5 LXT 和 SXT ...…

查看全部問答∨

分享一下自制的觸摸摁鍵,有程序,有視頻,有真相。

廢話不多說,先上圖誘惑下大家下 然后自拍了個視頻,效果可能不是很好,不要介意哈~ $(\'flv_rZT\').innerHTML=(mobileplayer() ? \"\" : AC_FL_RunContent(\'width\', \'500\', \'height\', \'375\', \'allowNetworking\', \'internal\', \'allo ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved