日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]在STM32單片機的編程當中,中斷函數(shù)的名稱都是xxx_IRQHandler格式的。那當編譯程序的時候是怎么知道這是一個中斷函數(shù)的呢?每個中斷都是有入口地址的。程序在執(zhí)行過程中遇到中斷的時候,會先判斷這個中斷的類型,根據(jù)

在STM32單片機的編程當中,中斷函數(shù)的名稱都是xxx_IRQHandler格式的。那當編譯程序的時候是怎么知道這是一個中斷函數(shù)的呢?

每個中斷都是有入口地址的。程序在執(zhí)行過程中遇到中斷的時候,會先判斷這個中斷的類型,根據(jù)類型再到中斷向量表中查找,找到之后,根據(jù)表中指明的地址,程序就跳到該地址開始執(zhí)行代碼。

ST提供的固件庫當中,有提供一個stm32f10x_it.c文件,打開之后會發(fā)現(xiàn)里面放的都是些空函數(shù),但是名字都是“xxx_Handler()”格式,需要使用某個中斷的時候,在代碼中使能該中斷,并到這個文件中將中斷服務(wù)函數(shù)添加上,就可以了。

而這些名字就是一個個的中斷函數(shù)入口地址。在啟動代碼中便有這些定義。如下圖所示:

可以看到,里面定義了一個個名稱,這些名稱就是中斷函數(shù)入口的地址,用這些名稱來代替了具體的地址值。

其中DCD是一條數(shù)據(jù)定義偽指令,用于分配一片連續(xù)的字存儲單元并用指定的數(shù)據(jù)初始化。當配置好相應外設(shè)的控制寄存器中斷使能時,當發(fā)生中斷(異常)時,該異常被Cortex-M3內(nèi)核接受,對應的異常Handler就會執(zhí)行。而這個響應過程都是硬件來完成的,當然為了決定Handler的入口地址,Cortex-M3使用了“向量表查表機制”。startup_stm32f10x_hd.s啟動文件已經(jīng)為相應外設(shè)的中斷服務(wù)函數(shù)賦予了相應的地址。所以在異常發(fā)生后,CPU進入異常模式,同時程序計數(shù)器PC自動指向異常入口地址,進而執(zhí)行中斷服務(wù)函數(shù)中的應用。


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