CCS simulation 中斷模擬實(shí)驗(yàn)_第1頁(yè)
CCS simulation 中斷模擬實(shí)驗(yàn)_第2頁(yè)
CCS simulation 中斷模擬實(shí)驗(yàn)_第3頁(yè)
CCS simulation 中斷模擬實(shí)驗(yàn)_第4頁(yè)
CCS simulation 中斷模擬實(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)介

實(shí)驗(yàn)2

中斷模擬實(shí)驗(yàn)試驗(yàn)?zāi)康恼莆罩袛嗟暮x和中斷響應(yīng)過(guò)程。掌握用CCSsimulator模擬中斷的方法。掌握中斷應(yīng)用程序的編寫(xiě)方法。摘要復(fù)習(xí)C54x中斷操作模擬中斷的方法實(shí)驗(yàn)內(nèi)容及步驟試驗(yàn)原理中斷是一些由硬件或軟件產(chǎn)生的信號(hào),能使CPU暫時(shí)停止執(zhí)行正在執(zhí)行的程序,轉(zhuǎn)而執(zhí)行由DSP程序開(kāi)發(fā)者編寫(xiě)的中斷服務(wù)程序(ISR——InterruptServiceRoutine)C54x既支持軟件中斷也支持硬件中斷軟件中斷,是由指令(INTR、TRAP、RESET)產(chǎn)生的。硬件中斷:外部中斷——通過(guò)DSP外部中斷引腳接收到的片外設(shè)備產(chǎn)生的中斷(例如ADC/DAC向DSP發(fā)出的中斷)片上外設(shè)中斷——DSP片上外設(shè)(如定時(shí)器、串口、DMA等)向CPU發(fā)出的中斷當(dāng)同一CPU時(shí)鐘周期內(nèi)有多個(gè)硬件中斷發(fā)生時(shí),CPU會(huì)按照中斷優(yōu)先級(jí)對(duì)它們進(jìn)行響應(yīng)!軟件中斷無(wú)優(yōu)先級(jí)??善帘魏头强善帘沃袛郉SP的中斷可分為兩大類(lèi):可屏蔽(Maskable)中斷:可以通過(guò)軟件被禁止/使能的中斷。被禁止掉的中斷即使產(chǎn)生,CPU也不會(huì)去響應(yīng)!被使能的中斷,當(dāng)它產(chǎn)生時(shí)CPU就會(huì)去響應(yīng)它!非可屏蔽(Nonmaskable)中斷:不能被禁止的中斷。當(dāng)這些中斷產(chǎn)生時(shí)CPU會(huì)無(wú)條件響應(yīng)!C54x的非可屏蔽中斷有:所有的軟件中斷!外部中斷NMI(DSP外部中斷引腳NMI)復(fù)位中斷RS(DSP外部中斷引腳RS)CPU在響應(yīng)NMI中斷時(shí),將不能被任何其他中斷打斷!包括復(fù)位中斷!IFRIFR(InterruptFlagRegister)中斷標(biāo)志寄存器(地址0x01)當(dāng)一個(gè)可屏蔽中斷產(chǎn)生時(shí),IFR中相應(yīng)的中斷標(biāo)志位會(huì)被置1,當(dāng)CPU響應(yīng)該中斷后,該標(biāo)志位才被清除!清除中斷標(biāo)志還可通過(guò):軟件或硬件復(fù)位;向標(biāo)志位寫(xiě)1;使用INTR#K指令響應(yīng)該中斷15-1413121110987ReservedDMAC5DMAC4BXINT1/DMAC3BRINT1/DMAC2HPINTINT3TINT1/DMAC1C5402DSP的IFR寄存器6543210DMAC0BXINT0BRINT0TINT0INT2INT1INT0IMRIMR(InterruptMaskRegister)中斷屏蔽寄存器(地址0x00)當(dāng)ST1的INTM位為0時(shí),IMR可用于禁止和使能可屏蔽中斷,向IMR中的某個(gè)屏蔽位寫(xiě)1就能使能相應(yīng)的可屏蔽中斷!如果寫(xiě)0,則相應(yīng)的中斷被禁止!15-1413121110987ReservedDMAC5DMAC4BXINT1/DMAC3BRINT1/DMAC2HPINTINT3TINT1/DMAC1C5402DSP的IMR寄存器6543210DMAC0BXINT0BRINT0TINT0INT2INT1INT011INTM中斷模式位,可屏蔽中斷的全局開(kāi)關(guān)!=0全局開(kāi)=1全局關(guān)ST1:(0x07)C54x中斷響應(yīng)流程中斷請(qǐng)求產(chǎn)生Request中斷應(yīng)答Acknowledgment執(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)到ISR去執(zhí)行?中斷號(hào)中斷名稱0RS1NMI……16INT017INT118INT2……15-7IPTR中斷INT0得到應(yīng)答AcknowledgmentPC=(IPTR<<7)+中斷號(hào)×4

PMST:(0x1D)……程序空間NOPB_MyInt0isr

NOPNOP執(zhí)行C函數(shù)MyInt0isrINT0的中斷向量中斷向量表中斷向量(表)指針4-wordspace4-wordspace4-wordspace4-wordspace4-wordspace摘要復(fù)習(xí)C54x中斷操作模擬中斷的方法實(shí)驗(yàn)內(nèi)容及步驟Simulator下模擬中斷編寫(xiě)引腳文件,指示出中斷產(chǎn)生的時(shí)間!將引腳文件和相應(yīng)的中斷引腳進(jìn)行“連接”!裝載并運(yùn)行程序后,CCS會(huì)根據(jù)引腳文件中設(shè)置的時(shí)間來(lái)產(chǎn)生模擬的中斷信號(hào)!引腳文件(.txt)文件內(nèi)容含義100120300分別在第100、120、300個(gè)CPUclock時(shí)產(chǎn)生中斷100+20300同上,分別在第100、120、300個(gè)CPUclock時(shí)產(chǎn)生中斷5(+10)rpt3分別在第5、15、25、35個(gè)CPUclock時(shí)產(chǎn)生中斷5(+10+20)rpt2分別在第5、15、35、45、65個(gè)CPUclock時(shí)產(chǎn)生中斷100(+200)rptEOS分別在第100、300、500、700…個(gè)CPUclock時(shí)產(chǎn)生中斷,無(wú)限循環(huán)!引腳文件和中斷引腳的“連接”Tools→Pinconnect

實(shí)驗(yàn)內(nèi)容在C54xDeviceSimulator模式下,編寫(xiě)引腳文件模擬部中斷0(INT0)的產(chǎn)生。編寫(xiě)程序響應(yīng)INT0中斷。實(shí)驗(yàn)步驟使用CCSSetup添加“C5402DeviceSimulator”配置到系統(tǒng)中;運(yùn)行CCS,進(jìn)入Simulator工作模式。編寫(xiě)引腳文件intsim.txt

包含:10000

(+10000)

rpt

EOS使用ToolsPinConnect工具將該引腳文件連接到引腳INT0。建立一個(gè)CCS項(xiàng)目,包含下列文件main.c

使能并打開(kāi)中斷isr.c

中斷服務(wù)函數(shù)vectors.asm

中斷向量表linker.cmd

鏈接器命令文件實(shí)驗(yàn)環(huán)境建立#include<stdio.h>#defineIMR *(unsignedint*)0x0000#defineIFR *(unsignedint*)0x0001#defineST1 *(unsignedint*)0x0007#definePMST *(unsignedint*)0x001DintINTtimes;voidmain(){ asm(" SSBXINTM"); PMST=0x00A0; IFR=0xFFFF; IMR=0x0001; asm(" RSBXINTM"); puts("interruptenabled!"); INTtimes=0; while(1) { asm(" RSBXINTM"); }}main.c#include<stdio.h>externintINTtimes;interruptvoidmyisr(){ printf("%d\n",++INTtimes);}isr.c .sect".vectors" .ref_myisr.align0x80Unused .space16*4*16int0: B_myisr NOP NOP NOPint1: RETE NOP NOP NOPint2: RETE NOP NOP NOP .endvectors.asm-lrts.lib-stack0x400-heap0x400MEMORY{ PAGE0: VECT: o=0x0080, l=0x0080 SRAM: o=0x4000, l=0x3000 PAGE1:REVS: o=0x1000, l=0x0400 STACK: o=0x1400, l=0x0400 IDRAM: o=0x1800, l=0x2800}SECTIONS{ .vectors: > VECT .text: > SRAM .cinit: > SRAM .stack: > STACK .bss: > IDRAM .const: > IDRAM .cio: >

溫馨提示

  • 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)論