功能:
初始化堆疊指標sp;
初始化程式計數器指標 pc;
設定堆、棧的大小;
設定中斷向量表的入口位址;
配置外部 sram 作為資料儲存器(這個由使用者配置,一般的開發板可沒有外部
sram);
呼叫 systemini() 函式配置 stm32 的系統時鐘;
設定 c 庫的分支入口「__main」(最終用來呼叫 main 函式);
重要**段:
reset_handler proc
export reset_handler [weak]
import systeminit
import __main
ldr r0, =systeminit
blx r0
ldr r0, =__main
bx r0
endp
我們需要在外部定義乙個 systeminit 函式設定 stm32 的時鐘;stm32 上電後,會執行 systeminit 函式,最後執行我們 c 語言中的 main 函式。
根據stm32 的儲存分配先定義好各個暫存器的位址,把這些位址定義都統一寫在 stm32f4xx.h 檔案中
stm32工程需要哪些檔案
stm32比51要複雜一些兒,所以工程檔案可能要複雜一些。上圖由官方給出,可見乙個工程專案,需要有如下三個大類 cmsis files cortex microcontroller software inte ce standard cortex系列的微控制器介面標準檔案,這是arm公司提供的最底層...
stm32後生成編譯檔案大小探索之二
之前總結過編譯檔案大小的一些研究 總結起來是這樣的 微控制器 生產的編譯資訊中,包含了 code 資訊 ro data 唯讀資訊 程式中的指令 和常量 rw data 被初始化的變數 zi data 無需初始化的變數 我做了這麼乙個實驗,增加乙個很大的陣列,不初始化或者初始化為0 它會被分配到zi ...
人臉識別門禁專案總結(STM32部分)
大概乙個月前吧,因為學校要驗收實驗室的一些專案,所以老師就把這活給了我和我的小夥伴,小夥伴那邊主要搞得是樹莓派那邊,我這邊就是負責的就是32。因為學長提前都做好過,意思就是我們再浮現一下,順便學學,增加增加經驗。當時剛學完ucosiii,實戰是非常重要的,因此當時就把這活攬下來了。過程嘛,挺難受的,...