1.寫在前面
首先,你要知道STM32啟動文件中啟動流程,你就需要掌握一點(diǎn)匯編基礎(chǔ)知識。
匯編語言屬于機(jī)器語言,或者說低級語言,C語言屬于高級語言,所以,匯編和C語言在語法上差異很大。
如果你學(xué)底層開發(fā),匯編的一些基礎(chǔ)知識需要掌握。不需要精通,但需要看懂常見的匯編代碼。
2.說明
STM32的啟動文件與編譯器有關(guān),不同編譯器,它的啟動文件不同。
雖然啟動文件(匯編)代碼各有不同,但它們原理類似,都屬于匯編程序。
我們拿基于MDK-ARM的啟動文件來舉例,說一下要點(diǎn)內(nèi)容。
3.分配堆棧
在基于MDK的啟動文件開始,有一段匯編代碼是分配堆棧大小的。
這里重點(diǎn)知道堆棧數(shù)值大小就行。還有一段AREA(區(qū)域),表示分配一段堆棧數(shù)據(jù)段。
數(shù)值大小可以自己修改,也可以使用STM32CubeMX數(shù)值大小配置:
在IAR中,是通過工程配置堆棧大?。?/p>
4.向量表
相信大家都知道向量表,先看匯編代碼:
這個向量表就是對應(yīng)手冊中的那些內(nèi)容:
我們需要知道這個地方中的復(fù)位,程序上電之后,是跳到Reset_Handler這個位置。
5.執(zhí)行代碼
上面知道代碼是從Reset_Handler開始執(zhí)行,我們看Reset_Handler匯編代碼:
在啟動的時候,執(zhí)行了SystemInit這個函數(shù)。
之前標(biāo)準(zhǔn)外設(shè)庫在SystemInit這個函數(shù)初始化了系統(tǒng)時鐘,后面HAL庫單獨(dú)把那部分代碼提出來了。
執(zhí)行完SystemInit函數(shù),就跳轉(zhuǎn)到我們的main函數(shù)執(zhí)行了。
-
STM32
+關(guān)注
關(guān)注
2273文章
10926瀏覽量
357821 -
編譯器
+關(guān)注
關(guān)注
1文章
1642瀏覽量
49318 -
復(fù)位
+關(guān)注
關(guān)注
0文章
174瀏覽量
24280 -
啟動流程
+關(guān)注
關(guān)注
0文章
14瀏覽量
6504
發(fā)布評論請先 登錄
相關(guān)推薦
RS232串口連接方式及注意事項
RS232串口通信中常見問題及解決辦法
RS232串口通信協(xié)議詳解
VSCode中Markdown借助plantuml繪制流程圖
TI電池監(jiān)控器IC的高級電量監(jiān)測器固件流程圖
![TI電池監(jiān)控器IC的高級電量監(jiān)測器固件<b class='flag-5'>流程圖</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
快速實(shí)現(xiàn)C2000串口程序升級
![快速實(shí)現(xiàn)C2000<b class='flag-5'>串口</b>程序升級](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
集特推薦 雙網(wǎng)10串口飛騰FT2000商用臺式電腦主機(jī)
![集特推薦 雙網(wǎng)10<b class='flag-5'>串口</b>飛騰FT2000商用臺式電腦主機(jī)](https://file1.elecfans.com//web2/M00/FD/04/wKgZomaXewaAKv71AAEQ_XaHS7Q22.jpeg)
用esp32的串口和Stm32F407串口通訊,通過TJA轉(zhuǎn)CAN,結(jié)果esp32串口讀到的一直是自己發(fā)的數(shù)據(jù),為什么?
485串口可以用can協(xié)議嗎
用STM32做以太網(wǎng)口轉(zhuǎn)4串口單核能做嗎?
物通博聯(lián)485轉(zhuǎn)換網(wǎng)關(guān):實(shí)現(xiàn)設(shè)備485串口數(shù)據(jù)轉(zhuǎn)換為Modbus TCP協(xié)議
![物通博聯(lián)485轉(zhuǎn)換網(wǎng)關(guān):實(shí)現(xiàn)設(shè)備485<b class='flag-5'>串口</b>數(shù)據(jù)轉(zhuǎn)換為Modbus TCP協(xié)議](https://file.elecfans.com/web2/M00/52/70/pYYBAGLLyhqAVmYRAAbXfP1kjRI408.png)
評論