starup_stm32f10x_hd.s的作用
對于 103 系列,主
要是用其中 3 個啟動文件:
startup_stm32f10x_ld.s: ?適用于小容量 產品
startup_stm32f10x_md.s : 適用于中等容量產品
startup_stm32f10x_hd.s: ?適用于大容量產品
這里的容量是指 FLASH 的大小.判斷方法如下:
小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH
我們ALIENTEK STM32戰艦板,精英板以及mini板采用的STM32F103ZET6和stm32F103RCT6
芯片都屬于大容量產品,所以我們的啟動文件選擇 startup_stm32f10x_hd.s,對于中等容量芯片請
選擇 startup_stm32f10x_md.s 啟動文件,小容量芯片請選擇 startup_stm32f10x_ld.s。
啟動文件到底什么作用,其實我們可以打開啟動文件進去看看。啟動文件主要是進行堆棧
之類的初始化,中斷向量表(中斷處理的函數名已經起好了,不能自己另外起中斷處理名的,但中
斷處理函數體為空,自己寫函數體內容)以及中斷函數定義。啟動文件要引導進入 main 函數。Reset_Handler
中斷函數是唯一實現了的中斷處理函數,其他的中斷函數基本都是死循環。 Reset_handler 在我
們系統啟動的時候會調用,下面讓我們看看 Reset_handler 這段代碼:
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
這段代碼我也看不懂,反正就知道,這里面要引導進入 main 函數,同時在進入 main 函數之前,
首先要調用 SystemInit 系統初始化函數。
還有其他幾個文件 stm32f10x_it.c,stm32f10x_it.h 以及 stm32f10x_conf.h 等文件,這里就不
一一介紹。stm32f10x_it.c 里面是用來編寫中斷服務函數,中斷服務函數也可以隨意編寫在工程
里面的任意一個文件里面,個人覺得這個文件沒太大意義。
stm32f10x_conf.h 文件打開可以看到一堆的#include,這里你建立工程的時候,可以注釋掉一
些你不用的外設頭文件。這里相信大家一看就明白。
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的starup_stm32f10x_hd.s的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [js] 用js写一个方法检测浏览器是
- 下一篇: [vue-element] 你有二次封装