實(shí)驗(yàn)2中斷模擬實(shí)驗(yàn)_第1頁(yè)
實(shí)驗(yàn)2中斷模擬實(shí)驗(yàn)_第2頁(yè)
實(shí)驗(yàn)2中斷模擬實(shí)驗(yàn)_第3頁(yè)
實(shí)驗(yàn)2中斷模擬實(shí)驗(yàn)_第4頁(yè)
實(shí)驗(yàn)2中斷模擬實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)2中斷模擬實(shí)驗(yàn)一一試驗(yàn)?zāi)康脑囼?yàn)?zāi)康?.掌握中斷的含義和中斷響應(yīng)過(guò)程。掌握中斷的含義和中斷響應(yīng)過(guò)程。2.掌握用掌握用CCS simulator模擬中斷的方法。模擬中斷的方法。3.掌握中斷應(yīng)用程序的編寫(xiě)方法。掌握中斷應(yīng)用程序的編寫(xiě)方法。摘要摘要n復(fù)習(xí)復(fù)習(xí)C54x中斷操作中斷操作n模擬中斷的方法模擬中斷的方法n實(shí)驗(yàn)內(nèi)容及步驟實(shí)驗(yàn)內(nèi)容及步驟二二試驗(yàn)原理試驗(yàn)原理n中斷是一些由硬件或軟件產(chǎn)生的信號(hào),能使CPU暫時(shí)停止執(zhí)行正在執(zhí)行的程序,轉(zhuǎn)而執(zhí)行由DSP程序開(kāi)發(fā)者編寫(xiě)的中斷服務(wù)程序(ISR Interrupt Service Routine)nC54x既支持軟件中斷也支持硬件中斷軟件中斷,是由指令 (I

2、NTR、TRAP、RESET) 產(chǎn)生的。硬件中斷:n外部中斷通過(guò)DSP外部中斷引腳接收到的片外設(shè)備產(chǎn)生的中斷(例如ADC/DAC向DSP發(fā)出的中斷)n片上外設(shè)中斷DSP片上外設(shè) (如定時(shí)器、串口、DMA等) 向CPU發(fā)出的中斷n當(dāng)同一CPU時(shí)鐘周期內(nèi)有多個(gè)硬件中斷發(fā)生時(shí),CPU會(huì)按照中斷優(yōu)先級(jí)對(duì)它們進(jìn)行響應(yīng) ! 軟件中斷無(wú)優(yōu)先級(jí)??善帘魏头强善帘沃袛鄋DSP的中斷可分為兩大類(lèi):可屏蔽 (Maskable) 中斷:可以通過(guò)軟件被禁止/使能的中斷。被禁止掉的中斷即使產(chǎn)生,CPU 也不會(huì)去響應(yīng) !被使能的中斷,當(dāng)它產(chǎn)生時(shí) CPU 就會(huì)去響應(yīng)它 !非可屏蔽 (Nonmaskable) 中斷:不能被禁止

3、的中斷。當(dāng)這些中斷產(chǎn)生時(shí) CPU 會(huì)無(wú)條件響應(yīng) !C54x 的非可屏蔽中斷有:n所有的軟件中斷 !n外部中斷 NMI (DSP外部中斷引腳NMI)n復(fù)位中斷 RS (DSP外部中斷引腳RS)CPU在響應(yīng) NMI 中斷時(shí),將不能被任何其他中斷打斷 !包括復(fù)位中斷 !IFRnIFR (Interrupt Flag Register) 中斷標(biāo)志寄存器 (地址0 x01)當(dāng)一個(gè)可屏蔽中斷產(chǎn)生時(shí),IFR中相應(yīng)的中斷標(biāo)志位會(huì)被置1,當(dāng)CPU響應(yīng)該中斷后,該標(biāo)志位才被清除 !清除中斷標(biāo)志還可通過(guò):n軟件或硬件復(fù)位;n向標(biāo)志位寫(xiě)1;n使用INTR #K指令響應(yīng)該中斷15-1413121110987C5402

4、DSP 的的 IFR 寄存器寄存器6543210IMRnIMR (Interrupt Mask Register) 中斷屏蔽寄存器 (地址0 x00)當(dāng) ST1 的 INTM 位為 0 時(shí),IMR 可用于禁止和使能可屏蔽中斷,向 IMR 中的某個(gè)屏蔽位寫(xiě) 1 就能使能相應(yīng)的可屏蔽中斷 !如果寫(xiě) 0,則相應(yīng)的中斷被禁止 !15-1413121110987C5402 DSP 的的 IMR 寄存器寄存器654321011INTM中斷模式位,可屏蔽中斷的全局開(kāi)關(guān) !=0 全局開(kāi)=1 全局關(guān)ST1ST1:(0 x07)C54x 中斷響應(yīng)流程中斷響應(yīng)流程中斷請(qǐng)求產(chǎn)生Request中斷應(yīng)答Acknowled

5、gment執(zhí)行用戶編寫(xiě)的ISRIMR屏蔽位=1?將當(dāng)前PC值壓入堆棧產(chǎn)生應(yīng)答信號(hào) IACK可屏蔽中斷?從ISR返回時(shí),將先前壓入堆棧的 PC 值彈出放入PC 中程序繼續(xù)從被中斷處運(yùn)行INTM=0 ?YNY產(chǎn)生應(yīng)答信號(hào) IACKINTM置1YNNCPU 如何跳轉(zhuǎn)到如何跳轉(zhuǎn)到 ISR 去執(zhí)行去執(zhí)行 ?中斷號(hào)中斷名稱0RS1NMI16INT017INT118INT215 - 7IPTR中斷 INT0 得到應(yīng)答AcknowledgmentPC = (IPTR7) + 中斷號(hào)中斷號(hào)4 PMSTPMST:(0 x1D) 程序空間NOP B _MyInt0isr NOP NOP執(zhí)行 C 函數(shù) MyInt0i

6、srINT0的中斷向量中斷向量表中斷向量(表)指針4-word space4-word space4-word space4-word space4-word space摘要摘要n復(fù)習(xí)復(fù)習(xí)C54x中斷操作中斷操作n模擬中斷的方法模擬中斷的方法n實(shí)驗(yàn)內(nèi)容及步驟實(shí)驗(yàn)內(nèi)容及步驟Simulator 下模擬中斷下模擬中斷n編寫(xiě)引腳文件,指示出中斷產(chǎn)生的時(shí)間!編寫(xiě)引腳文件,指示出中斷產(chǎn)生的時(shí)間!n將引腳文件和相應(yīng)的中斷引腳進(jìn)行將引腳文件和相應(yīng)的中斷引腳進(jìn)行“連接連接”!n裝載并運(yùn)行程序后,裝載并運(yùn)行程序后,CCS會(huì)根據(jù)引腳文件中設(shè)置會(huì)根據(jù)引腳文件中設(shè)置的時(shí)間來(lái)產(chǎn)生模擬的中斷信號(hào)!的時(shí)間來(lái)產(chǎn)生模擬的中斷信號(hào)

7、!引腳文件引腳文件(.txt) 文件內(nèi)容文件內(nèi)容含義含義100 120 300分別在第分別在第 100、120、300 個(gè)個(gè)CPU clock時(shí)時(shí)產(chǎn)生中斷產(chǎn)生中斷100 +20 300同上,分別在第同上,分別在第 100、120、300 個(gè)個(gè)CPU clock時(shí)產(chǎn)生中斷時(shí)產(chǎn)生中斷5 (+10) rpt 3分別在第分別在第 5、15、25、35 個(gè)個(gè)CPU clock時(shí)時(shí)產(chǎn)生中斷產(chǎn)生中斷5 (+10 +20) rpt 2分別在第分別在第 5、15、35、45、65 個(gè)個(gè)CPU clock時(shí)產(chǎn)生中斷時(shí)產(chǎn)生中斷100 (+200) rpt EOS分別在第分別在第 100、300、500、700 個(gè)個(gè)

8、CPU clock時(shí)產(chǎn)生中斷,無(wú)限循環(huán)!時(shí)產(chǎn)生中斷,無(wú)限循環(huán)!引腳文件和中斷引腳的引腳文件和中斷引腳的“連接連接”nTools Pin connect 三三實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容n在在C54x Device Simulator模式下,編寫(xiě)引腳文模式下,編寫(xiě)引腳文件模擬部中斷件模擬部中斷0 (INT0) 的產(chǎn)生。的產(chǎn)生。n編寫(xiě)程序響應(yīng)編寫(xiě)程序響應(yīng) INT0 中斷。中斷。四四實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟1.使用使用CCS Setup添加添加“C5402 Device Simulator”配置配置到系統(tǒng)中;運(yùn)行到系統(tǒng)中;運(yùn)行CCS,進(jìn)入,進(jìn)入Simulator工作模式。工作模式。2.編寫(xiě)引腳文件編寫(xiě)引腳文件 ints

9、im.txt 包含:包含:3.10000 (+10000) rpt EOS2.使用使用 Tools Pin Connect 工具將該引腳文件連接到引工具將該引腳文件連接到引腳腳 INT0。3.建立一個(gè)建立一個(gè)CCS項(xiàng)目,包含下列文件項(xiàng)目,包含下列文件nmain.c使能并打開(kāi)中斷使能并打開(kāi)中斷nisr.c中斷服務(wù)函數(shù)中斷服務(wù)函數(shù)nvectors.asm中斷向量表中斷向量表nlinker.cmd鏈接器命令文件鏈接器命令文件實(shí)驗(yàn)環(huán)境建立實(shí)驗(yàn)環(huán)境建立#include #define IMR*(unsigned int *)0 x0000#define IFR*(unsigned int *)0 x00

10、01#define ST1*(unsigned int *)0 x0007#define PMST *(unsigned int *)0 x001Dint INTtimes;void main()asm(SSBX INTM);PMST = 0 x00A0;IFR = 0 xFFFF;IMR = 0 x0001;asm(RSBX INTM);puts(interrupt enabled !);INTtimes = 0;while(1)asm(RSBX INTM);main.c#include extern int INTtimes;interrupt void myisr()printf(%dn

11、, +INTtimes);isr.c.sect .vectors.ref _myisr .align 0 x80Unused .space 16*4*16int0:B _myisr NOP NOP NOPint1: RETE NOP NOP NOPint2: RETE NOP NOP NOP.endvectors.asm-lrts.lib-stack 0 x400-heap 0 x400MEMORYPAGE 0: VECT:o=0 x0080,l=0 x0080SRAM:o=0 x4000,l=0 x3000PAGE 1: REVS:o=0 x1000,l=0 x0400STACK:o=0 x1400,l=0 x0400IDRAM:o=0 x1800,l=0 x2800SECTIONS.vectors:VECT.text:SRAM.cinit:SRAM.stack:STACK.bss:IDRAM.const:IDRAM.cio:IDRAM.sysmemIDRAMlinker.cmd實(shí)驗(yàn)內(nèi)容和步驟實(shí)驗(yàn)內(nèi)容和步驟4.構(gòu)建可執(zhí)行模塊。構(gòu)建可執(zhí)行模塊。5.裝載并運(yùn)行后觀察結(jié)果。裝載并運(yùn)行后觀察結(jié)果。6.修改程序,使其響應(yīng)修改程序,使其響應(yīng)INT

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論