STM32啟動詳細流程之啟動檔案

2021-10-22 17:33:13 字數 1186 閱讀 9692

3.stm32啟動流程

4.最小啟動配置(加個雞腿)

可執行程式 -> cpu執行第一條使用者**

這個流程中著重講述的是hex檔案如何被燒寫到stm32內部的指定位址處。(燒寫到stm32中的可執行檔案不僅只有hex格式,還有axf、bin。針對不同格式的可執行檔案,用不同的工具進行燒寫)。

cpu執行第一條使用者** -> 呼叫__main函式

這裡需要注意一下,__main是c庫中的乙個函式,和main函式是有區別的!!!

上圖中的彙編關鍵字最好記住,因為比較常用。

關於stm32啟動檔案的描述,可以去看下我之前寫過的一篇部落格。

stm32之啟動檔案的詳解

在此基礎上,我們繼續深入一點。

stm32啟動檔案中使用dcd指令的目的是:達到4gb全範圍跳轉

ldr 指令只能跳到當前pc 4kb 範圍內,而b指令能跳轉到32mb範圍。

stm32啟動檔案中使用b . 語句的作用就是:防止程式跑飛

***:觸發了乙個未知中斷的時候會卡死在中斷服務函式中,以至於你幾乎都找不到!!!

注意:中斷服務函式全部都是在啟動檔案中已經定義好了,如果在外部檔案中定義中斷服務函式,名稱要和事先已經定義好的中斷服務函式的名稱一樣,函式名稱的不同代表著位址的不同,因為函式名稱本質就是位址!!!

stm32啟動檔案大致描述

注意:當程式編譯完成之後,sp棧頂指標就已經確定了。

stm32–code、ro-data、rw-data和zi-data

stm32啟動流程

注意:設定好sp,就可以執行使用者程式

最小啟動配置

STM32啟動流程

先闡述乙個問題,嵌入式應用程式以c語言為主,因此main函式成為程式執行的起點,但是我們忽略了乙個問題 mcu 微控制器 微控制器 上電之後,是如何尋找並執行main函式的呢?stm32晶元自帶的啟動方式有3種,通過設定boot1 boot0的引腳的高低電平即可選擇。系統儲存器啟動是將程式寫入到一塊...

linux開機啟動詳細流程

一 bios 加電自檢 當你按電源開關開機時,電腦會首先去啟動bios 基本輸入輸出系統 bios一般是整合在主機板上的.bios 的工作 1.檢測連線硬體,比如顯示卡,記憶體,磁碟等等,檢測的目的是以後把這些裝置資訊提供給作業系統 2.尋找啟動磁碟,每一種bios都會有開機啟動選單,可以在選單裡設...

stm32如何執行軟復位 STM32啟動檔案

我們日常使用的嵌入式應用程式開發中都是編寫c c 語言,我們平時編輯乙個工程的話,只用從main函式開始編輯,微控制器程式也是從這個函式開始進行執行的。但是微控制器上電後是如何尋找到並執行main函式的呢?我們其實都會在心裡有乙個答案 啟動檔案 還記得我們當初配置第乙個stm32工程的時候在工程中新...