STM32 啟動檔案功能簡述

2021-10-09 09:56:37 字數 1032 閱讀 4793

r8t6使用的md.s,中容量的arm晶元,大致的啟動內容如下:

startup_stm32f10x_hd.s 是乙個啟動檔案,裡面是使用組合語言寫好的基本程式,當stm32 晶元上電啟動的時候,受限會執行這裡的匯程式設計序,從而建立起來c 語言的執行環境,所以我們把這個檔案稱為啟動檔案。改檔案使用的彙編指令是 cortex-m3 核心支援的指令,可以參考《cortex-m3 權威指南中文》內指令集章節。

startup_stm32f10x_hd.s 檔案是由st官方提供的,該檔案可以從keil5 安裝目錄中找到,也可以從stv3.5庫裡面找到,找到該檔案後吧啟動檔案新增到工程裡面即可。不同型號的晶元以及不同編譯環境使用的彙編檔案是不一樣的,但功能相同。

在keilmdk4中只有stm32f10x.s檔案。

在所以stm32f10x.s並不能適用所有的stm32型號,這樣,我們就得對不同型號的stm32,選擇不同的啟動檔案。st給我們提供了3個啟動檔案,分別適用於不同容量的stm32晶元。他們是: 

startup_stm32f10x_ld.s

startup_stm32f10x_md.s

startup_stm32f10x_hd.s

其中,ld.s適用於小容量 產品;md.s適用於中等容量產品;hd適用於大容量產品;

這裡的容量是指flash的大小.判斷方法如下:

小容量:flash≤32k

中容量:64k≤flash≤128k

大容量:256k≤flash

我們開發板使用的是stm32f103rbt6,flash容量為128k,屬於中等容量產品,而stm32f10x.s剛剛好是滿足中等容量型號的啟動檔案,所以我們使用stm32f10x.s是不會有問題的,他相當於startup_stm32f10x_md.s。而如果你的是小容量或者大容量的stm32,則相應的選擇startup_stm32f10x_ld.s或startup_stm32f10x_hd.s即可。

這裡上傳這幾個啟動檔案。詳見附件

按照上面的解釋,最為普通的工程,stm32f10x.s檔案是夠用的,但是在複雜的工程中,還是建議st庫檔案的幾個啟動檔案。

STM32 啟動過程簡述

根據啟動模式分析的結論 1 通過boot引腳設定可以將中斷向量表定位於sram區,即起始位址為0x02000000,同時復位後pc指標位於0x02000000處 2 通過boot引腳設定可以將中斷向量表定位於flash區,即起始位址為0x08000000,同時復位後pc指標位於0x08000000處...

STM32 啟動檔案

先來看看啟動 中的偽操作和偽指令 equ 用於定義常量,相當於c中的巨集定義 如stack size equ 0x00000400 define stack size 0x00000400 align 位元組對齊方式 align 3 export 相當於宣告了乙個全域性變數 export vecto...

stm32啟動檔案

這是st提供的3個啟動檔案,分別適用於不同容量的stm32晶元。這三個檔案為 startup stm32f10x ld.s startup stm32f10x md.s startup stm32f10x hd.s 其中,ld.s適用於小容量 產品 md.s適用於中等容量產品 hd適用於大容量產品 ...