不要再找啦,關(guān)于Cortex-Mx芯片的啟動(dòng)沒(méi)有比這里更清楚啦(可下載)
資料介紹
單片機(jī)在上電的時(shí)候會(huì)經(jīng)歷一個(gè)啟動(dòng)的流程,不管是你從手冊(cè)描述上看得見(jiàn)的,還是看不見(jiàn)的,亦或者你不知道還有這種操作的,這個(gè)啟動(dòng)都是客觀事實(shí)存在的,今天我們就用白話文來(lái)嘮一嘮 Cortex-Mx 系列的啟動(dòng)流程(此文章知識(shí)廣泛適用于 CPU 為 Cortex-Mx 系列的 MCU)

如上圖為 STM32F0 系列單片機(jī)系統(tǒng)存儲(chǔ)器的映射圖(其他系列型號(hào),映射圖會(huì)有區(qū)別,但流程還是一樣的),通常,當(dāng)處理器從復(fù)位中啟動(dòng)時(shí),它首先會(huì)訪問(wèn)位于 0x0000 0000 地址處的向量表,這個(gè)向量表是什么?從哪里來(lái)?跟程序員又有什么關(guān)系?明確的講這幾個(gè)問(wèn)題跟我們的啟動(dòng)文件是緊密相關(guān)的。啟動(dòng)文件就是對(duì)啟動(dòng)流程的“展現(xiàn)”,啟動(dòng)文件中包含了向量表(向量表中包含了堆棧指針地址、復(fù)位向量程序地址、以及系統(tǒng)中各類中斷函數(shù)的入口地址,簡(jiǎn)單點(diǎn)講就是單片機(jī)啟動(dòng)的時(shí)候得經(jīng)過(guò)這個(gè)向量表,執(zhí)行復(fù)位程序得經(jīng)過(guò)這個(gè)向量表,執(zhí)行中斷還得經(jīng)過(guò)向量表,從向量表中找中斷函數(shù)的入口地址)。當(dāng)然啟動(dòng)文件也是由程序員寫(xiě)的(只不過(guò)大多數(shù)由廠家的 Coder 代勞了)。下面我們一起來(lái)弄清楚 吧!

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