chapter_6_輸入輸出與中斷技術(shù)_第1頁
chapter_6_輸入輸出與中斷技術(shù)_第2頁
chapter_6_輸入輸出與中斷技術(shù)_第3頁
chapter_6_輸入輸出與中斷技術(shù)_第4頁
chapter_6_輸入輸出與中斷技術(shù)_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院12022-7-4微機(jī)原理與嵌入式系統(tǒng)基礎(chǔ)微機(jī)原理與嵌入式系統(tǒng)基礎(chǔ)西安郵電學(xué)院-計(jì)算機(jī)系QQ: 646938309Email: page2022-7-4西安郵電學(xué)院 計(jì)算機(jī)學(xué)院2第第6章章輸入輸入/輸出與中斷技術(shù)輸出與中斷技術(shù) page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院32022-7-4第6章 目錄6.1 計(jì)算機(jī)接口概述6.2 輸入輸出接口電路6.3 CPU與外設(shè)的數(shù)據(jù)傳輸控制方式 6.4 ARM中的GPIO 6.5 中斷技術(shù) 6.6 ARM中斷系統(tǒng)基礎(chǔ) page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院42022-7-4第6章 目錄6.1 計(jì)算機(jī)接口概述6.2 輸入輸出接口電路6.3 C

2、PU與外設(shè)的數(shù)據(jù)傳輸控制方式 6.4 ARM中的GPIO 6.5 中斷技術(shù) 6.6 ARM中斷系統(tǒng)基礎(chǔ) page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院52022-7-46.1 計(jì)算機(jī)接口概述n計(jì)算機(jī)硬件由控制器、運(yùn)算器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備等5部分組成 。n處理器的強(qiáng)大功能必須通過外部設(shè)備(簡稱外設(shè))才能得以呈現(xiàn) 。n計(jì)算機(jī)外設(shè)在接入到計(jì)算機(jī)系統(tǒng)時(shí)需要接口電路橋接-用于完成主機(jī)與物理外設(shè)的橋接與控制。n在本課程中所研討的“外設(shè)”是指外設(shè)接口,注重于工作原理研討。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院62022-7-4第6章 目錄6.1 計(jì)算機(jī)接口概述6.2 輸入輸出接口電路6.3 CPU與外設(shè)的數(shù)據(jù)傳輸控制

3、方式 6.4 ARM中的GPIO 6.5 中斷技術(shù) 6.6 ARM中斷系統(tǒng)基礎(chǔ) page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院72022-7-46.2 輸入輸出接口電路 計(jì)算機(jī)中的輸入輸出接口電路用于將物理外設(shè)連接入計(jì)算機(jī)系統(tǒng),在計(jì)算機(jī)系統(tǒng)中起著物理外設(shè)與計(jì)算機(jī)主機(jī)之間橋接、適配作用。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院82022-7-46.2.1 輸入輸出接口電路的基本功能與端口分類輸入輸出接口電路的基本功能與端口分類接口-具有物理連接的含義,物理外設(shè)通過接口電路接入到計(jì)算機(jī)。 接口電路-是實(shí)現(xiàn)接口的主要組成部分,用于將物理外設(shè)橋接到計(jì)算機(jī)系統(tǒng)總線。從CPU角度看到的外設(shè)實(shí)質(zhì)上是外設(shè)的接口電路,它是物理外設(shè)的

4、抽象,并不一定是具體的物理外設(shè)裝置,更具有原理代表性。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院92022-7-46.2.1 輸入輸出接口電路的基本功能與端口分類輸入輸出接口電路的基本功能與端口分類u狀態(tài)信息(輸入)- 用于標(biāo)示設(shè)備的狀態(tài)情況 。 u數(shù)據(jù)信息(輸入/輸出)- 要傳送的二進(jìn)制目標(biāo)數(shù)據(jù)。u控制信息(輸出)- 控制外設(shè)的工作方式與具體操作。 對(duì)應(yīng)于上述的三種信息,外設(shè)接口電路中的端口寄存器也分為了三類:狀態(tài)端口(寄存器)、數(shù)據(jù)端口(寄存器)和控制端口(寄存器)。 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院102022-7-46.2.1 輸入輸出接口電路的基本功能與端口分類輸入輸出接口電路的基本功能與端口

5、分類 I/O接口的典型結(jié)構(gòu)示意圖 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院112022-7-46.2.2 I/O端口的編址端口的編址 u 計(jì)算機(jī)硬件系統(tǒng)中可以含有多個(gè)I/O接口,每個(gè)I/O接口中又可以含有多個(gè)I/O端口(寄存器)。 u 端口寄存器在計(jì)算機(jī)系統(tǒng)中象存儲(chǔ)器單元一樣被編址,稱之為端口地址,處理器通過端口地址可對(duì)各個(gè)端口尋址訪問,實(shí)現(xiàn)對(duì)外設(shè)的訪問控制。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院122022-7-46.2.2 I/O端口的編址端口的編址 u統(tǒng)一編址方式-I/O端口與內(nèi)存單元統(tǒng)一編址在一個(gè)地址空間。只是分布在不同的地址空間區(qū)域。特點(diǎn),處理器無專用的I/O指令,無專用的I/O訪問控制管腳。 u

6、獨(dú)立編址方式 - I/O端口與內(nèi)存單元分別編址在I/O地址空間和內(nèi)存地址空間。特點(diǎn),處理器有專用的I/O指令,有專用的I/O訪問控制管腳。 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院132022-7-46.2.2 I/O端口的編址端口的編址 u 接口 和 端口是兩個(gè)不同的概念 。u 接口 -側(cè)重于物理連接;u 端口 - 側(cè)重于接口的內(nèi)部工作方式。u 接口由若干個(gè)端口加上相應(yīng)的控制電路構(gòu)成。u 每個(gè)端口都對(duì)應(yīng)與接口電路中的各個(gè)工作寄存器。 外設(shè)通過接口連接入計(jì)算機(jī)系統(tǒng),計(jì)算機(jī)通過端口訪問控制外設(shè)工作。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院142022-7-4第6章 目錄6.1 計(jì)算機(jī)接口概述6.2 輸入輸出接口

7、電路6.3 CPU與外設(shè)的數(shù)據(jù)傳輸控制方式 6.4 ARM中的GPIO 6.5 中斷技術(shù) 6.6 ARM中斷系統(tǒng)基礎(chǔ) page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院152022-7-46.3 CPU與外設(shè)的數(shù)據(jù)傳輸控制方式與外設(shè)的數(shù)據(jù)傳輸控制方式n 外設(shè)的多樣性使外設(shè)的屬性差異極大,需要不同的數(shù)據(jù)傳送控制方式。n 處理器與外設(shè)之間的數(shù)據(jù)傳送方式主要有:無條件數(shù)據(jù)訪問方式,狀態(tài)查詢方式數(shù)據(jù)訪問方式,中斷方式數(shù)據(jù)訪問方式和直接存儲(chǔ)器訪問(DMA)方式等幾種方式。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院162022-7-46.3.1 無條件數(shù)據(jù)訪問方式無條件數(shù)據(jù)訪問方式 u如:狀態(tài)開關(guān)(按鍵)、繼電器、數(shù)碼管、發(fā)光二極管

8、等設(shè)備,計(jì)算機(jī)可隨時(shí)訪問,而不需顧及其當(dāng)時(shí)的狀態(tài)。u 無條件外設(shè)-輸入設(shè)備總是準(zhǔn)備好向CPU提供數(shù)據(jù),輸出設(shè)備總是準(zhǔn)備好接收CPU送來的數(shù)據(jù)。u CPU對(duì)此類外設(shè)進(jìn)行輸入/輸出操作時(shí)無需考慮外設(shè)的狀態(tài),直接讀/寫數(shù)據(jù)端口即可 。u 這一類I/O設(shè)備的訪問控制最簡單 。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院172022-7-46.3.1 無條件數(shù)據(jù)訪問方式無條件數(shù)據(jù)訪問方式 u任何設(shè)備都不能長期占用系統(tǒng)總線;u輸入設(shè)備要經(jīng)過三態(tài)緩沖器相連到系統(tǒng)總線;u輸出設(shè)備要經(jīng)過數(shù)據(jù)鎖存器相連到系統(tǒng)總線;小思考:處理器的數(shù)據(jù)總線僅傳送操作數(shù),這個(gè)說法對(duì)嗎?答:不對(duì)!處理器運(yùn)行的指令碼也是通過數(shù)據(jù)總線從內(nèi)存加載到CP

9、U!page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院182022-7-46.3.1 無條件數(shù)據(jù)訪問方式無條件數(shù)據(jù)訪問方式 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院192022-7-46.3.1 無條件數(shù)據(jù)訪問方式無條件數(shù)據(jù)訪問方式 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院202022-7-46.3.2 狀態(tài)查詢數(shù)據(jù)訪問方式狀態(tài)查詢數(shù)據(jù)訪問方式 u有一些外設(shè),處理器在對(duì)其進(jìn)行訪問時(shí)需要關(guān)心其狀態(tài),只有狀態(tài)許可時(shí)方可對(duì)外設(shè)進(jìn)行訪問。如:AD轉(zhuǎn)換器、串行通信、打印機(jī)等,這類外設(shè)稱之為-條件訪問外設(shè)。u CPU對(duì)此類外設(shè)進(jìn)行輸入/輸出操作時(shí)需考慮外設(shè)的狀態(tài),只有外設(shè)處于準(zhǔn)備好狀態(tài)時(shí),方可訪問數(shù)據(jù)端口。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院

10、212022-7-46.3.2 狀態(tài)查詢數(shù)據(jù)訪問方式狀態(tài)查詢數(shù)據(jù)訪問方式 u 狀態(tài)查詢方式的原理:在執(zhí)行數(shù)據(jù)端口訪問指令前,要先查詢?cè)撛O(shè)備的狀態(tài),當(dāng)設(shè)備處于準(zhǔn)備好狀態(tài)時(shí),CPU才執(zhí)行對(duì)設(shè)備數(shù)據(jù)端口的輸入/輸出指令,與外設(shè)交換信息;否則,等待。 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院222022-7-46.3.2 狀態(tài)查詢數(shù)據(jù)訪問方式狀態(tài)查詢數(shù)據(jù)訪問方式 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院232022-7-46.3.2 狀態(tài)查詢數(shù)據(jù)訪問方式狀態(tài)查詢數(shù)據(jù)訪問方式 分析:外設(shè)速度比較慢,高速的CPU被迫查詢、停等;CPU的運(yùn)算能力被浪費(fèi)。改進(jìn)思路:將CPU查詢、停等改為由外設(shè)主動(dòng)上報(bào)狀態(tài)。page西安郵電學(xué)

11、院 計(jì)算機(jī)學(xué)院242022-7-46.3.3 中斷方式數(shù)據(jù)訪問中斷方式數(shù)據(jù)訪問 當(dāng)外設(shè)需要與CPU進(jìn)行信息交換時(shí),由外設(shè)主動(dòng)向CPU發(fā)出數(shù)據(jù)傳送請(qǐng)求信號(hào)(中斷申請(qǐng)),CPU響應(yīng)此請(qǐng)求信號(hào)后(中斷響應(yīng)),暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行該外設(shè)的數(shù)據(jù)輸入/輸出操作程序(中斷服務(wù)程序-ISR),外設(shè)數(shù)據(jù)端口訪問后,CPU再繼續(xù)執(zhí)行被暫停的程序(中斷返回)。備注:慢速的外設(shè)與高速的CPU并行工作,充分發(fā)揮CPU的處理能力。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院252022-7-46.3.3 中斷方式數(shù)據(jù)訪問中斷方式數(shù)據(jù)訪問 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院262022-7-4第6章 目錄6.1 計(jì)算機(jī)接口概述6

12、.2 輸入輸出接口電路6.3 CPU與外設(shè)的數(shù)據(jù)傳輸控制方式 6.4 ARM中的GPIO 6.5 中斷技術(shù) 6.6 ARM中斷系統(tǒng)基礎(chǔ) page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院272022-7-46.4 ARM中的中的GPIO6.4.1 概述 GPIO(General Purpose Input/Output ports-通用輸入/輸出端口)是ARM系列芯片中的基本資源,用于二值化數(shù)據(jù)(數(shù)字電路的0/1)的輸入和輸出。u 測(cè)取輸入GPIO管腳的 高/低 電平狀態(tài);u 在輸出GPIO管腳上輸出 高/低 電平。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院282022-7-46.4.1 概述ARM芯片GPIO管腳的輸入

13、/輸出應(yīng)用 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院292022-7-46.4.1 概述u ARM芯片的GPIO引腳可分別設(shè)置為輸入屬性或輸出屬性。u GPIO用于將外部裝置連接到計(jì)算機(jī)系統(tǒng)。u設(shè)置為輸入屬性的GPIO對(duì)輸入的高低電平數(shù)據(jù)起著選通、隔離的作用。u 設(shè)置為輸出屬性的GPIO對(duì)輸出數(shù)據(jù)起著鎖存的作用。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院302022-7-46.4.1 概述u LPC2000系列ARM芯片的GPIO資源:在芯片復(fù)位后,所有GPIO口默認(rèn)為輸入狀態(tài)。以端口(32bit字)為單位,對(duì)GPIO端口進(jìn)行訪問;可以獨(dú)立控制每位GPIO口的方向?qū)傩裕ㄝ斎牖蜉敵觯?;可以?dú)立控制每輸出位GPIO

14、口的輸出狀態(tài)(1/0);不同系列的芯片具有不同數(shù)量的GPIO page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院312022-7-46.4.2 GPIO原理及端口寄存器說明對(duì)于編程者而言,計(jì)算機(jī)中的各種資源都可被抽象成 “寄存器” 組;LPC2000系列芯片的每個(gè) GPIO 組件可抽象為5個(gè)32位的寄存器: PINSELx、IOxDIR、IOxSET、IOxCLR和IOxPIN uARM芯片GPIO資源概述:page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院322022-7-46.4.2 GPIO原理及端口寄存器說明uGPIO寄存器模型原理 :page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院332022-7-46.4.2 GPIO原理及端口寄存

15、器說明uGPIO相關(guān)寄存器說明 :序號(hào)序號(hào)寄存器名稱寄存器名稱說說 明明訪問訪問屬性屬性復(fù)位復(fù)位默認(rèn)值默認(rèn)值1PINSELx管腳功能選擇寄存器;R/W0 x002IOxDIR輸入/輸出方向選擇寄存器;R/W0 x003IOxSET輸出1控制寄存器;寫10 x004IOxCLR輸出0控制寄存器;寫10 x005IOxPIN管腳狀態(tài)輸入寄存器;RNApage西安郵電學(xué)院 計(jì)算機(jī)學(xué)院342022-7-46.4.2 GPIO原理及端口寄存器說明uGPIO相關(guān)寄存器說明 :1、PINSELx :用于編碼選擇對(duì)應(yīng)管腳的功能;32bit 寄存器,每 2bit 為一組,用于控制(選擇)對(duì)應(yīng)引腳的功能,00 -

16、 GPIO功能; 復(fù)位默認(rèn)值:0 x0000 0000; 備注:詳見7.3小節(jié)管腳鏈接模塊 。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院352022-7-46.4.2 GPIO原理及端口寄存器說明uGPIO相關(guān)寄存器說明 :2、IOxDIR :設(shè)置GPIO管腳輸入/輸出屬性;32bit 寄存器,每 1bit 為一組,用于控制(選擇)對(duì)應(yīng)引腳的輸入、輸出屬性;1-輸出,0-輸入 ; 復(fù)位默認(rèn)值:0 x0000 0000;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院362022-7-46.4.2 GPIO原理及端口寄存器說明uGPIO相關(guān)寄存器說明 :3、IOxSET :輸出高電平(1)控制寄存器 ;32bit 寄存器

17、,每 1bit 為一組,用于控制(選擇)對(duì)應(yīng)引腳的輸出高電平;當(dāng)管腳設(shè)置為GPIO功能、輸出屬性時(shí),向本寄存器某些位寫1,對(duì)應(yīng)的管腳將輸出高電平;該寄存器寫0無效 ; 復(fù)位默認(rèn)值:0 x0000 0000;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院372022-7-46.4.2 GPIO原理及端口寄存器說明uGPIO相關(guān)寄存器說明 :4、IOxCLR :輸出低電平(0)控制寄存器 ;32bit 寄存器,每 1bit 為一組,用于控制(選擇)對(duì)應(yīng)引腳的輸出低電平;當(dāng)管腳設(shè)置為GPIO功能、輸出屬性時(shí),向本寄存器某些位寫1,對(duì)應(yīng)的管腳將輸出低電平;該寄存器寫0無效 ; 復(fù)位默認(rèn)值:0 x0000 0000;

18、page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院382022-7-46.4.2 GPIO原理及端口寄存器說明uGPIO相關(guān)寄存器說明 :5、IOxPIN :輸出低電平(0)控制寄存器 ;32bit 寄存器,只讀;當(dāng)管腳設(shè)置為GPIO功能、輸入屬性時(shí),每 1bit 對(duì)應(yīng)反映相應(yīng)引腳的電平高低狀態(tài)(1/0);page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院392022-7-46.4.2 GPIO原理及端口寄存器說明uLPC2000系列器件GPIO資源:端口號(hào)(Px)不同芯片所具有的GPIO口LPC2114 / 2124LPC2131/2132/2134/2136/2138LPC2220 / 2210 / 2212 / 2214P

19、0P0.0P0.25、P0.27P0.30P0.0p0.23、P0.24p0.31P0.0P0.25、P0.27P0.30P1P1.16P1.31P1.16P1.31P1.0p1.1、P1.16P1.31P2NoNoP2.0P2.31P3NoNoP3.0P3.31最多可用最多可用GPIOGPIO引腳數(shù)量引腳數(shù)量4647112page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院402022-7-46.4.3 GPIO應(yīng)用舉例要求:兩個(gè)按鍵K1、K2分別用于控制發(fā)光二極管LED和蜂鳴器Beep;有K1鍵按下,則LED點(diǎn)亮,K2鍵按下則Beep鳴響,反之熄滅、靜音。 GPIO資源分配表 序號(hào)引腳屬性用途1P0.0InK

20、1按鍵2P0.1InK2按鍵3P0.7OutBeep,1鳴4P0.8OutLED,1亮page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院412022-7-46.4.3 GPIO應(yīng)用舉例硬件原理圖page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院422022-7-46.4.3 GPIO應(yīng)用舉例-代碼清單#define K1 1 0 / K1按鍵連接與P0.0管腳, K1按下時(shí)P0.0為低電平#define K2 1 1 / K2按鍵連接與P0.1管腳, K2按下時(shí)P0.1為低電平#define BEEP 1 7 / P0.7控制蜂鳴器,高電平蜂鳴#define LED 1 0; dly-)for (i=0; i50000; i+)

21、;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院432022-7-46.4.3 GPIO應(yīng)用舉例-代碼清單/* 函數(shù)名稱 :main()* 函數(shù)功能 :有K1鍵按下,則LED點(diǎn)亮,K2鍵按下則Beep鳴響,* 反之熄滅、靜音。*/int main (void) PINSEL0 = 0 x00000000; / P015:0管腳用做GPIO功能 IO0DIR = IO0DIR &( K1); / 設(shè)置K1控制口為輸入 IO0DIR = IO0DIR &( K2); / 設(shè)置K2控制口為輸入 IO0DIR = IO0DIR | BEEP; / 設(shè)置BEEP控制口為輸出 IO0DIR = IO0D

22、IR | LED;/ 設(shè)置LED控制口為輸出 IO0CLR = IO0CLR | BEEP | LED; / BEEP、LED 輸出低電平page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院442022-7-46.4.3 GPIO應(yīng)用舉例-代碼清單while (1) if (IO0PIN & K1) = = 0)IO0SET = LED; / 如果K1按下,LED點(diǎn)亮 else IO0CLR = LED; / 松開則熄滅 if (IO0PIN & K2) = = 0)IO0SET = BEEP; / 如果K2按下,蜂鳴器鳴叫 else IO0CLR = BEEP;/ 松開則靜音DelayNS(50

23、);/ 延時(shí) 50 個(gè)時(shí)間單位 return 0;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院452022-7-46.4.5 ARM中的GPIO應(yīng)用小節(jié)uARM器件編程注意事項(xiàng):1、深入研討相關(guān)寄存器的功用,理解其底層原理;2、對(duì)于寄存器“寫”操作,要求使用:“讀修改寫”方式 完成。目的:寄存器的寫操作,不要影響其它位的數(shù)據(jù)。 uGPIO應(yīng)用編程注意事項(xiàng):1、 IOxDIR、IOxSET、IOxCLR和IOxPIN只有在PINSELx選擇為GPIO功能時(shí)有效;2、 IOxSET、IOxCLR只有在IOxDIR選擇為輸出時(shí)有意義。 page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院462022-7-4第6章 目錄6.1 計(jì)算

24、機(jī)接口概述6.2 輸入輸出接口電路6.3 CPU與外設(shè)的數(shù)據(jù)傳輸控制方式 6.4 ARM中的GPIO 6.5 中斷技術(shù) 6.6 ARM中斷系統(tǒng)基礎(chǔ) page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院472022-7-46.5 中斷技術(shù)日常生活中的例子:讀書-接聽電話-接待來訪 6.5.1 基本概念page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院482022-7-4計(jì)算機(jī)中的中斷 - 在CPU執(zhí)行程序過程中,一些急迫事件(中斷申請(qǐng)),引起CPU暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行該事件的特定處理程序(中斷服務(wù)程序-ISR),執(zhí)行完畢后,CPU再返回到被暫停的程序繼續(xù)執(zhí)行。 6.5.1 基本概念page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院492022

25、-7-4uIO操作 - 高速的CPU訪問慢速的外設(shè);u實(shí)時(shí)處理 - 導(dǎo)彈飛行控制等;u程序運(yùn)行中的出錯(cuò)處理 - 除數(shù)為0,存儲(chǔ)器訪問異常等;u操作系統(tǒng)功能調(diào)用; 6.5.1 基本概念 - 計(jì)算機(jī)中斷的基本應(yīng)用page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院502022-7-46.5.1 基本概念 -中斷技術(shù)常用術(shù)語:u中斷源 - 需要CPU處理的事件源;u中斷申請(qǐng) - 中斷源向CPU方向發(fā)出的請(qǐng)求處理信號(hào);u斷點(diǎn) - 主程序被打斷處的指針;u中斷服務(wù)程序(ISR)- 中斷事件的功能服務(wù)程序;u中斷響應(yīng) - CPU敏感并進(jìn)入到ISR的一系列動(dòng)作;u中斷返回 - CPU返回被中斷主程序斷點(diǎn)處繼續(xù)執(zhí)行主程序的一系列

26、動(dòng)作;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院512022-7-46.5.1 基本概念 -中斷技術(shù)常用術(shù)語:u中斷技術(shù) - 中斷及返回的軟、硬件實(shí)現(xiàn)技術(shù);u中斷系統(tǒng) -中斷及返回的軟、硬件實(shí)現(xiàn)電路與代碼;u中斷向量- 中斷服務(wù)程序(ISR)的入口地址;u中斷現(xiàn)場- CPU響應(yīng)中斷離開主程序時(shí),CPU的相關(guān)寄存器數(shù)據(jù)情況。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院522022-7-46.5.1 基本概念 -計(jì)算機(jī)中的中斷技術(shù)應(yīng)用:u引入中斷的最初目的是為能更有效地處理系統(tǒng)中的輸入輸出,提高系統(tǒng)的整體性能;u計(jì)算機(jī)中的大多數(shù)設(shè)備都支持中斷方式數(shù)據(jù)傳送;如:打印機(jī)、網(wǎng)卡、顯卡、聲卡、硬盤光驅(qū)等 。u隨著計(jì)算機(jī)應(yīng)用的發(fā)

27、展,中斷技術(shù)也不再局限于IO處理。如:出錯(cuò)處理、軟中斷等。u從中斷概念的原本含義而言,中斷是一個(gè)異步的事件 。軟中斷則是程序同步處理,主要應(yīng)用于編寫操作系統(tǒng)。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院532022-7-46.5.2 中斷系統(tǒng)的功能中斷技術(shù)重要而復(fù)雜,由計(jì)算機(jī)的軟硬件共同完成 。不同計(jì)算機(jī)中的中斷系統(tǒng)也不盡相同。一般都具備如下基本功能: 1.中斷源的分別屏蔽控制-戶可以通過軟件分別地控制各個(gè)中斷源可否申請(qǐng)中斷 ;2.中斷源優(yōu)先級(jí)的設(shè)置與管理 -戶可以通過軟件分別地安排各中斷源的優(yōu)先級(jí);優(yōu)先級(jí)排隊(duì)電路協(xié)助將當(dāng)前最高優(yōu)先級(jí)的中斷申請(qǐng)送向處理器 。備注:中斷系統(tǒng)優(yōu)先級(jí) 有兩層含義:中斷事件同時(shí)發(fā)

28、生時(shí),CPU相應(yīng)誰;CPU正在執(zhí)行ISR過程中,又有中斷事件,CPU如何處理。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院542022-7-46.5.2 中斷系統(tǒng)的功能中斷源的分別屏蔽控制-原理示意圖page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院552022-7-46.5.2 中斷系統(tǒng)的功能中斷源優(yōu)先級(jí)的設(shè)置與管理-原理示意圖page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院562022-7-46.5.2 中斷系統(tǒng)的功能3. 中斷向量的設(shè)置與傳遞-中斷系統(tǒng)在向 CPU 發(fā)出中斷請(qǐng)求的同時(shí),將對(duì)應(yīng)的 ISR 入口地址相關(guān)信息發(fā)送CPU;4. 斷點(diǎn)與現(xiàn)場保護(hù)- 為保障中斷服務(wù)完成后能正確地返回并繼續(xù)主程序的運(yùn)行,CPU在響應(yīng)中斷時(shí),系統(tǒng)要記

29、錄下來被中斷程序的斷點(diǎn)(即主程序中下一條待執(zhí)行的指令位置)和保護(hù)好當(dāng)時(shí)的CPU工作現(xiàn)場。一般包含:PC、PSW和運(yùn)算數(shù)據(jù)寄存器等。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院572022-7-46.5.3 中斷處理過程1、中斷請(qǐng)求、中斷請(qǐng)求 中斷處理過程一般包括以下五個(gè)步驟:中斷請(qǐng)求、中斷響應(yīng)、斷點(diǎn)保護(hù)、中斷處理和中斷返回。u物理事件轉(zhuǎn)換成一個(gè)電信號(hào)作為事件請(qǐng)求處理的申請(qǐng) (信號(hào)形式:高低電平、上下沿)。u中斷處理過程中,首先要有中斷請(qǐng)求(中斷申請(qǐng))。u該信號(hào)可被屏蔽控制。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院582022-7-46.5.3 中斷處理過程2、中斷響應(yīng)、中斷響應(yīng)(軟件設(shè)置,硬件自動(dòng)工作)CPU敏感

30、并進(jìn)入到ISR的一系列動(dòng)作;uCPU總是在每條指令執(zhí)行的最后一個(gè)時(shí)鐘周期檢測(cè)有無中斷請(qǐng)求,若有中斷申請(qǐng)則對(duì)其進(jìn)行響應(yīng)。u中斷響應(yīng)的同時(shí),中斷系統(tǒng)自動(dòng)屏蔽控制,以保證中斷邏輯的正確性。u中斷響應(yīng)還要獲得相應(yīng)的中斷向量,找到對(duì)應(yīng)的ISR并運(yùn)行它。一般有兩種方式:非向量中斷方式和向量中斷方式。u不同的中斷系統(tǒng),中斷響應(yīng)的具體操作差別較大,基本原理相似。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院592022-7-46.5.3 中斷處理過程3、斷點(diǎn)保護(hù)、斷點(diǎn)保護(hù)(硬件自動(dòng)工作)保護(hù)斷點(diǎn),保障ISR能返回到主程序的斷點(diǎn)處繼續(xù)運(yùn)行;u斷點(diǎn)保護(hù) - 主程序被打斷時(shí)的 PC 當(dāng)前值備份。不同的系統(tǒng)中,保護(hù)的方法不一樣:x

31、86將PC值入堆棧,ARM將PC值保護(hù)到LR。此操作都是由硬件自動(dòng)完成。uPSW-程序狀態(tài)字的保護(hù);不同的系統(tǒng)中,保護(hù)的方法不一樣:x86需要軟件方式將PSW值入堆棧,ARM中CPSR硬件自動(dòng)保護(hù)到SPSR。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院602022-7-46.5.3 中斷處理過程4、中斷處理、中斷處理(軟件編程)保護(hù)CPU數(shù)據(jù)現(xiàn)場,事件業(yè)務(wù)處理,恢復(fù)CPU數(shù)據(jù)現(xiàn)場;uCPU數(shù)據(jù)現(xiàn)場保護(hù)- ISR運(yùn)行中用到的數(shù)據(jù)寄存器要先保護(hù)后使用,以保證返回時(shí)主程序的中間結(jié)果不被影響;一般通過入堆棧實(shí)現(xiàn),也有些場合通過切換CPU的寄存器組實(shí)現(xiàn);uPSW-程序狀態(tài)字的保護(hù);不同的系統(tǒng)中,保護(hù)的方法不一樣;u

32、事件處理代碼完成對(duì)應(yīng)的事件服務(wù)功能;u恢復(fù)CPU數(shù)據(jù)現(xiàn)場-將保護(hù)數(shù)據(jù)原樣恢復(fù)。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院612022-7-46.5.3 中斷處理過程5、中斷返回、中斷返回(軟件編程) 執(zhí)行完ISR后,要返回到原先被中斷的主程序的斷點(diǎn)處繼續(xù)運(yùn)行;u斷點(diǎn)保護(hù)的逆過程,使用之前保護(hù)的PC值,重置PC;u不同的計(jì)算機(jī)有不同的中斷返回方法;x86使用專用的中斷返回指令(reti),ARM則是使用LR的值重置PC。問題:CPU中的PC寄存器的功能?答:CPU中的PC寄存器也稱為程序計(jì)數(shù)器,處理器總是按照PC的指向完成取指、執(zhí)行,并以此運(yùn)行程序;PC指向哪里,CPU就運(yùn)行到哪里;控制了PC就控制了處理

33、器的執(zhí)行流向。PC是處理器中的一個(gè)極重要的工作寄存器。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院622022-7-46.5.3 中斷處理過程-小節(jié)page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院632022-7-4第6章 目錄6.1 計(jì)算機(jī)接口概述6.2 輸入輸出接口電路6.3 CPU與外設(shè)的數(shù)據(jù)傳輸控制方式 6.4 ARM中的GPIO 6.5 中斷技術(shù) 6.6 ARM中斷系統(tǒng)基礎(chǔ) page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院642022-7-46.6 ARM中斷系統(tǒng)基礎(chǔ) 前面我們講解了中斷技術(shù)的一般原理,下面我們來看看在ARM微控器中是如何實(shí)現(xiàn)中斷技術(shù)的 - ARM中斷系統(tǒng)。ARM中斷系統(tǒng)功能強(qiáng),也比較復(fù)雜;我們逐步學(xué)習(xí)。在此,

34、我們僅以外中斷為例介紹ARM中斷的處理機(jī)制。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院652022-7-46.6.1 ARM中的中斷源中斷源 - 需要CPU處理的事件源;ARM系列微控制器為了滿足多方面的應(yīng)用需求,在器件中集成了多種常用資源,它們多支持中斷方式服務(wù)。常見的中斷源有:WDT(看門狗)、Timer(定時(shí)計(jì)數(shù)器)、PWM(脈寬調(diào)制器)、UART(通用異步收發(fā)器)、I2C(I2C接口)、SPI(SPI接口)、RTC(實(shí)時(shí)時(shí)鐘)、A/D(模數(shù)轉(zhuǎn)換器)、EINT(外中斷)等。用戶可以依據(jù)自己的資源需要,選取一款性價(jià)比較好的器件應(yīng)用到自己的應(yīng)用設(shè)計(jì)中。 備注:上述中斷源都支持查詢方式服務(wù);page西安

35、郵電學(xué)院 計(jì)算機(jī)學(xué)院662022-7-46.6.2 ARM中的向量中斷控制器向量中斷 - 即要向CPU發(fā)出中斷請(qǐng)求,同時(shí)還要給出ISR入口相關(guān)參數(shù);向量中斷控制器(VIC-Vector Interrupt Controller) 是中斷源與處理器連接的橋梁, 是ARM中斷系統(tǒng)的主要硬件構(gòu)成部分。 通過對(duì)VIC編程可對(duì)ARM器件的各個(gè)中斷源進(jìn)行中斷屏蔽控制、中斷優(yōu)先級(jí)控制、中斷分類控制、中斷向量傳遞、狀態(tài)查詢等。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院672022-7-46.6.2 ARM中的向量中斷控制器ARM的VIC原理示意圖page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院682022-7-46.6.2 ARM中的

36、向量中斷控制器ARM技術(shù)中的中斷和異常 :中斷和異常是兩個(gè)不同的概念;ARM技術(shù)中,將所有能導(dǎo)致處理器打斷程序正常運(yùn)行的事件都?xì)w為異常;例如復(fù)位異常。在ARM中包含有7種異常:復(fù)位異常、SWI異常(軟中斷異常)、未定義指令異常、數(shù)據(jù)中止異常、指令中止異常、IRQ異常和FIQ異常。 中斷 是 異常 的兩個(gè)特例( IRQ異常、 FIQ異常);在ARM中,所有外設(shè)導(dǎo)致的異常都被處理成IRQ或FIQ兩種異常之一 ;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院692022-7-46.6.2 ARM中的向量中斷控制器習(xí)慣上將以IRQ異常方式傳遞、響應(yīng)的中斷稱之為“IRQ中斷”;以FIQ異常方式傳遞、響應(yīng)的中斷稱之為“

37、FIQ中斷”。 IRQ中斷又根據(jù)中斷服務(wù)程序入口地址的定位方式,被進(jìn)一步劃分為向量IRQ中斷和非向量IRQ中斷。中斷page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院702022-7-46.6.3 ARM的中斷響應(yīng)過程ARM的FIQ中斷、IRQ中斷是ARM的FIQ和IRQ兩種異常的特例,ARM使用對(duì)“異?!表憫?yīng)處理的方法響應(yīng)處理FIQ、IRQ中斷。FIQ異常響應(yīng)的服務(wù)入口地址固定為:0 x0000 001C; IRQ異常響應(yīng)的服務(wù)入口地址固定為:0 x0000 0018;通常系統(tǒng)中僅安排一個(gè)FIQ中斷源;因此, FIQ異常響應(yīng)的服務(wù)入口地址就是“FIQ_ISR”入口地址;IRQ中斷一般要對(duì)應(yīng)多個(gè)中斷源,IRQ_

38、ISR入口地址處理需要特殊處理;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院712022-7-46.6.3 ARM的中斷響應(yīng)過程ARM啟動(dòng)代碼的異常向量表部分:0 x00 LDR PC, ResetAddr ;跳轉(zhuǎn)到ResetAddr單元0 x04 LDR PC, UndefinedAddr0 x08 LDR PC, SWI_Addr0 x0C LDR PC, PrefetchAddr0 x10 LDR PC, DataAbortAddr0 x14 DCD 0 xb9205f80 ; 用戶代碼有效性檢查碼0 x18 LDR PC, PC, #-0 xff0 ; PC (PC) 0 xff00 x1C LD

39、R PC, FIQ_Addr 地址 指令 注釋備注:修改PC實(shí)質(zhì)上就是跳轉(zhuǎn)。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院722022-7-46.6.3 ARM的中斷響應(yīng)過程ARM啟動(dòng)代碼的異常向量表部分:0 x18 LDR PC, PC, #-0 xff0 ; PC (PC) 0 xff00 x1C LDR PC, FIQ_Addr 地址 指令 注釋IRQ異常入口指令 LDR PC, PC,#-0 xff0 執(zhí)行的效果分析:1、這條指令的地址是 0 x18,執(zhí)行該指令時(shí) PC=0 x20;2、執(zhí)行的結(jié)果為 PC=0 x20 0 xff0 = 0 xffff f030;3、 0 xffff f030 恰是

40、VICVectAddr 寄存器的地址;結(jié)論:ARM處理器響應(yīng)IRQ異常時(shí),固定按VICVectAddr寄存器間接轉(zhuǎn)移!page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院732022-7-46.6.3 ARM的中斷響應(yīng)過程ARM處理器響應(yīng)IRQ異常時(shí),固定按VICVectAddr寄存器間接轉(zhuǎn)移。在ARM中有一套裝置(VIC),它對(duì)各中斷源進(jìn)行管理,在申請(qǐng)中斷的同時(shí),自動(dòng)地將該中斷源對(duì)應(yīng)的 “ISR向量” 傳送到了 VICVectAddr 寄存器。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院742022-7-46.6.4 ARM的中斷返回在處理完中斷后,要從ISR返回到主程序斷點(diǎn)處繼續(xù)執(zhí)行。 有兩個(gè)關(guān)鍵內(nèi)容:1、斷點(diǎn)的精確定位

41、;2、斷點(diǎn)處的處理器工作現(xiàn)場;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院752022-7-46.6.4 ARM的中斷返回回憶 ARM 響應(yīng) IRQ、FIQ異常的過程: 1、斷點(diǎn)的精確定位;ARM處理器響應(yīng)IRQ中斷、FIQ中斷時(shí),硬件自動(dòng)完成當(dāng)前PC值到LR_irq(或LR_fiq)寄存器的備份,CPSR寄存器值到SPSR_irq(或SPSR_fiq)寄存器的備份。需要進(jìn)行返回調(diào)整:PC = LR#0 x04;使用指令:SUBS PC , R14 , #4 返回主程序。2、斷點(diǎn)處的處理器工作現(xiàn)場;(CPSR、R0R12)page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院762022-7-46.6.5 ARM的外中斷ARM

42、系統(tǒng)的外中斷資源主要用于其他外部隨機(jī)事件到系統(tǒng)的引入;當(dāng)這些事件發(fā)生時(shí),外部其他電路將對(duì)應(yīng)的物理事件轉(zhuǎn)換成電信號(hào),處理器能及時(shí)響應(yīng)、處理這些事件。ARM的C是通過管腳(EINTx)輸入符合要求的信號(hào)而觸發(fā)的中斷 。信號(hào)方式有 4種,用戶可編程約定:平/沿信號(hào)方式ARM外部中斷電平高電平低電平邊沿上升沿下降沿page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院772022-7-46.6.5 ARM的外中斷-信號(hào)方式 應(yīng)用中的注意事項(xiàng)1、邊沿有效外中斷 2、電平有效外中斷 要注意EINT信號(hào)的清除;保證每次中斷,響應(yīng)且僅響應(yīng)一次。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院782022-7-46.6.5 ARM的外中斷-相關(guān)寄存

43、器硬件系統(tǒng)使用5個(gè)寄存器 -用于外中斷控制。這 5個(gè) 寄存器構(gòu)成了ARM外中斷資源的系統(tǒng)(編程、控制)模型。寄存器名物理地址功能說明PINSEL00 xE002C000管腳功能選擇寄存器0;(關(guān)于“管腳多功能”選用知識(shí)參見7.5章節(jié)-管腳連接模塊)EXTINT0 xE01FC140外部中斷標(biāo)志寄存器;EINT管腳上的有效信號(hào)對(duì)應(yīng)地置位本寄存器的相關(guān)位,指示有某EINT中斷申請(qǐng)。EXTWAKE0 xE01FC144外部中斷喚醒寄存器;(此功能暫不討論)EXTMODE0 xE01FC148外部中斷方式寄存器;控制每個(gè)管腳的觸發(fā)信號(hào)方式采用“邊沿”或“電平”。EXTPOLAR0 xE01FC14C外

44、部中斷極性寄存器;控制EINT管腳的哪種電平或邊沿來產(chǎn)生中斷。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院792022-7-46.6.5 ARM的外中斷-相關(guān)寄存器uEXTINT - 外部中斷標(biāo)志寄存器 比特EINT3:0分別用于標(biāo)示對(duì)應(yīng)的4個(gè)中斷輸入;當(dāng)對(duì)應(yīng)的輸入端有有效輸入信號(hào)時(shí),相應(yīng)的比特置1,通過VIC向處理器申請(qǐng)中斷;向EINT3:0按位寫入1清零對(duì)應(yīng)位。 建議 “讀修改寫” 方式操作 EXTINT寄存器 ;注意:電平方式的EINT;清0時(shí)不要影響其它位。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院802022-7-46.6.5 ARM的外中斷-相關(guān)寄存器uEXTMODE - 外部中斷方式寄存器EXTMOD

45、E3:0位分別用來選擇對(duì)應(yīng)的EINT3EINT0腳觸發(fā)信號(hào)方式是電平或邊沿。1- 沿方式;0- 電平方式 。 建議 “讀修改寫” 方式操作EXTMOD寄存器 ;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院812022-7-46.6.5 ARM的外中斷-相關(guān)寄存器uEXTPOLAR -外部中斷極性寄存器EXTPOLAR3:0位分別用來選擇對(duì)應(yīng)的EINT3EINT0腳觸發(fā)信號(hào)的極性 。1- 上升沿/高電平方式;0- 下降沿/低電平方式 。 建議 “讀修改寫” 方式操作EXTPOLAR寄存器 ;page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院822022-7-46.6.5 ARM的外中斷-應(yīng)用舉例要求:用一個(gè)按鍵模擬一個(gè)外中斷

46、觸發(fā),用蜂鳴器Beep模擬控制狀態(tài);每一次外中斷事件翻轉(zhuǎn)一次控制狀態(tài)輸出,模擬一個(gè)外中斷發(fā)出、響應(yīng)和處理過程。設(shè)計(jì)分析:設(shè)置P0.16管腳用作EINT0功能,連接開關(guān)Key,信號(hào)方式設(shè)置為低電平有效;P0.7管腳用作GPIO功能,輸出屬性連接Beep。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院832022-7-46.6.5 ARM的外中斷-應(yīng)用舉例P0.16管腳用作EINT0,連接開關(guān)Key,信號(hào)方式設(shè)置為低電平有效;P0.7管腳用作GPIO功能,輸出屬性連接Beep。設(shè)計(jì)分析page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院842022-7-46.6.5 ARM的外中斷-應(yīng)用舉例C代碼程序清單 #include con

47、fig.h#define BEEP 1 7/* P0.7控制BEEP,低電平蜂鳴 */void _irq IRQ_Eint0 (void) /* EINT0_ISR */ uint32 i; i = IO0SET; /* 讀取當(dāng)前BEEP的控制值 */ if (i & BEEP) = 0) IO0SET = BEEP; /* 鳴響蜂鳴器 */ else IO0CLR = BEEP;/* 停止蜂鳴器 */ while (EXTINT & 0 x01) != 0) /* 等待EINT0引腳恢復(fù)為高電平 */ EXTINT = 0 x01;/* 清除EINT0中斷標(biāo)志 */ VICV

48、ectAddr = 0;/* 向量中斷結(jié)束 */page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院852022-7-46.6.5 ARM的外中斷-應(yīng)用舉例C代碼程序清單 int main (void) PINSEL0 = 0 x00000000; /* 設(shè)置P015:0為GPIO */ PINSEL1 = 0 x00000001; /* 設(shè)P0.16為EINT0 */ IO0DIR = BEEP; /* 設(shè)置P0.7為輸出,其余輸入 */ EXTMODE = 0 x00; /* 設(shè)置EINT0為電平觸發(fā) */ EXTPOLAR = 0 x00; /* 極性寄存器-低電平有效 */ IO0CLR = BEEP;

49、/* Beep 初始態(tài)為靜音 */ IRQEnable(); /* 使能IRQ中斷 */ /* 打開EINT0中斷(使用非向量中斷) */ VICIntSelect = 0 x00000000; /* 設(shè)置中斷為IRQ中斷 */ VICDefVectAddr = (int)IRQ_Eint0; /* 裝載中斷服務(wù)程序地址 */ EXTINT = 0 x01; /* 清除EINT0中斷標(biāo)志 */ VICIntEnable = 1 0 x0e; /* 使能EINT0中斷 */ while (1); /* 等待中斷 */ return (0);page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院862022-7-46.

50、6.5 ARM的外中斷-應(yīng)用舉例ASM程序清單 BEEP equ 0 x80; P0.7 管腳接 BEEP,低電平鳴響 CODE32 AREA Example , CODE , READONLY ENTRY;中斷向量表Reset LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0 xb9205f80 LDR PC, PC, #-0 xff0 LDR PC, FIQ_Addr備注:關(guān)注藍(lán)色指令行。page西安郵電學(xué)院 計(jì)算機(jī)學(xué)院87202

51、2-7-46.6.5 ARM的外中斷-應(yīng)用舉例ASM程序清單 ; 中斷向量表文字池ResetAddr DCD ResetInitUndefinedAddr DCD UndefinedSWI_Addr DCD SoftwareInterruptPrefetchAddr DCD PrefetchAbortDataAbortAddr DCD DataAbortNouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handlerpage西安郵電學(xué)院 計(jì)算機(jī)學(xué)院882022-7-46.6.5 ARM的外中斷-應(yīng)用舉例ASM程序清單 ResetInit;設(shè)置IRQ中斷模式堆棧 msr CPSR_c , #0 xd2 ldr SP , =0 x40000500;設(shè)置管理模式堆棧 msr CPSR_c , #0 xd3 ldr SP , =0 x40000800 ldr r0 , =PINSEL0 mov r4 , #0 x00 str r4 , r0; P015:0 管腳用作GPIOpage西安郵電學(xué)院 計(jì)算機(jī)學(xué)院89202

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論