starup_stm32f10x_hd.s的作用
對(duì)于 103 系列,主
要是用其中 3 個(gè)啟動(dòng)文件:
startup_stm32f10x_ld.s: ?適用于小容量 產(chǎn)品
startup_stm32f10x_md.s : 適用于中等容量產(chǎn)品
startup_stm32f10x_hd.s: ?適用于大容量產(chǎn)品
這里的容量是指 FLASH 的大小.判斷方法如下:
小容量:FLASH≤32K
中容量:64K≤FLASH≤128K
大容量:256K≤FLASH
我們ALIENTEK STM32戰(zhàn)艦板,精英板以及mini板采用的STM32F103ZET6和stm32F103RCT6
芯片都屬于大容量產(chǎn)品,所以我們的啟動(dòng)文件選擇 startup_stm32f10x_hd.s,對(duì)于中等容量芯片請(qǐng)
選擇 startup_stm32f10x_md.s 啟動(dòng)文件,小容量芯片請(qǐng)選擇 startup_stm32f10x_ld.s。
啟動(dòng)文件到底什么作用,其實(shí)我們可以打開(kāi)啟動(dòng)文件進(jìn)去看看。啟動(dòng)文件主要是進(jìn)行堆棧
之類(lèi)的初始化,中斷向量表(中斷處理的函數(shù)名已經(jīng)起好了,不能自己另外起中斷處理名的,但中
斷處理函數(shù)體為空,自己寫(xiě)函數(shù)體內(nèi)容)以及中斷函數(shù)定義。啟動(dòng)文件要引導(dǎo)進(jìn)入 main 函數(shù)。Reset_Handler
中斷函數(shù)是唯一實(shí)現(xiàn)了的中斷處理函數(shù),其他的中斷函數(shù)基本都是死循環(huán)。 Reset_handler 在我
們系統(tǒng)啟動(dòng)的時(shí)候會(huì)調(diào)用,下面讓我們看看 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
這段代碼我也看不懂,反正就知道,這里面要引導(dǎo)進(jìn)入 main 函數(shù),同時(shí)在進(jìn)入 main 函數(shù)之前,
首先要調(diào)用 SystemInit 系統(tǒng)初始化函數(shù)。
還有其他幾個(gè)文件 stm32f10x_it.c,stm32f10x_it.h 以及 stm32f10x_conf.h 等文件,這里就不
一一介紹。stm32f10x_it.c 里面是用來(lái)編寫(xiě)中斷服務(wù)函數(shù),中斷服務(wù)函數(shù)也可以隨意編寫(xiě)在工程
里面的任意一個(gè)文件里面,個(gè)人覺(jué)得這個(gè)文件沒(méi)太大意義。
stm32f10x_conf.h 文件打開(kāi)可以看到一堆的#include,這里你建立工程的時(shí)候,可以注釋掉一
些你不用的外設(shè)頭文件。這里相信大家一看就明白。
?
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的starup_stm32f10x_hd.s的作用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [js] 用js写一个方法检测浏览器是
- 下一篇: 单片机lcm显示字符程序C语言,手把手教