資料介紹
單片機在上電的時候會經歷一個啟動的流程,不管是你從手冊描述上看得見的,還是看不見的,亦或者你不知道還有這種操作的,這個啟動都是客觀事實存在的,今天我們就用白話文來嘮一嘮 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 處開始執行,那么系統是怎么訪問到我們自己寫的這個向量表呢?
完整版技術文檔請點擊文章開頭普通下載
- LLC的死區時間對DS波形的影響(可下載)
- VCC啟動電路(可下載)
- TI汽車設計套裝火熱申請開始啦!
- STM32芯片的命名規則
- 基于PM4020A驅動模塊的1200W開關電源 25次下載
- 通信工程師注意啦,57個LTE常見面試問答請收好資料下載
- 關于Cortex-M3的中斷優先級描述資料下載
- 70種電子元器件及芯片封裝類型資源下載 102次下載
- 示波器眼圖怎么看,搞清楚這4點就容易啦!資料下載
- Cortex-M3(M0)匯編-啟動代碼分析資料下載
- Cortex-M3 NVIC與中斷控制資料下載
- Cortex-M3里GPIO幾個概念必須搞清楚資料下載
- 模擬工程師口袋參考書分享下載 15次下載
- 關于Cortex-M3內核芯片LPC1754開發的工程文件和程序免費下載 6次下載
- Cortex M3權威指南(中文) 6次下載
- 恩智浦i.MX RT1170 uSDHC eMMC啟動時間 788次閱讀
- 有沒有比Xshell更牛逼的工具? 735次閱讀
- i.MX RT1xxx從SD/eMMC啟動 1441次閱讀
- 分析ARM Cortex-M內核復位啟動過程 2676次閱讀
- 美信cortex-m3內核芯片的啟動過程及連接文件介紹 1755次閱讀
- i.MX RT10xx系列外部晶振相關引腳的作用 1597次閱讀
- 詳解MCU的SD/eMMC卡啟動 6646次閱讀
- 基于無線調制解調芯片MX919芯片實現高速無線MODEM的方案設計 2774次閱讀
- 米爾科技改內核調整GPIO在內核啟動階段方案 2939次閱讀
- 米爾科技恩智浦i.MX8M與i.MX8M Mini的區別 6969次閱讀
- 慶科信息技術MX1290/MX1290V2 3565次閱讀
- USB接口為i.MX6處理器下載固件無法啟動的解決方法 1528次閱讀
- 你還在為擠地鐵、公交而煩惱嗎?這里有你想象的 2909次閱讀
- 舊手機寧可放在家里不用,也千萬不要亂丟,可能會泄露信息 1.1w次閱讀
- i.MX RT1052芯片的核心板,性能和代碼詳細資料概述 2.4w次閱讀
下載排行
本周
- 1相關協議信號總結
- 0.94 MB | 4次下載 | 免費
- 2DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 3常用電子元器件介紹
- 3.21 MB | 1次下載 | 免費
- 4運算放大器基本電路中文資料
- 1.30 MB | 1次下載 | 免費
- 5PC1654 連續傳導模式(CCM)升壓式同步整流器控制器中文手冊
- 1.00 MB | 次下載 | 免費
- 6FS313B USB 的 PD和QC快充協議電壓誘騙控制器數據手冊
- 2.61 MB | 次下載 | 免費
- 7DS-HS2V H00 CN-V3
- 480.02 KB | 次下載 | 免費
- 8FS7203低壓降線性穩壓器數據手冊
- 1.67 MB | 次下載 | 免費
本月
- 1涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 2錦銳科技CA51F2 SDK開發包
- 24.06 MB | 43次下載 | 1 積分
- 3錦銳CA51F005 SDK開發包
- 19.47 MB | 19次下載 | 1 積分
- 4PCB的EMC設計指南
- 2.47 MB | 16次下載 | 1 積分
- 5HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 6蘋果iphone 11電路原理圖
- 4.98 MB | 7次下載 | 2 積分
- 7基礎模擬電子電路
- 3.80 MB | 5次下載 | 1 積分
- 8STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊
- 3.32 MB | 5次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81591次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論