基于ARM9的中斷控制器的程序設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于ARM9的中斷控制器的程序設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于ARM9的中斷控制器的程序設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于ARM9的中斷控制器的程序設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于ARM9的中斷控制器的程序設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄1 功能描述. 11.1 課題設(shè)計(jì)題目. 11.2 課程功能描述及任務(wù)要求. 12 基礎(chǔ)知識(shí). 12.1 中斷流程. 12.2 數(shù)據(jù)結(jié)構(gòu). 22.2.1 中斷優(yōu)先級(jí)產(chǎn)生模塊. 22.2.2 中斷優(yōu)先級(jí). 22.3 寄存器工作原理. 32.3.1 程序狀態(tài)寄存器PSR . 32.3.2 中斷模式. 32.3.3 中斷請(qǐng)求寄存器. 32.3.4 中斷屏蔽寄存器. 42.4 實(shí)驗(yàn)詳解. 42.4.1 源請(qǐng)求寄存器SRCPND . 42.4.2 中斷模式寄存器INTMOD. 52.4.3 中斷屏蔽寄存器INTMSK . 52.4.4中斷請(qǐng)求寄存器INTPND . 72.4.5 中斷偏移寄存器INT

2、OFFSET . 72.4.6 子中斷源請(qǐng)求寄存器SUBSRCPND . 82.4.7 子中斷屏蔽寄存器INTSUBMSK . 82.5 實(shí)驗(yàn)環(huán)境. 93 系統(tǒng)設(shè)計(jì). 93.1 系統(tǒng)總體設(shè)計(jì). 93.2 主函數(shù)設(shè)計(jì). 103.3 中斷處理函數(shù)設(shè)計(jì). 103.4 中斷初始化及LED控制設(shè)計(jì) . 123.5 各種寄存器的設(shè)計(jì). 134 實(shí)驗(yàn)截圖. 134.1 硬件連接. 134.2 ADS中工程的相關(guān)配置. 134.3 AXD 的相關(guān)配置 . 154.4 工程JTAG調(diào)試執(zhí)行 . 175 總結(jié). 19致謝. 20參考文獻(xiàn). 21嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第1頁(yè) 共21頁(yè)1 功能描述1.

3、1 課題設(shè)計(jì)題目基于ARM9中斷控制器的程序設(shè)計(jì)與實(shí)現(xiàn)1.2 課程功能描述及任務(wù)要求這次的嵌入式系統(tǒng)實(shí)習(xí),我們的選題是基于ARM9中斷控制器的程序設(shè)計(jì)與實(shí)現(xiàn)。課題要完成的功能是,通過(guò)產(chǎn)生不同的外部中斷控制發(fā)光二極管的亮滅,通過(guò)LED來(lái)指示發(fā)生了哪個(gè)外部中斷。要很好地完成本次實(shí)習(xí),中斷控制的基本原理必須非常熟悉。S3C2410中斷控制器接收56個(gè)中斷源的中斷請(qǐng)求。中斷源由如DMA控制器、UART、IIC等內(nèi)部外設(shè)提供。這些中斷源中,UARTn和EINTn中斷是以或邏輯輸入到中斷控制器的。當(dāng)從內(nèi)部外設(shè)和外部中斷請(qǐng)求引腳接收到多個(gè)中斷請(qǐng)求時(shí),經(jīng)過(guò)中斷仲裁后,中斷控制器向ARM920T請(qǐng)求FIQ或者I

4、RQ中斷。仲裁過(guò)程與硬件優(yōu)先級(jí)有關(guān),仲裁結(jié)果寫(xiě)入中斷請(qǐng)求寄存器。中斷請(qǐng)求寄存器幫助用戶(hù)確定哪個(gè)中斷產(chǎn)生。課題設(shè)計(jì)的目的是,通過(guò)實(shí)習(xí),使我們對(duì)基于ARM微處理器的嵌入式系統(tǒng)開(kāi)發(fā)的過(guò)程有更多的解,更好地掌握嵌入式系統(tǒng)開(kāi)發(fā)的知識(shí)。能夠針對(duì)某一嵌入式微處理器進(jìn)行實(shí)際開(kāi)發(fā),鍛煉實(shí)踐動(dòng)手能力。并能夠熟練掌握ARM中斷處理過(guò)程,能夠在中斷處理程序控制跑馬燈,掌握ARM中斷控制器的工作機(jī)制及原理,熟悉JXARM2410的中斷處理的工作原理。2 基礎(chǔ)知識(shí)2.1中斷流程圖2-1嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第2頁(yè) 共21頁(yè)2.2數(shù)據(jù)結(jié)構(gòu)2.2.1 中斷優(yōu)先級(jí)產(chǎn)生模塊其中32個(gè)中斷請(qǐng)求的優(yōu)先級(jí)邏輯有由個(gè)ro

5、tation based仲裁位組成:6個(gè)一級(jí)仲裁位和一個(gè)二級(jí)位,如圖2-2所示。圖2-22.2.2 中斷優(yōu)先級(jí)每個(gè)仲裁器可以處理6個(gè)中斷請(qǐng)求,基于一位仲裁器模式(ARB_MODE)和兩位選擇信號(hào)(ARB_SEL): 如果ARB_SEL位為00B,優(yōu)先級(jí)順序是:REQ0, REQ1, REQ2, REQ3, REQ4, and REQ5。 如果ARB_SEL位為01B,優(yōu)先級(jí)順序是:REQ0, REQ2, REQ3, REQ4, REQ1, and REQ5.嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第3頁(yè) 共21頁(yè) 如果ARB_SEL位為10B,優(yōu)先級(jí)順序是:REQ0, REQ3, REQ4, R

6、EQ1,REQ2, and REQ5 如果ARB_SEL位為11B,優(yōu)先級(jí)順序是:is REQ0, REQ4, REQ1,REQ2, REQ3, and REQ5.注意:REQ0總是具有最高優(yōu)先級(jí),REQ5總是具有最低優(yōu)先級(jí),改變ARB_SEL位只能改變REQ1-REQ4的優(yōu)先級(jí)。如果ARB_MODE位被置1,ARB_SEL不會(huì)自動(dòng)改變,這會(huì)使仲裁器處于固定優(yōu)先級(jí)模式(注意即使處于這種模式,還是可以通過(guò)手動(dòng)改變ARB_SEL位來(lái)配置優(yōu)先級(jí))。如果ARB_MODE位被置1,ARB_SEL改變以變換優(yōu)先級(jí),例如,如果REQ1被服務(wù),ARB_SEL自動(dòng)變成01把REQ1變?yōu)樽畹蛢?yōu)先級(jí),ARB_SEL

7、的詳細(xì)規(guī)則如下: 如果REQ0或REQ5被服務(wù),ARB_SEL位不會(huì)變 如果REQ1被服務(wù),ARB_SEL位置01B 如果REQ2被服務(wù),ARB_SEL位置10B 如果REQ3被服務(wù),ARB_SEL位置11B 如果REQ4被服務(wù),ARB_SEL位置00B2.3 寄存器工作原理2.3.1 程序狀態(tài)寄存器PSR如果PSR中的F位被置1,CPU不接收FIQ快速中斷,同樣如果I位PSR被置1,CPU不接收IRQ中斷,因此中斷控制器能夠通過(guò)將PSR的F和I位和相應(yīng)的INTMSK中的位清零來(lái)接收中斷。2.3.2 中斷模式ARM920T有兩種中斷模式:FIQ和IRQ。在中斷請(qǐng)求時(shí)所有的中斷源決定使用哪個(gè)模式

8、。2.3.3 中斷請(qǐng)求寄存器S3C2410有兩種中斷請(qǐng)求寄存器:源請(qǐng)求寄存器(SRCPND)和中斷請(qǐng)求寄存器(INTPND)。這些請(qǐng)求寄存器揭示了一個(gè)中斷是否正在請(qǐng)求。當(dāng)中斷源請(qǐng)求中斷服務(wù)時(shí)SRCPND寄存器中的相應(yīng)位肯定被置1,然而,中斷仲裁之后則只有INTPND寄存器的某1位被自動(dòng)置1。即使該中斷被屏蔽,SRCPND寄存器中的相應(yīng)位也會(huì)被嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第4頁(yè) 共21頁(yè)置1,但是INTPND寄存器將不會(huì)改變。當(dāng)INTPND寄存器的某位被置1,且I位或者F位清零時(shí)中斷服務(wù)即開(kāi)始。SRCPND和INTPND寄存器能夠被讀和寫(xiě),因此服務(wù)函數(shù)必須通過(guò)向SRCPND和INTPN

9、D中相應(yīng)位寫(xiě)入“1”來(lái)清除中斷請(qǐng)求條件。2.3.4 中斷屏蔽寄存器通過(guò)中斷屏蔽寄存器的哪個(gè)屏蔽位被置1可以知道哪個(gè)中斷被禁止。如果INTMSK的某個(gè)屏蔽位為0,此中斷將會(huì)被正常服務(wù)。如果中斷源產(chǎn)生了一個(gè)請(qǐng)求,SRCPND中的源請(qǐng)求位被置位,即使相應(yīng)屏蔽位為1。2.4實(shí)驗(yàn)詳解中斷控制器有5個(gè)控制寄存器:源請(qǐng)求寄存器、中斷模式寄存器、屏蔽寄存器、優(yōu)先級(jí)寄存器和中斷請(qǐng)求寄存器。所有中斷請(qǐng)求首先寄存入SRCPND,它們基于中斷模式寄存器分為兩組:FIQ請(qǐng)求和IRQ請(qǐng)求。多IRQ的仲裁過(guò)程基于優(yōu)先級(jí)寄存器。2.4.1 源請(qǐng)求寄存器SRCPNDSRCPND由32位組成,每一位與一個(gè)中斷源相關(guān)。如果某個(gè)中斷

10、源產(chǎn)生中斷請(qǐng)求并等待中斷服務(wù),某位將會(huì)被置1。相應(yīng)地,寄存器也指出了哪個(gè)中斷源在請(qǐng)求服務(wù)。注意SRCPND中的每個(gè)位是由中斷源自動(dòng)置位的,與INTMASK寄存器無(wú)關(guān)。此外,SRCPND寄存器不會(huì)被優(yōu)先級(jí)邏輯影響。在中斷服務(wù)函數(shù)中必須清零SRCPND的相應(yīng)位,否則,中斷控制器會(huì)認(rèn)為同一個(gè)源的另一個(gè)中斷,換句話(huà)說(shuō),如果SRCPND的某個(gè)位仍然為1,中斷控制器會(huì)認(rèn)為又有一個(gè)有效的新的中斷在請(qǐng)求服務(wù)。清零相應(yīng)位的時(shí)機(jī)由用戶(hù)需求決定。如果想要從同一個(gè)中斷源接收另外一個(gè)有效的中斷,應(yīng)該在剛進(jìn)入ISR的時(shí)候清零,然后使能中斷??梢酝ㄟ^(guò)向SRCPND寫(xiě)入數(shù)據(jù)來(lái)清零某位,但是注意只有SRCPND中為1的位會(huì)被寫(xiě)

11、成寫(xiě)入數(shù)據(jù)中的位,而SRCPND中為0的位不會(huì)改變(如圖2-3)。嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第5頁(yè) 共21頁(yè)圖2-32.4.2 中斷模式寄存器INTMOD此寄存器由32個(gè)對(duì)應(yīng)每個(gè)中斷源的位組成。如果某位被置1,相應(yīng)的中斷被設(shè)置為FIQ模式,否則,設(shè)置為IRQ模式。注意:只有1個(gè)中斷源能夠被設(shè)置為FIQ模式,因此INTMOD中只有1位能被置1。2.4.3 中斷屏蔽寄存器INTMSK每個(gè)中斷源對(duì)應(yīng)一個(gè)位,如果某位被置1,CPU不會(huì)響應(yīng)相應(yīng)的中斷請(qǐng)求(注意即使這種情況下,SRCPND的位還是會(huì)置1),如果被置0,相應(yīng)中斷請(qǐng)求可以被響應(yīng)。相關(guān)圖見(jiàn)圖2-4、圖2-5和圖2-6。嵌入式系統(tǒng)開(kāi)發(fā)

12、與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第6頁(yè) 共21頁(yè)圖2-4圖2-5圖2-6嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第7頁(yè) 共21頁(yè)2.4.4中斷請(qǐng)求寄存器INTPND每個(gè)位顯示了相應(yīng)的中斷請(qǐng)求(沒(méi)有被屏蔽并等待中斷服務(wù))是否具有最高的優(yōu)先級(jí)。由于INTPND寄存器處于優(yōu)先級(jí)邏輯之后,只有1位能被置1,只有這個(gè)中斷請(qǐng)求向CPU產(chǎn)生IRQ中斷。在中斷服務(wù)程序中,可以通過(guò)讀此寄存器來(lái)知道哪個(gè)中斷源正在被服務(wù)。同SRCPN D寄存器一樣,寄存器必須在中斷服務(wù)程序中清零(SRCPND清零之后)。每個(gè)中斷源對(duì)應(yīng)一個(gè)位,如果某位被置1,CPU不會(huì)響應(yīng)相應(yīng)的中斷請(qǐng)求,如果被置0,相應(yīng)中斷請(qǐng)求可以被響應(yīng)。(見(jiàn)圖2-7)圖2

13、-7注意:1、如果FIQ模式中斷發(fā)生,INTPND的相應(yīng)位不會(huì)turn on,因?yàn)镮NTPND寄存器僅在IRQ模式下有效。2、清除INTPND寄存器時(shí)的注意事項(xiàng):INTPND寄存器通過(guò)寫(xiě)1來(lái)清零某位。如果某位從1寫(xiě)成0,INTPND寄存器和INTOFFSET寄存器可能有非期望值出現(xiàn)。因此,請(qǐng)不要向INTPND寄存器中為1的位寫(xiě)入0,最方便的清除INTPND寄存器的方法就是向INTPND寄存器中寫(xiě)入當(dāng)前INTPND寄存器的值如:INTPND=INTPND。2.4.5 中斷偏移寄存器INTOFFSETINTOFFSET寄存器中的值表示哪個(gè)中斷請(qǐng)求在INTPND寄存器之中。此位將會(huì)在清零SRCPND

14、和INTPND之后自動(dòng)清零。嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第8頁(yè) 共21頁(yè)注意:FIQ中斷不影響此寄存器,因?yàn)樗辉贗RQ模式下有效。2.4.6 子中斷源請(qǐng)求寄存器SUBSRCPND可以通過(guò)向SUBSRCPND寫(xiě)入數(shù)據(jù)來(lái)清零某位,但是注意只有SUBSRCPND中為1的位會(huì)被寫(xiě)成寫(xiě)入數(shù)據(jù)中的位,而SUBSRCPND中為0的位不會(huì)改變。圖2-8顯示了寄存器的相關(guān)位。圖2-82.4.7 子中斷屏蔽寄存器INTSUBMSK此寄存器有11位,每一位對(duì)應(yīng)一個(gè)中斷源,如果某位被置1,說(shuō)明此位對(duì)應(yīng)的中斷請(qǐng)求不被CPU響應(yīng)(注意即使在這種情況下,SUBSRCPND寄存器還是被置1的),如果屏蔽位為0,則

15、相應(yīng)中斷請(qǐng)求能被響應(yīng)。圖2-9嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第9頁(yè) 共21頁(yè)2.5 實(shí)驗(yàn)環(huán)境軟件:ADS1.2環(huán)境;硬件:1、PC機(jī),奔騰以上CPU, 512MB以上內(nèi)存,80G以上硬盤(pán);2、JXARM2410教學(xué)實(shí)驗(yàn)平臺(tái)。3 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)流程,如圖3-1圖 3-1嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第10頁(yè) 共21頁(yè)3.2 主函數(shù)設(shè)計(jì)主函數(shù)就是通過(guò)一個(gè)While(1)死循環(huán)來(lái)等待中斷的發(fā)生,main函數(shù)調(diào)用了一個(gè)delay延時(shí)子程序。相關(guān)代碼如下:#include register.h#include comm_fun.h/* 延時(shí) */void del

16、ay(int msec)/* 主函數(shù) */int main()while(1) /delay延時(shí),但什么都不做,就是等待中斷的發(fā)生 /while函數(shù)死循環(huán)等待外部中斷的發(fā)生 int i, j; for(i = 1000; i 0; i-) for(j = msec*10; j 0; j-) /* do nothing */; /包含register.h和comm_fun.h兩個(gè)頭文件 delay(5);return 0;3.3 中斷處理函數(shù)設(shè)計(jì)當(dāng)INTPND的某位被置,且中斷模式寄存器中斷INTMOD的位或者F位清零時(shí),中斷服務(wù)即開(kāi)始。在中斷處理函數(shù)中,必須通過(guò)向SRCPND和INTPND中相

17、應(yīng)位寫(xiě)1來(lái)清除中斷請(qǐng)求條件,對(duì)于SRCPND,通過(guò)向相應(yīng)位寫(xiě)1來(lái)清除中斷請(qǐng)求條件。而對(duì)于嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第11頁(yè) 共21頁(yè)INTPND來(lái)說(shuō),最好最方便的辦法就是向中INTPND中寫(xiě)入當(dāng)前INTPND的值,即INTPNDINTPND。相關(guān)代碼如下:#include register.h#include comm_fun.h/* 系統(tǒng)中斷處理函數(shù) */void handle_irq()unsigned long irqOffSet = INTOFFSET; / 通過(guò)中斷偏移寄存器/取得中斷信號(hào),用irqOffSet存儲(chǔ)序 else if(3 = irqOffSet) Led_

18、Display(4); /調(diào)用sys_init.c中顯示LED的Led_Display()子程序 /LED3點(diǎn)亮 / 清除中斷源,寫(xiě)1清0 / 清除中斷結(jié)果,寫(xiě)1清0 /如果是中斷3鍵被按下,則執(zhí)行下面的程序 Led_Display(2); /調(diào)用sys_init.c中顯示LEDLed_Display()子程序 /LED2點(diǎn)亮 if (2 = irqOffSet) /如果是外部中斷2鍵被按下,則執(zhí)行下面的程 /包含register.h和comm_fun.h兩個(gè)頭文件 delay(100); delay(100); SRCPND &= (1irqOffSet); INTPND = INTPND;

19、嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第12頁(yè) 共21頁(yè)3.4 中斷初始化及LED控制設(shè)計(jì)中斷初始化,INTMSK的相應(yīng)位如果置0,則允許中斷;如果相應(yīng)位置1,即使發(fā)生了中斷,中斷控制器將屏蔽該中斷請(qǐng)求CPU不會(huì)響應(yīng)該中斷。在中斷初始化函數(shù)中,將INTMSK2、3位置0,使能相關(guān)外部中斷。0x10000000對(duì)應(yīng)的值的4、5、6、7位分別控制LED1、LED2、LED3、LED4的亮滅。LED初始化,傳入值15,即data=00001111B,執(zhí)行Led_Display ()函數(shù)后,output_0x10000000最后的值為00001111B,此時(shí)4個(gè)LED燈均被點(diǎn)亮。當(dāng)外部中斷2觸發(fā)時(shí),L

20、ed_Display ()函數(shù)的參數(shù)值為2時(shí),data=00000010B,output_0x10000000最后的值為11011111B,此時(shí)第二個(gè)LED燈均被點(diǎn)亮。當(dāng)當(dāng)外部中斷3觸發(fā)時(shí),Led_Display ()函數(shù)的參數(shù)值為3時(shí),data=00000011B,output_0x10000000最后的值為10111111B,此時(shí)第三個(gè)LED燈均被點(diǎn)亮。相關(guān)代碼如下:#include register.h#include comm_fun.hunsigned char output_0x10000000 = 0xff;extern void Led_Display(int data)int

21、 led_init()/包含register.h和comm_fun.h兩個(gè)頭文件 output_0x10000000 &= (0xf0); output_0x10000000 |= (data) 4) & 0xf0); *(unsigned char *)0x10000000) = output_0x10000000; Led_Display(15); delay(10); return 0;嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第13頁(yè) 共21頁(yè) void irq_init() INTMSK &= (32);3.5 各種寄存器的設(shè)計(jì)(1)LED控制寄存器和數(shù)據(jù)寄存器的定義#define GP

22、BCON (*(volatile unsigned long *)0x56000010)#define GPBDAT (*(volatile unsigned long *)0x56000014)(2)中斷屏蔽寄存器、中斷請(qǐng)求寄存器、三種外部中斷寄存器的定義#define EINTMASK (*(volatile unsigned long *)0x560000A4)#define EINTPEND (*(volatile unsigned long *)0x560000A8)#define EXTINT0 (*(volatile unsigned long *)0x56000088)#def

23、ine EXTINT1 (*(volatile unsigned long *)0x5600008C)#define EXTINT2 (*(volatile unsigned long *)0x56000090)4 實(shí)驗(yàn)截圖4.1 硬件連接通過(guò)ADT2000仿真器把計(jì)算機(jī)與JXARM9-2410-1 ARM9嵌入式教學(xué)實(shí)驗(yàn)平臺(tái)建立連接,打開(kāi)試驗(yàn)箱電源。4.2 ADS中工程的相關(guān)配置(1)首先,打開(kāi)ADS軟件,如圖 4-1所示。圖4-1 ADS軟件初始界面嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第14頁(yè) 共21頁(yè)(2)打開(kāi)工程,如圖4-2 所示。圖4-2 打開(kāi)工程(3)設(shè)置工程。先點(diǎn)擊左邊的“AR

24、M Linker ”,然后選擇右邊的“Output”并在“RO Base”中設(shè)置為“0x30000000”,如圖4-3所示。圖4-3 ARM Linker 的 Output 選項(xiàng)卡配置嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第15頁(yè) 共21頁(yè)(4)然后再點(diǎn)擊Layout頁(yè),進(jìn)行目標(biāo)文件的設(shè)置。如圖4-4所示。圖4-4 ARM Linker 的 Layout選項(xiàng)卡配置4.3 AXD 的相關(guān)配置(1)調(diào)試工程。從開(kāi)始菜單啟動(dòng)“AXD Debugger”。啟動(dòng)后的界面如圖4-5所示。圖 4-5 ADX 的初始界面嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第16頁(yè) 共21頁(yè)(2)選擇“Options”菜單中

25、的“Configure Target”,在彈出的對(duì)話(huà)框中選擇“Add”按鈕,保證ADT IDE已經(jīng)安裝,添加adtrdi列表文件。如圖4-6所示。圖 4-6 添加adtrdi列表文件(3)回到“Choose Target”對(duì)話(huà)框,在“Target Environments”列表中選中剛才添加的列表文件,點(diǎn)擊“Configure”按鈕進(jìn)行處理器類(lèi)型、存儲(chǔ)器存儲(chǔ)方式等的配置。如圖4-7所示。圖4-7 處理器類(lèi)型等的配置嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第17頁(yè) 共21頁(yè)(4)如果設(shè)置正確并且硬件連接正確,串口連接成功,將出現(xiàn)如圖4-8所示的提示。圖 4-8 串口連接成功4.4 工程JTAG調(diào)試

26、執(zhí)行(1)點(diǎn)擊ADS軟件中的Debug 按鈕,開(kāi)始JTAG調(diào)試。如圖4-9所示。圖 4-9開(kāi)始調(diào)試嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第18頁(yè) 共21頁(yè)(2)如果編譯成功,將出現(xiàn)如圖4-10所示的提示,程序運(yùn)行正常,在斷點(diǎn)處停止。圖4-10 開(kāi)始執(zhí)行程序(3)點(diǎn)擊GO按鈕,跳過(guò)斷點(diǎn),繼續(xù)執(zhí)行,如圖4-11所示。圖 4-11 執(zhí)行成功嵌入式系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)(報(bào)告) 第19頁(yè) 共21頁(yè)5 總結(jié)我們的選題是基于ARM9中斷控制器的程序設(shè)計(jì)與實(shí)現(xiàn),任務(wù)下達(dá)之后,我們首先利用三天的時(shí)間進(jìn)行了相關(guān)資料的學(xué)習(xí),比如中斷的處理過(guò)程,跑馬燈的工作原理等。通過(guò)查找資料進(jìn)一步的學(xué)習(xí)這些知識(shí),我發(fā)現(xiàn)我們之前對(duì)于書(shū)本上的很多知識(shí)學(xué)得還不夠深入,離應(yīng)用還差得很遠(yuǎn)。接著,我們開(kāi)始進(jìn)行系統(tǒng)的需求分析,根據(jù)需求分析做了總體設(shè)計(jì),有了一個(gè)整體的框架,我們進(jìn)行了小組內(nèi)的任務(wù)分配。通過(guò)分工合作,我們開(kāi)始錄入代碼,并完善了系統(tǒng),最終實(shí)現(xiàn)了課題的要求,通過(guò)產(chǎn)生外部中斷來(lái)控制跑馬燈的亮滅。在實(shí)習(xí)過(guò)程中,我也遇到了一些麻煩。比如,源中斷掛起寄存器的清零實(shí)現(xiàn)不了,原來(lái)是因?yàn)锳RM9中SRCPND和INTPND都是通過(guò)寫(xiě)一清零的。還有,最初跑馬燈不知如何控制,通過(guò)小組合作以及老師的幫助下,認(rèn)真的分析了代碼,終于搞懂了跑馬燈的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論