版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中斷概念(12.5)
和流程圖(14.5)西安交通大學(xué)電氣工程學(xué)院寧改娣
博士
教授MCU內(nèi)部結(jié)構(gòu)框架與CPU交換信息的主要分為兩種器件:存儲(chǔ)器和IO端口。端口是指CPU可以直接訪問的控制、狀態(tài)、數(shù)據(jù)寄存器CPU控制或訪問I/O端口的方式一般有兩種:查詢和中斷2026/1/30CPU最小系統(tǒng)支持模塊(WD、LP、PLL…)
片內(nèi)總線芯片引腳程序與數(shù)據(jù)存儲(chǔ)器片內(nèi)外設(shè)(寄存器)片內(nèi)外設(shè)接口IO端口:(控制寄存器、
狀態(tài)寄存器數(shù)據(jù)寄存器)CPU控制或訪問I/O端口的兩種方式(詳見12.5節(jié))程序查詢方式:CPU不斷地查詢I/O接口中狀態(tài)寄存器,了解外設(shè)的情況,外設(shè)準(zhǔn)備好進(jìn)行數(shù)據(jù)處理。由于CPU的高速性和I/O設(shè)備的低速性,致使CPU的絕大部分時(shí)間都處于等待I/O設(shè)備完成數(shù)據(jù)的循環(huán)查詢中。CPU的利用率相當(dāng)?shù)汀PU查詢多個(gè)I/O設(shè)備只能串行工作,外設(shè)與CPU交換數(shù)據(jù)的實(shí)時(shí)性也很差,重要外設(shè)數(shù)據(jù)不能及時(shí)處理。但程序查詢方式編程簡(jiǎn)單,無(wú)需了解中斷機(jī)制。中斷方式——要用中斷,必須清楚以下概念。2026/1/3012.5.3CPU中斷概念
“中斷”顧名思義,就是中止CPU正在進(jìn)行的工作過程去處理另一事務(wù),處理之后再繼續(xù)原來(lái)工作過程。2026/1/3012.5.3CPU中斷概念(續(xù))不同型號(hào)的處理器中斷控制邏輯不同,但概念一樣。中斷一般分為:可屏蔽中斷和不可屏蔽中斷;優(yōu)先級(jí)2026/1/30MSP430G2x53InterruptVectorAddresses2026/1/30
做為定時(shí)器用時(shí)?P1.3按鍵中斷外設(shè)接口的中斷一般都屬于可屏蔽中斷(maskable),即軟件可屏蔽。CPU上電復(fù)位后一般都是禁止可屏蔽中斷的!InterruptVectorAddresses中斷向量表將CPU與中斷服務(wù)程序聯(lián)系起來(lái)!用戶必須清楚存儲(chǔ)器配置中,CPU的中斷表在哪?2026/1/30cmd文件memory命令中內(nèi)容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}:InterruptVectorAddresses中斷向量表中存放對(duì)應(yīng)中斷源服務(wù)程序的入口地址或放跳轉(zhuǎn)指令(每個(gè)CPU采取其中一種方式)。MSP430G2x53,MSP430G2x13MixedSignalMicrocontrollerdatasheet(Rev.J)——中斷向量表為:Theinterruptvectorsandthepower-upstartingaddressarelocatedintheaddressrange0FFFFhto0FFC0h(一旦中斷到這里找服務(wù)程序入口地址,MSP430G2x53表中放中斷服務(wù)程序的入口地址。).Thevectorcontainsthe16-bitaddressoftheappropriateinterrupthandlerinstructionsequence.2026/1/30cmd文件memory命令中內(nèi)容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}MSP430G2x53中斷向量表(表中√存入口地址)2026/1/30P1.3按鍵中斷比如,P1.3按鍵中斷,用戶必須在0FFE4~5H單元存放P1.3中斷服務(wù)程序的入口地址(中斷向量)。程序處理如下:P1.3中斷舉例2026/1/30中斷向量表——查C27A存放的什么?2026/1/30沒允許的中斷向量表:C27A單元是什么?軟件抗干擾!InterruptVectorAddresses上電復(fù)位一般屬于不可屏蔽中斷,優(yōu)先級(jí)最高!思考:跑馬燈程序上電后程序如何走的?PC?實(shí)驗(yàn)觀察上電后的PC以及程序走向(因?yàn)榉抡嫫髋c最小系統(tǒng)在一塊板子,因此仿真器程序占用了空間)。Iftheresetvector(locatedataddress0FFFEh)contains0FFFFh(forexample,flashisnotprogrammed),theCPUgoesintoLPM4immediatelyafterpower-up.也就是說(shuō),上電復(fù)位向量表中0FFFEH~FFFFH單元存放的是FFFFH兩個(gè)字節(jié),說(shuō)明沒有用戶程序(實(shí)驗(yàn)查看上電后的Flash內(nèi)容?)體現(xiàn)出低功耗處理!該系列芯片低功耗顯著!2026/1/30cmd文件memory命令中內(nèi)容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}2026/1/30cmd文件memory命令中內(nèi)容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}
了解MSP430G2x53CPU與中斷相關(guān)Reg
16Bit的CPU,內(nèi)部寄存器都是16BitCPU主要任務(wù)是:讀取、翻譯、執(zhí)行程序指令。后續(xù)詳解PC、SPSR(GIE)GeneralGlobleInterruptEnable上次課的匯編循環(huán)指令看到用R12寄存器,不寫匯編程序可以不了解這些Reg可屏蔽中斷的使能2026/1/30cmd文件memory命令中內(nèi)容:INT00:origin=0xFFE0,length=0x0002INT01:origin=0xFFE2,length=0x0002INT02:origin=0xFFE4,length=0x0002INT03:origin=0xFFE6,length=0x0002INT04:origin=0xFFE8,length=0x0002INT05:origin=0xFFEA,length=0x0002INT06:origin=0xFFEC,length=0x0002INT07:origin=0xFFEE,length=0x0002INT08:origin=0xFFF0,length=0x0002INT09:origin=0xFFF2,length=0x0002INT10:origin=0xFFF4,length=0x0002INT11:origin=0xFFF6,length=0x0002INT12:origin=0xFFF8,length=0x0002INT13:origin=0xFFFA,length=0x0002INT14:origin=0xFFFC,length=0x0002RESET:origin=0xFFFE,length=0x0002}可屏蔽中斷使能最多有三級(jí)門檻(各CPU不一樣):個(gè)體、整組、全體。MSP430G2x53要使能某個(gè)中斷源,必須把各對(duì)應(yīng)中斷源個(gè)體使能位使能,然后GIE允許。比如,P1.3按鍵要中斷,必須看P1.3模塊的使能位,并使GIE使能中斷。例如,P1.7引腳連接一個(gè)按鍵,該按鍵按下將觸發(fā)P1.7引腳中斷,P1.0引腳連接LED燈。按下按鍵,LED燈亮滅的狀態(tài)反轉(zhuǎn)。要了解GPIO結(jié)構(gòu)及寄存器,中斷允許?請(qǐng)求信號(hào)有效性?附件2P48-P1.7的原理圖2026/1/30P1.7設(shè)置為輸入,設(shè)置上拉電阻熟悉中斷相關(guān)模塊原理及寄存器GPIO中斷相關(guān)的寄存器2026/1/30與門,顯然1使能在P1.7引腳連接一個(gè)按鍵,該按鍵按下將觸發(fā)P1.7引腳中斷,P1.0引腳連接LED燈。按下按鍵,LED燈亮滅的狀態(tài)反轉(zhuǎn)。程序如下:2026/1/30狀態(tài)清0是否需要??
P1.7輸入DIR??
CPU響應(yīng)中斷后如果不清除
標(biāo)志位,用戶退出中斷前必須清0?。?!中斷嵌套概念MCU中有大量中斷源,出廠都設(shè)置了優(yōu)先級(jí)一般是高優(yōu)先級(jí)中斷可以打斷低優(yōu)先級(jí)的中斷服務(wù)MSP430G2553是個(gè)例外(實(shí)驗(yàn)驗(yàn)證,可以任意嵌套)2026/1/30MSP430x5xxandMSP430x6xxFamily中斷響應(yīng)過程,不同CPU類似但不全相同??!SR2026/1/30中斷嵌套??P1是多源中斷,P1.0~P1.7一個(gè)入口MSP430中斷返回過程
清楚CPU中斷做了什么,才知道用戶程序應(yīng)該做什么?。?026/1/30中斷的響應(yīng)過程總結(jié)1)中斷申請(qǐng):硬件或軟件向CPU發(fā)出中斷申請(qǐng)。(用戶1)2)中斷的允許:對(duì)于可屏蔽中斷而言
(用戶軟件處理2)3)中斷判優(yōu):多數(shù)微控制器內(nèi)部有優(yōu)先級(jí)排隊(duì)判優(yōu)電路4)中斷檢測(cè):CPU自動(dòng)處理的,用戶不必關(guān)心5)保護(hù)斷點(diǎn)并獲取中斷入口地址:PC(用戶處理向量表3)6)中斷服務(wù)程序中保護(hù)現(xiàn)場(chǎng):“現(xiàn)場(chǎng)”是指執(zhí)行原程序所用到的相關(guān)寄存器資源。(用戶壓棧,C程序自動(dòng)保護(hù))7)中斷返回:匯編中斷服務(wù)程序最后要有一條中斷返回指令,該指令自動(dòng)從堆棧中恢復(fù)斷點(diǎn)地址給IP或者PC,繼續(xù)執(zhí)行原來(lái)程序。不同處理器會(huì)稍有區(qū)別!用戶要特別關(guān)注中斷使能位和標(biāo)志位在CPU響應(yīng)中斷后如何處理的?2026/1/30MCU可屏蔽中斷總結(jié)要正常響應(yīng)中斷用戶要關(guān)注三個(gè)方面(也是排查中斷故障的思路):①中斷源MCU出廠后中斷源數(shù)量是確定的。比如,8051有5個(gè),TIC2000最多96個(gè),MSP430最多64個(gè)每個(gè)中斷源要能夠提出中斷(會(huì)舉手)。比如,定時(shí)器中斷,如果不計(jì)數(shù)一定不會(huì)溢出產(chǎn)生中斷請(qǐng)求。2026/1/30MCU可屏蔽中斷總結(jié)②中斷使能和中斷標(biāo)志位上電后一般是禁止中斷的,初始化中要使能。使能一般最多有三個(gè)門檻:個(gè)體、組、全體。要關(guān)注CPU響應(yīng)后對(duì)使能位的處理。有些處理器響應(yīng)一次會(huì)自動(dòng)禁止中斷。如果要中斷嵌套,也要注意中斷服務(wù)程序中使能可否允許?比如,MSP430可否中斷嵌套?中斷標(biāo)志位響應(yīng)后要清除,一直舉手可能重復(fù)中斷。有些標(biāo)志位是CPU自動(dòng),有些需要用戶清除。2026/1/30MCU可屏蔽中斷總結(jié)③中斷向量表和中斷向量中斷向量表是CPU找用戶中斷服務(wù)程序的地方出廠后向量表的位置是確定的。上電復(fù)位是優(yōu)先級(jí)最高的中斷,所以向量表一般就在PC所指位置上下。中斷向量是指表中填寫的內(nèi)容。有些處理器是寫跳轉(zhuǎn)指令;有些是直接填寫中斷服務(wù)程序的首地址。故障排查:比如P1.3所接按鍵進(jìn)入不了其服務(wù)程序?是中斷源嗎?按鍵了嗎?允許了沒?向量表處理沒?2026/1/30程序流程圖(14.5節(jié))
程序流程圖用于表示程序執(zhí)行的順序,包括轉(zhuǎn)移和循環(huán)等。在程序開發(fā)過程中畫流程圖,主要以下好處:1)幫助程序員清晰軟件編寫思路;2)避免出現(xiàn)重大的代碼邏輯錯(cuò)誤,造成后期更改困難;3)有利于團(tuán)隊(duì)合作;4)便于他人了解程序。2026/1/30中斷流程圖錯(cuò)誤畫法!主程序流程圖錯(cuò)誤示例:叫“中斷服務(wù)程序”比
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年1月湖南高速物流發(fā)展有限公司招聘考試備考試題及答案解析
- 2026新疆石河子市華僑國(guó)有資本運(yùn)營(yíng)有限公司招聘1人考試備考試題及答案解析
- 2026中國(guó)國(guó)際貨運(yùn)航空股份有限公司機(jī)務(wù)維修工程師崗位校園招聘5人筆試備考試題及答案解析
- 2026年運(yùn)動(dòng)營(yíng)養(yǎng)補(bǔ)劑應(yīng)用培訓(xùn)
- 2026云南紅河州個(gè)舊市醫(yī)療衛(wèi)生共同體賈沙分院招聘編外工作人員1人筆試模擬試題及答案解析
- 2026年大連工業(yè)大學(xué)公開招聘高層次人才54人筆試參考題庫(kù)及答案解析
- 2026年可再生資源流動(dòng)的動(dòng)力學(xué)特性
- 2026年樁基設(shè)計(jì)中的地質(zhì)勘察實(shí)例
- 2026年卡通世界中的新年狂歡
- 2026年地質(zhì)災(zāi)害的多維度影響評(píng)價(jià)方法
- 七年級(jí)語(yǔ)文文言文閱讀理解專項(xiàng)訓(xùn)練
- 中藥熱熨敷技術(shù)及操作流程圖
- 臨床提高吸入劑使用正確率品管圈成果匯報(bào)
- 娛樂場(chǎng)所安全管理規(guī)定與措施
- 電影項(xiàng)目可行性分析報(bào)告(模板參考范文)
- 老年協(xié)會(huì)會(huì)員管理制度
- LLJ-4A車輪第四種檢查器
- 大索道竣工結(jié)算決算復(fù)審報(bào)告審核報(bào)告模板
- 2025年南充市中考理科綜合試卷真題(含標(biāo)準(zhǔn)答案)
- 人衛(wèi)基礎(chǔ)護(hù)理學(xué)第七版試題及答案
- 煙草物流寄遞管理制度
評(píng)論
0/150
提交評(píng)論