當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀];* 文件名 : startup_stm32f10x_hd.s;* 庫版本 : V3.5.0;* 說明: 此文件為STM32F10x高密度設(shè)備的MDK工具鏈的啟動文件;* 該模塊執(zhí)行以下操作:;* -設(shè)置初始堆棧指針(SP);* -設(shè)置初始程序計數(shù)器(PC)為復(fù)位向量,并在

;* 文件名 : startup_stm32f10x_hd.s
;* 庫版本 : V3.5.0
;* 說明: 此文件為STM32F10x高密度設(shè)備的MDK工具鏈的啟動文件
;* 該模塊執(zhí)行以下操作:
;* -設(shè)置初始堆棧指針(SP)
;* -設(shè)置初始程序計數(shù)器(PC)為復(fù)位向量,并在執(zhí)行main函數(shù)前初始化系統(tǒng)時鐘
;* -設(shè)置向量表入口為異常事件的入口地址
;* -復(fù)位之后處理器為線程模式,優(yōu)先級為特權(quán)級,堆棧設(shè)置為MSP主堆棧
;*

Stack_Size EQU 0x00000200 ;定義堆棧的大小

;AREA 命令指示匯編器匯編一個新的代碼段或數(shù)據(jù)段。
;段是獨立的、指定的、不可見的代碼或數(shù)據(jù)塊,它們由鏈接器處理.
;段是獨立的、命名的、不可分割的代碼或數(shù)據(jù)序列。一個代碼段是生成一個應(yīng)用程序的最低要求

;默認情況下,ELF 段在四字節(jié)邊界上對齊。expression 可以擁有 0 到 31 的任何整數(shù)。
;段在 2expression 字節(jié)邊界上對齊
AREA STACK, NOINIT, READWRITE, ALIGN=3 ;堆棧段,未初始化,允許讀寫,8字節(jié)邊界對齊
; 說明: Cortex-M3的指令地址要求是字邊界對齊(4字節(jié));但是代碼段是8字節(jié)邊界對齊的

Stack_Mem SPACE Stack_Size ;分配堆??臻g,把首地址賦給Stack_Mem
__initial_sp ;初始化堆棧指針,指向堆棧頂.

; 此處有個一個問題討論,關(guān)于棧頂在RAM中所處位置問題,很多初學(xué)者一直以為是編譯器特意放在HEAP段之后是有意為之,并且認為這樣可以利用heap未分配空間來防止未知的棧溢出問題
; 這種理解是錯誤的,鏈接器并不會為棧的位置做特殊的處理,而且這樣做也并不會利用heap段,在此文件的最后對堆棧的初始化代碼中可以看出他們是兩個互相獨立的數(shù)據(jù)區(qū)。此處出現(xiàn)的現(xiàn)
; 象是因為MDK按數(shù)據(jù)段的字母順序鏈接數(shù)據(jù)段的地址的,所以此處造成了堆的地址在棧的前面的假象,不要竊以為是有某種特殊的約定。

; Heap Configuration
; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>

Heap_Size EQU 0x00000200 ;定義堆的大小

AREA HEAP, NOINIT, READWRITE, ALIGN=3 ;堆段,未初始化,允許讀寫,堆數(shù)據(jù)段8字節(jié)邊界對齊
__heap_base
Heap_Mem SPACE Heap_Size ;分配堆空間
__heap_limit ;與__heap_base配合限制堆的大小

PRESERVE8 ; 命令指定當前文件保持棧的八字節(jié)對齊
THUMB ; 指令集,THUMB 必須位于使用新語法的任何Thumb代碼之前

; EXPORT 命令聲明一個符號,可由鏈接器用于解釋各個目標和庫文件中的符號引用,相當于聲明了一個全局變量。 GLOBAL 于 EXPORT相同。
; 以下為向量表,在復(fù)位時被映射到FLASH的0地址
AREA RESET, DATA, READONLY ;復(fù)位段,只包含數(shù)據(jù),只讀
EXPORT __Vectors ;標號輸出,中斷向量表開始
EXPORT __Vectors_End ;中斷向量表結(jié)束
EXPORT __Vectors_Size ;中斷向量表大小

; DCD 命令分配一個或多個字的存儲器,在四個字節(jié)的邊界上對齊,并定義存儲器的運行時初值。
__Vectors DCD __initial_sp ; Top of Stack 棧頂指針,被放在向量表的開始,F(xiàn)LASH的0地址,復(fù)位后首先裝載棧頂指針
DCD Reset_Handler ; Reset Handler 復(fù)位異常,裝載完棧頂后,第一個執(zhí)行的,并且不返回。
DCD NMI_Handler ; NMI Handler 不可屏蔽中斷
DCD HardFault_Handler ; Hard Fault Handler 硬件錯誤中斷
DCD MemManage_Handler ; MPU Fault Handler 內(nèi)存管理錯誤中斷
DCD BusFault_Handler ; Bus Fault Handler 總線錯誤中斷,一般發(fā)生在數(shù)據(jù)訪問異常,比如fsmc訪問不當
DCD UsageFault_Handler ; Usage Fault Handler 用法錯誤中斷,一般是預(yù)取值,或者位置指令,數(shù)據(jù)處理等錯誤
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler 系統(tǒng)調(diào)用異常,主要是為了調(diào)用操作系統(tǒng)內(nèi)核服務(wù)
DCD DebugMon_Handler ; Debug Monitor Handler 調(diào)試監(jiān)視異常
DCD 0 ; Reserved
;DCD PendSV_Handler ; PendSV Handler 掛起異常,此處可以看見用作了uCOS-II的上下文切換異常,這是被推薦使用的,因為Cortex-M3會在異常發(fā)生時自動保存R0-R3,
; R12,R13(堆棧指針SP),R14(鏈接地址,也叫返回地址LR,在異常返回時使用),R15(程序計數(shù)器PC,為當前應(yīng)用程序+4)和中斷完成時自動回復(fù),
;我們只需保存R4-R11,大大減少了中斷響應(yīng)和上下文切換的時間。
;說明:此處涉及到一個中斷保存寄存器問題:因為在所有的運行模式下,未分組寄存器都指向同一個物理寄存器,他們未被系統(tǒng)用作特殊的用途,因此,在中斷或者異常處理進行模式轉(zhuǎn)換
; 時,由于不同模式(此處為"線程"和"特權(quán)")均使用相同的物理寄存器,可能會造成寄存器中數(shù)據(jù)的破壞。這也是常說的"關(guān)鍵代碼段"和"l臨界區(qū)"保護的原因。
;DCD SysTick_Handler ; SysTick Handler 滴答定時器,為操作系統(tǒng)內(nèi)核時鐘
DCD OS_CPU_PendSVHandler
DCD OS_CPU_SysTickHandler

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉