資料介紹
單片機在上電的時候會經歷一個啟動的流程,不管是你從手冊描述上看得見的,還是看不見的,亦或者你不知道還有這種操作的,這個啟動都是客觀事實存在的,今天我們就用白話文來嘮一嘮 Cortex-Mx 系列的啟動流程(此文章知識廣泛適用于 CPU 為 Cortex-Mx 系列的 MCU)

如上圖為 STM32F0 系列單片機系統存儲器的映射圖(其他系列型號,映射圖會有區別,但流程還是一樣的),通常,當處理器從復位中啟動時,它首先會訪問位于 0x0000 0000 地址處的向量表,這個向量表是什么?從哪里來?跟程序員又有什么關系?明確的講這幾個問題跟我們的啟動文件是緊密相關的。啟動文件就是對啟動流程的“展現”,啟動文件中包含了向量表(向量表中包含了堆棧指針地址、復位向量程序地址、以及系統中各類中斷函數的入口地址,簡單點講就是單片機啟動的時候得經過這個向量表,執行復位程序得經過這個向量表,執行中斷還得經過向量表,從向量表中找中斷函數的入口地址)。當然啟動文件也是由程序員寫的(只不過大多數由廠家的 Coder 代勞了)。下面我們一起來弄清楚 吧!

上圖為廠家參考手冊上給出的向量表的部分截圖,啟動文件中程序員編寫的向量表就是根據這個表格來編寫的,每一行為向量表的一個組成成員,第一行為表示堆棧指針初始值,第二個字為復位向量地址,后面的行是各種類型的中斷向量地址,也就是中斷函數的入口地址(在圖中第一個字被描述為保留,第二個字描述為復位,這兩行內容非常重要!)
前面我們說了一個關鍵點,當處理器從復位中啟動時,它首先會訪問 0x00000000 地址處的向量表,并讀取向量表的前 2 個字,第一個字為堆棧指針 MSP 初始值(堆棧是一個臨時的空間,用來臨時存儲一些信息,就像電影里面的“龍門客?!币粯樱┻^往客人臨時歇腳。);第二個字為復位向量,它表示程序執行的起始地址。當讀取到該地址之后,會自動跳到復位向量處開始執行程序(圖 2紅框處,最右邊的一列地址欄,第一行地址空間從 0x0000 0000 開始 - 0x00000003 結束,第二行從 0x0000 0004 開始-0x0000 0007 結束,后面以此類推,每行占 4 個字節,即 1 個字)
但是比較暈的是:圖 1 中大家可以看到,地址 0x0000 0000 處已經存在內容了,是系統 BOOT 的配置,這段內容是廠家固化的一段代碼,我們寫的代碼是存儲在從 0x0800 0000 開始往后的地方,即 Main Flash Memory 存儲區(見圖 1)
那大家想我們寫的代碼(啟動文件也算寫的代碼的一部分),是放在 FLASH存儲區的,而單片機上電的時候是從 0x0000 0000 處開始執行,那么系統是怎么訪問到我們自己寫的這個向量表呢?
完整版技術文檔請點擊文章開頭普通下載
- 0STM32中的SysTick是個啥?咋用?(可下載)
- VCC啟動電路(可下載)
- TI汽車設計套裝火熱申請開始啦!
- STM32芯片的命名規則
- 基于PM4020A驅動模塊的1200W開關電源 28次下載
- 通信工程師注意啦,57個LTE常見面試問答請收好資料下載
- 關于Cortex-M3的中斷優先級描述資料下載
- 70種電子元器件及芯片封裝類型資源下載 104次下載
- 示波器眼圖怎么看,搞清楚這4點就容易啦!資料下載
- Cortex-M3(M0)匯編-啟動代碼分析資料下載
- Cortex-M3 NVIC與中斷控制資料下載
- Cortex-M3里GPIO幾個概念必須搞清楚資料下載
- 模擬工程師口袋參考書分享下載 15次下載
- 關于Cortex-M3內核芯片LPC1754開發的工程文件和程序免費下載 6次下載
- Cortex M3權威指南(中文) 6次下載
- 【案例2.36】芯片啟動異常的故障分析 813次閱讀
- 恩智浦i.MX RT1170 uSDHC eMMC啟動時間 1.8k次閱讀
- 有沒有比Xshell更牛逼的工具? 1.5k次閱讀
- i.MX RT1xxx從SD/eMMC啟動 2.1k次閱讀
- 分析ARM Cortex-M內核復位啟動過程 3.7k次閱讀
- 美信cortex-m3內核芯片的啟動過程及連接文件介紹 2.4k次閱讀
- i.MX RT10xx系列外部晶振相關引腳的作用 2.2k次閱讀
- 詳解MCU的SD/eMMC卡啟動 7.8k次閱讀
- 基于無線調制解調芯片MX919芯片實現高速無線MODEM的方案設計 3.4k次閱讀
- 米爾科技恩智浦i.MX8M與i.MX8M Mini的區別 7.9k次閱讀
- 慶科信息技術MX1290/MX1290V2 4.5k次閱讀
- USB接口為i.MX6處理器下載固件無法啟動的解決方法 1.9k次閱讀
- 你還在為擠地鐵、公交而煩惱嗎?這里有你想象的 3.2k次閱讀
- 舊手機寧可放在家里不用,也千萬不要亂丟,可能會泄露信息 1.2w次閱讀
- i.MX RT1052芯片的核心板,性能和代碼詳細資料概述 2.6w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論