第五章 應(yīng)用系統(tǒng)設(shè)計與調(diào)試_第1頁
第五章 應(yīng)用系統(tǒng)設(shè)計與調(diào)試_第2頁
第五章 應(yīng)用系統(tǒng)設(shè)計與調(diào)試_第3頁
第五章 應(yīng)用系統(tǒng)設(shè)計與調(diào)試_第4頁
第五章 應(yīng)用系統(tǒng)設(shè)計與調(diào)試_第5頁
已閱讀5頁,還剩129頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、ARM 應(yīng)用系統(tǒng)設(shè)計第五章 應(yīng)用系統(tǒng)設(shè)計佘黎煌東北大學(xué)信息科學(xué)與工程學(xué)院電子信息工程研究所第5章 目錄q0.概述q1.W90P710簡介q2.最小系統(tǒng)的設(shè)計q3.ARM應(yīng)用系統(tǒng)的設(shè)計q4.外擴存儲器管理及存儲重映射q5.GPIO的控制q6.中斷的管理華邦的ARM產(chǎn)品網(wǎng)絡(luò)通訊平臺系列多媒體終端平臺系列5.1 簡介nW90P710微控制器概述 華邦W90P710采用ARM的ARM7TDMI微處理器核以及0.18 m工藝生產(chǎn),標(biāo)準(zhǔn)工作頻率可達(dá)80 MHz,內(nèi)建一個Ethernet MAC,采用176/128引腳LQPF封裝,具有省電與低成本的優(yōu)勢。 W90P710還集成了USB 1.1主/設(shè)備控制器

2、,讓各種應(yīng)用可以透過USB接口連接各種計算機周邊產(chǎn)品,增添了產(chǎn)品的整體附加價值。W90P710/W90N745內(nèi)建的4 KB ICache以及4 KB DCache,也可以隨產(chǎn)品開發(fā)人員的需求,設(shè)定為OnChip RAM。w90p710Sm卡FLASHSDRAM電源UARTUSB設(shè)備USB主機PS2ETHW90P710SD鍵盤晶振JTAG1 網(wǎng)絡(luò)監(jiān)控2 便攜式RFID手持機n采用W90P710處理器n采用LINUX,3寸TFT顯示n采用MICROWINDOWS 圖形用戶界面nRFID標(biāo)簽卡讀寫頭n無線的CDMA通訊n有線的USB,以太網(wǎng) ,UART通訊2 便攜式RFID手持機3 數(shù)碼相框方案3

3、 W90p710數(shù)碼相框方案3 數(shù)碼相框方案5.2 最小系統(tǒng)n簡介 一個嵌入式處理器自己是不能獨立工作的,必須給它供電、加上時鐘信號、提供復(fù)位信號,如果芯片沒有片內(nèi)程序存儲器,則還要加上存儲器系統(tǒng),然后嵌入式處理器芯片才可能工作。這些提供嵌入式處理器運行所必須的條件的電路與嵌入式處理器共同構(gòu)成了這個嵌入式處理器的最小系統(tǒng)。而大多數(shù)基于ARM7處理器核的微控制器都有調(diào)試接口,這部分在芯片實際工作時不是必需的,但因為這部分在開發(fā)時很重要,所以也把這部分也歸入最小系統(tǒng)中。 6.1 最小系統(tǒng)n簡介嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)可選,因為許多面向嵌入式領(lǐng)域的微

4、控制器內(nèi)部集成了程序和數(shù)據(jù)存儲器最小系統(tǒng)框圖可選,但是在樣品階段通常都會設(shè)計這部分電路嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)n各部件簡介電源供電系統(tǒng)(電源) 電源系統(tǒng)為整個系統(tǒng)提供能量,是整個系統(tǒng)工作的基礎(chǔ),具有極其重要的地位,但卻往往被忽略。如果電源系統(tǒng)處理得好,整個系統(tǒng)的故障往往減少了一大半。嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)n各部件簡介時鐘 目前所有的微控制器均為時序電路,需要一個時鐘信號才能工作,大多數(shù)微控制器具有晶體振蕩器。簡單的方法是

5、利用微控制器內(nèi)部的晶體振蕩器,但有些場合(如減少功耗、需要嚴(yán)格同步等情況)需要使用外部振蕩源提供時鐘信號。 時鐘系統(tǒng)嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)n各部件簡介復(fù)位及其芯片配置 微控制器在上電時狀態(tài)并不確定,這造成微控制器不能正確工作。為解決這個問題,所有微控制器均有一個復(fù)位邏輯,它負(fù)責(zé)將微控制器初始化為某個確定的狀態(tài)。這個復(fù)位邏輯需要一個復(fù)位信號才能工作。一些微控制器自己在上電時會產(chǎn)生復(fù)位信號,但大多數(shù)微控制器需要外部輸入這個信號。這個信號的穩(wěn)定性和可靠性對微控制器的正常工作有重大影響。 復(fù)位及其配置系統(tǒng)嵌入式控制器時鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系

6、統(tǒng)存儲器系統(tǒng)供電系統(tǒng)(電源)n各部件簡介存儲器系統(tǒng) 對于大部分微控制器來說,存儲器系統(tǒng)不是必需的,但如果微控制器沒有片內(nèi)程序存儲器或數(shù)據(jù)存儲器時,就必須設(shè)計存儲器系統(tǒng),這一般通過微控制器的外部總線接口實現(xiàn)。 存儲器系統(tǒng)5.2 ARM系統(tǒng)設(shè)計5.2 ARM系統(tǒng)設(shè)計n系統(tǒng)(核心板)n電源n晶振nCPUnFLASHnSDRAMnUARTnJTAGnRTCnUSB(ETH)(可選可選)n主面板(應(yīng)用板):其他所有可外擴的功能模塊W90P710 核心板的設(shè)計W90p710核心板的設(shè)計W90P710核心板的設(shè)計POWEROWERCLOCKPLL的設(shè)置RTC的設(shè)計晶振RESET復(fù)位:系統(tǒng)中W90P710和以

7、太網(wǎng)控制芯片DM9161等都需要低電平的復(fù)位信號,系統(tǒng)采用STM809芯片來產(chǎn)生復(fù)位信號,產(chǎn)生200ms左右的低脈沖用于整個系統(tǒng)復(fù)位JTAGn標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO.分別為測試模式選擇、測試時鐘、測試數(shù)據(jù)輸入和測試數(shù)據(jù)輸出。用于實現(xiàn)在線編程的功能,如在線調(diào)試、對板載FLASH進行編程。nBoot flash8/16位寬度O ECSBL S 1D15:8CEO EW EI O 7:0 A a_m :0 BL S 0D7: 0CEO EW EI O 7:0 A a_m :0 A a_b:1 O ECSW ECEO EW EUBLBI O 15:0 A a_m :0

8、 D 15:0 BLS 0A a_b:1 BLS 1a)16 位寬存儲器組連接8位的存儲器芯片a)16位寬存儲器組連接16位的存儲器芯片O ECSBL S 1D15:8CEO EW EI O 7:0 A a_m :0 BL S 0D7: 0CEO EW EI O 7:0 A a_m :0 A a_b:1 O ECSW ECEO EW EUBLBI O 15:0 A a_m :0 D 15:0 BLS 0A a_b:1 BLS 1a)16 位寬存儲器組連接8位的存儲器芯片a)16位寬存儲器組連接16位的存儲器芯片由1片16位寬度的存儲器芯片構(gòu)成16位存儲器由2片8位寬度的存儲器芯片構(gòu)成16位存儲

9、器O EC SBLS 0D 7: 0C EO EW EI O 7: 0A a_m : 0A a_b: 0由1片8位寬度的存儲器芯片構(gòu)成8位存儲器使用字節(jié)定位引腳BLS0作為寫使能信號BOOT FLASHBOOT FLASHn系統(tǒng)擴張了Winboard公司W(wǎng)19B/L320S的2Mx16的并行FLASH,W90P710復(fù)位后訪問的是低地址空間,因此FLASH片選采用nBTCS,默認(rèn)的地址空間是0 x0000 00000 x00FF FFFF,本系統(tǒng)的FLASH地址為0 x0000 00000 x003F FFFFn系統(tǒng)要上拉SDD12,下拉SDD13,啟動FLASH總線寬度為16位nsdram3

10、2位寬度A a_b:2 BLS 1D 15:8 CEO EW EI O 7:0 A a_m :0 BLS 0D 7:0 CEO EW EI O 7:0 A a_m :0 O ECSBLS3D 31:24CEO EW EI O 7:0 A a_m :0 BLS 2D23:1 6CEO EW EI O 7:0 A a_m :0 a)32 位寬存儲器組連接8位的存儲器芯片b)32位寬存儲器組連接16位的存儲器芯片O ECSW ECEO EW EB3B2B1B0I O 31:0 A a_m :0 D 31:0 BLS 2A a_b:0 BLS 3BLS 0BLS 1c)32 位寬存儲器組連接32位的存

11、儲器芯片O ECSW ECEO EW EUBLBI O 15:0 A a_m :0 D 31:16BLS2CEO EW EUBLBI O 15:0 A a_m :0 D 15:0BLS 0A a_b:2 BLS3BLS 1A a_b:2 BLS 1D 15:8 CEO EW EI O 7:0 A a_m :0 BLS 0D 7:0 CEO EW EI O 7:0 A a_m :0 O ECSBLS3D 31:24CEO EW EI O 7:0 A a_m :0 BLS 2D23:1 6CEO EW EI O 7:0 A a_m :0 a)32 位寬存儲器組連接8位的存儲器芯片b)32位寬存儲器

12、組連接16位的存儲器芯片O ECSW ECEO EW EB3B2B1B0I O 31:0 A a_m :0 D 31:0 BLS 2A a_b:0 BLS 3BLS 0BLS 1c)32 位寬存儲器組連接32位的存儲器芯片O ECSW ECEO EW EUBLBI O 15:0 A a_m :0 D 31:16BLS2CEO EW EUBLBI O 15:0 A a_m :0 D 15:0BLS 0A a_b:2 BLS3BLS 1A a_b:2 BLS 1D 15:8 CEO EW EI O 7:0 A a_m :0 BLS 0D 7:0 CEO EW EI O 7:0 A a_m :0 O

13、 ECSBLS3D 31:24CEO EW EI O 7:0 A a_m :0 BLS 2D23:1 6CEO EW EI O 7:0 A a_m :0 a)32 位寬存儲器組連接8位的存儲器芯片b)32位寬存儲器組連接16位的存儲器芯片O ECSW ECEO EW EB3B2B1B0I O 31:0 A a_m :0 D 31:0 BLS 2A a_b:0 BLS 3BLS 0BLS 1c)32 位寬存儲器組連接32位的存儲器芯片O ECSW ECEO EW EUBLBI O 15:0 A a_m :0 D 31:16BLS2CEO EW EUBLBI O 15:0 A a_m :0 D 1

14、5:0BLS 0A a_b:2 BLS3BLS 1由1片32位寬度的存儲器芯片構(gòu)成32位存儲器由2片16位寬度的存儲器芯片構(gòu)成32位存儲器由4片8位的存儲器芯片構(gòu)成32位存儲器sdramn系統(tǒng)2片1Mx4Bankx16bit的SDRAM。一片是高16位,一片是低16位,組成16MB的內(nèi)存空間。 使用UART0通信需要兩個引腳,分別為:引腳名稱類型描述RxD0輸入串行輸入,接收數(shù)據(jù)TxD0輸出串行輸出,發(fā)送數(shù)據(jù)n使用UART0通信W90P710的I/O電壓為3.3V(可承受5V),連接時須注意電平的匹配。與PC機相連時,由于PC機串口是RS232電平,所以連接時需要使用RS232轉(zhuǎn)換器。W90P

15、710其它通信設(shè)備W90P710PC機串口232電平轉(zhuǎn)換TxD0RxD0TxD0RxD0TxD0RxD0TxD0RxD0UART的電路原理圖n一般都使用最基本的串行通信功能,只需RXD、TXD 和GND 3 根信號線,但由于RS-232-C 標(biāo)準(zhǔn)與W90P710 系統(tǒng)的LV TTL 電路所定義的通信電平幅值完全不同,LV TTL 的標(biāo)準(zhǔn)邏輯“1”對應(yīng)2V3.3V 電平,標(biāo)準(zhǔn)邏輯“0”對應(yīng)00.4V電平,而RS-232-C 標(biāo)準(zhǔn)采用負(fù)邏輯方式,標(biāo)準(zhǔn)邏輯“1”對應(yīng)515V 電平,標(biāo)準(zhǔn)邏輯“0”對應(yīng)515V 電平,所以要把W90P710 的UART 信號轉(zhuǎn)換成RS-232-C 標(biāo)準(zhǔn)的信號,在系統(tǒng)中是

16、通過芯片MAX202C 進行電平轉(zhuǎn)換的,然后再連接至DB9 接口。USB 主機接口電路nUSB 主機接口電路采用A 型USB 接口端子,USB 信號通過D1 + 和D1-兩根信號線進行傳輸。在USB 供電方面采用專用的電源芯片AMC3526H,該芯片能提供500mA 電流的供電能力,具有過載保護功能;CTL1 引腳控制電壓的關(guān)斷和開啟;FLG1 引腳能反饋電源芯片當(dāng)前的工作狀態(tài)USB設(shè)備接口電路nUSB 設(shè)備接口采用B 型微小USB 接口。當(dāng)接到外部USB 主機時,可由外部USB 主機對其供電,并且可以通過系統(tǒng)的復(fù)位信號拉低D2+信號,給掛接的外部USB 主機提供一個上電喚醒信號5.3 W90

17、P710主板的設(shè)計W90P710主板的設(shè)計POWERLCDETHSDSDI2SI2CPS2PS2第5章 目錄q0.概述q1.W90P710簡介q2.最小系統(tǒng)的設(shè)計q3.ARM應(yīng)用系統(tǒng)的設(shè)計q4.外擴存儲器管理及存儲重映射q5.GPIO的控制q6.中斷的管理4.外擴存儲器管理及存儲重映射n需要的掌握的內(nèi)容1.W90P710(或ARM)在復(fù)位的時候,如何來識別外部固態(tài)存儲器的類型,總線寬度,并讀取代碼?2. W90P710如何來外擴存儲器的,比如,FLASH、SDRAM、SRAM?3.什么是特殊功能寄存器,如何讀寫?4.內(nèi)存映射如何實現(xiàn)?5.4.1 W90P710的存儲組織nW90P710提供2G

18、 Bytes 的cacheable address space(0 x0000_0000 0 x7FDF_FFFF)和2G Bytes 的non-acheable (0 x8000_00000 xFFDF_FFFF) n內(nèi)部的特殊功能寄存器的地址為1M Bytes在 0 xFFF0_0000 0 xFFFF_FFFF的地址nW90P710內(nèi)部SRAM的地址是0XFFE0_0000地址n W90P710的EBI (External BUS interface)nEBI用于對外部存儲的訪問控制,包括可選的1 BANK的ROM/FLASH BANK (256KB16MB)2 BANK的SDRAM B

19、ANK (2MB64MB)4 BANK的External I/O bank (256KB16MB)n每個BANK有22個地址線,支持8位,16位,32位讀寫存儲重新映射nSDRAM的讀寫速度比FLASH快nUCLINUX,LINUX都是把代碼拷貝到SDRAM中,然后運行n異常向量總是放在0X0地址開始的8個字的存儲單元。FLASHSDRAM0X0000_00000X0040_0000SDRAMFLASH0X0000_00000X0100_0000復(fù)位時初始化完成EBI控制寄存器FLASH的讀寫時序正常分頁SDRAM的控制第5章 目錄q0.概述q1.W90P710簡介q2.最小系統(tǒng)的設(shè)計q3.A

20、RM應(yīng)用系統(tǒng)的設(shè)計q4.外擴存儲器管理及存儲重映射外擴存儲器管理及存儲重映射q5.GPIO的控制q6.中斷的管理中斷的管理存儲重新映射nSDRAM的讀寫速度比FLASH快nUCLINUX,LINUX都是把代碼拷貝到SDRAM中,然后運行n異常向量總是放在0X0地址開始的8個字的存儲單元。FLASHSDRAM0X0000_00000X0040_0000SDRAMFLASH0X0000_00000X0100_0000復(fù)位時初始化完成EBI控制寄存器基地址為基地址為ROMCON 的的31:19左移左移18,相當(dāng)把低相當(dāng)把低19位清位清0,整個數(shù)整個數(shù)右移右移1位位; 0 x02040084的 基地址

21、為多少?,4M開始的地址應(yīng)該為什么數(shù)? 基地址為基地址為SDCONF0的的31:19左移左移18,相當(dāng)把低相當(dāng)把低19位清位清0,整整個數(shù)右移個數(shù)右移1位位; 設(shè)置EBI總線 基地址為基地址為ROMCON 或或SDCONF0的的31:19左移左移18,相當(dāng)把相當(dāng)把低低19位清位清0,整個數(shù)右移整個數(shù)右移1位位nEBICONEQU0 xFFF01000;EBI control registernROMCONEQU0 xFFF01004;ROM/FLASH control registernSDCONF0EQU0 xFFF01008;SDRAM bank 0 configuration regis

22、ternSDCONF1EQU0 xFFF0100C;SDRAM bank 1 configuration registernSDTIME0EQU0 xFFF01010;SDRAM bank 0 timing control registernSDTIME1EQU0 xFFF01014;SDRAM bank 1 timing control registerFLASHSDRAM0X0000_00000X0040_0000SDRAMFLASH0X0000_00000X0100_0000復(fù)位時初始化完成如何設(shè)置EBI總線(復(fù)位時)n;Flash 04Mn;SDRAM 420MnADRL r0, In

23、it_SystemMemoryn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6nInit_SystemMemorynDCD0 x000530C1 ;EBICOMnDCD0 x00040084 ;ROMCOM 基址 0 x0000_0000nDCD0 x008090E4 ;SDCONF0 基址 0 x0040_0000nDCD0 x200090E4 ;SDCONF1nDCD0 x0000014B ;SDTIME0nDCD0 x0000014B ;SDTIME0FLASHSDRAM0X0000_00000X0040_0000如何設(shè)置EBI總線(

24、復(fù)位之后)n;Flash 1620Mn;SDRAM 016MnADRL r0, Remap_SystemMemoryn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6nRemap_SystemMemoryn DCD0 x000530C1 ;EBICOMnDCD 0 x02040084;ROMCOM 基址 0 x01000000 , 16M開始nDCD0 x000090E4;SDCONF0 基址 0 x00000000 , 0開始nDCD0 x200090E4 ;SDCONF1nDCD0 x0000014B ;SDTIME0nDCD0 x000

25、0014B ;SDTIME0SDRAMFLASH0X0000_00000X0100_0000n;Initialise the system memoryn;Flash 04Mn;SDRAM 420MnADRL r0, Init_SystemMemoryn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6nLDR r0, =0 x0;the start address of romnLDRr1, =0 x300000;the size of romnLDRr2, =0 x400000;the start address of sdramnCopy

26、_LoopLDRr3, r0, #4nSTRr3, r2, #4nSUBSr1, r1, #4nBNECopy_Loopnn;Remap the system memoryn;Flash 1620Mn;SDRAM 016MnADRL r0, Remap_SystemMemoryn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6 Init_SystemMemoryDCD0 x000530C1DCD0 x00040084DCD0 x008090E4DCD0 x200090E4 DCD0 x0000014BDCD0 x0000014BRemap_S

27、ystemMemoryDCD0 x000530C1DCD0 x02040084DCD0 x000090E4DCD0 x200090E4 DCD0 x0000014B DCD0 x0000014B第5章 目錄q0.概述q1.W90P710簡介q2.最小系統(tǒng)的設(shè)計q3.ARM應(yīng)用系統(tǒng)的設(shè)計q4.外擴存儲器管理及存儲重映射q5.GPIO的控制q6.中斷的管理5.GPIO的控制n需要掌握的內(nèi)容n1.如何實現(xiàn)GPIO的復(fù)用功能?n2.如何控制GPIO的輸入輸出?引角的復(fù)用GPIO0AC97_nRESETnIRQ4P0.05.5 GPIO(引腳配置)n引腳功能選擇使用示例 w90p710微控制器的引腳一般

28、是多個功能復(fù)用,但是同一引腳在同一 引腳在同一時刻只能使用其中一個功能,這可以通過設(shè)置GPIO_CFG寄存器來選擇,詳細(xì)介紹見“引腳連接模塊”小節(jié)。通過GPIO_CFG控制引腳功能USBPWRENW90P710的GPIOnGPIO(General Purpose Input/Output)nW90P710擁有71個GPIO分成7個組W90P710的GPIO配制nGPIO_CFG用于配制是用普通的IO還是用于功能模塊nGPIO_DIR表示用于普通IO時,是用于輸入還用于輸出nGPIO_DATAOUT,用于輸出時的輸出寄存器nGPIO_DATAIN,用于輸入時的輸入寄存器.GPIO_CFG的作用G

29、PIO_CFG的設(shè)置(為GPIO功能)nGPIO_CFG0 EQU 0XFFF8_3000;定義地址nLDR R0,=GPIO_CFG0 ;讀取GPIO_CFG0地址到R0nLDR R1,R0;讀取GPIO_CFG0的值到R1nBIC R1,0X03;設(shè)置PT0CFG0為0,即為GPIO0nSTR R1,R0 n ;將設(shè)置好的值寫入寄存器 GPIO_DIR的作用GPIO_DIR0的設(shè)置nGPIO_DIR0 EQU 0XFFF83004;定義地址nLDR R0,= GPIO_DIR0 ;讀取GPIO_DIR0地址到R0nLDR R1,R0;讀取GPIO_CFG0的值到R1nORR R1,0X01

30、 ; BIC R1,0X01;設(shè)置PORT0的GPIO0為輸出nSTR R1,R0 n ;將設(shè)置好的值寫入寄存器 GPIO_DATAOUT的作用GPIO_DATAOUT0的設(shè)置代碼nGPIO_DATAOUT0 EQU 0XFFF8_3008;定義地址nLDR R0,= GPIO_DATAOUT0;讀取GPIO_DATAOUT0地址到R0nLDR R1,R0;讀取GPIO_DATAOUT0的值到R1n0RR R1,0X01 ; BIC R1,0X01;設(shè)置GPIO0的電平nSTR R1,R0 n ;將GPIO0輸出GPIO_DATAIN的作用GPIO_DATAIN的設(shè)置代碼nGPIO_DATAI

31、N EQU 0XFFF8_300C;定義地址nLDR R0,= GPIO_DATAIN ;讀取GPIO_DATAIN地址到R0nLDR R1,R0;讀取GPIO_DATAIN的值到R1nANDS R1,0X01;”1”,NE條件成立,”0”EQ條件成立 ;屏蔽其它的數(shù)據(jù)位,此時R1為0為低電平 ;R1為1為高電平設(shè)計實例(鍵按下,燈亮)GPIO_CFG0 EQU 0XFFF8_3000 ;低低10位位GPIO_DIR0 EQU 0XFFF8_3004;低低5位位GPIO_DATAOUT0 EQU 0XFFF8_3008 ;低低5位位GPIO_DATAIN EQU 0XFFF8_300C ;低低

32、5位位P0.0 P0.1GPIO的配制GPIO_CFG0 EQU 0XFFF83000 GPIO_DIR0 EQU 0XFFF83004GPIO_DATAOUT0 EQU 0XFFF83008GPIO_DATAIN EQU 0XFFF8300CAREA Start, CODE,READONLY ;設(shè)置名稱設(shè)置名稱(Start)及屬性及屬性ENTRYLDR R0,=GPIO_CFG0 ;讀讀GPIO_CFG0地址到地址到R0LDR R1,R0;讀取讀取GPIO_CFG0的值到的值到R1BIC R1,0X0F ; 設(shè)置為設(shè)置為GPIO0:1STR R1,R0 ;將設(shè)置好的值寫入寄存器將設(shè)置好的值寫

33、入寄存器LDR R0,= GPIO_DIR0 ;讀取讀取GPIO_DIR0地址到地址到R0LDR R1,R0;讀取讀取GPIO_CFG0的值到的值到R10RR R1,0X02 ;設(shè)置設(shè)置PORT0的的GPIO0為輸入為輸入BIC R1,0X01;設(shè)置設(shè)置PORT0的的GPIO1為輸出為輸出STR R1,R0 ;將設(shè)置好的值寫入寄存器將設(shè)置好的值寫入寄存器 操作LOOP1LDR R0,= GPIO_DATAIN;讀讀GPIO_DATAIN地址到地址到R0LDR R1,= GPIO_DATAOUT0;讀讀GPIO_DATAOUT0地址到地址到R0LDR R2,R0;讀取讀取GPIO_DATAIN的

34、值到的值到R1LDR R3,R1; GPIO_DATAOUT0TST R2,0X01 ;判斷是否有鍵按下判斷是否有鍵按下ORRNE R3,0X02 ;沒有鍵按下位沒有鍵按下位2置置1BICEQ R3,0X02; 有有鍵按下位有有鍵按下位2置置0STR R3,R1 ;輸出輸出 MOV R2,0X20000LOOP2SUBSR2,R2,#01 BNELOOP2 ;延時子程序延時子程序BLOOP1 ;循環(huán)點亮發(fā)光二極管循環(huán)點亮發(fā)光二極管ENDGPIO0AC97_nRESETnIRQ4P0.05.5 GPIO(引腳配置)n引腳功能選擇使用示例 w90p710微控制器的引腳一般是多個功能復(fù)用,但是同一引

35、腳在同一 引腳在同一時刻只能使用其中一個功能,這可以通過設(shè)置GPIO_CFG寄存器來選擇,詳細(xì)介紹見“引腳連接模塊”小節(jié)。通過GPIO_CFG控制引腳功能USBPWRENGPIO_CFG的作用GPIO_CFG的設(shè)置(為GPIO功能)nGPIO_CFG0 EQU 0XFFF8_3000;定義地址nLDR R0,=GPIO_CFG0 ;讀取GPIO_CFG0地址到R0nLDR R1,R0;讀取GPIO_CFG0的值到R1nBIC R1,0X03;設(shè)置PT0CFG0為0,即為GPIO0nSTR R1,R0 n ;將設(shè)置好的值寫入寄存器 第5章 目錄q0.概述q1.W90P710簡介q2.最小系統(tǒng)的設(shè)

36、計q3.ARM應(yīng)用系統(tǒng)的設(shè)計q4.外擴存儲器管理及存儲重映射q5.GPIO的控制q6.中斷的管理6.中斷的管理n需要掌握的內(nèi)容nW90P710如何識別中斷源,即為那個部件引起的中斷?nW90P710如何跳到相應(yīng)的中斷服務(wù)函數(shù)?n中斷向量表是如何設(shè)定的?n最終的目的學(xué)會如何設(shè)計ARM的中斷處理程序5.6 W90P710的中斷控制器(AIC)n向量中斷控制器概述 ARM7TDMI內(nèi)核具有兩個中斷輸入,分別為IRQ中斷和FIQ中斷。但是芯片內(nèi)部有許多中斷源,最多可以有32個中斷輸入請求。向量中斷控制器的作用就是允許哪些中斷源可以產(chǎn)生中斷、可以產(chǎn)生哪類中斷、產(chǎn)生中斷后執(zhí)行哪段服務(wù)程序。ARM7TDMI

37、-SIRQFIQAIC中斷請求輸入0中斷請求輸入31. . .W90P710的中斷控制器(AIC)nARM7TDMI處理器提供兩種中斷模式, 快速中斷快速中斷 (FIQ) 模式用于緊急事件處理,而中斷模式中斷模式 (IRQ) 用于普通事件處理。n可以處理32個不同的中斷源,可獨立開啟或屏蔽,每個中斷源有一個唯一的中斷號.n支持8個不同的優(yōu)先級,當(dāng)優(yōu)先級為0時,表示處理的是FIQ中斷,為17時,表示的是IRQ中斷n支持的中斷觸發(fā)方式n低電平n高電平n下降沿觸發(fā)n上升沿觸發(fā)中斷的任務(wù)n1.判斷是產(chǎn)生的中斷是IRQ還是FIQ.n2.應(yīng)該執(zhí)行的是31個中的那個中斷.n3.找到相應(yīng)的中斷服務(wù)程序去執(zhí)行n

38、4.返回,判斷下一個中斷.幾個概念n中斷時的電平中斷時的電平n中斷條件滿足標(biāo)志中斷條件滿足標(biāo)志n中斷條件滿足中斷條件滿足,并且相應(yīng)的中斷號的使能的并且相應(yīng)的中斷號的使能的n中斷條件滿足中斷條件滿足,并且相應(yīng)的中斷號的使能并且相應(yīng)的中斷號的使能,并且優(yōu)并且優(yōu)先級最高先級最高n中斷屏蔽中斷屏蔽(MASK)標(biāo)志標(biāo)志n中斷屏蔽的設(shè)置中斷屏蔽的設(shè)置n中斷屏蔽的解除中斷屏蔽的解除n中斷向量中斷向量,中斷號中斷號31個中斷源及相應(yīng)的中斷號中斷觸發(fā)方式及優(yōu)先級設(shè)置nIRQ0為FIQ,下降沿觸發(fā)AIC_SCR2 EQU 0 xFFF82008LDR R0,=AIC_SCR2LDR R1,R0BIC R1,0XC

39、0;(1100_0000)ORR R1,0X80; 設(shè)置為下降沿BIC R1,0X07; 設(shè)置FIQ,優(yōu)先級為0STR R1,R0;中斷寄存器功能 AIC_IRSR0 xFFF8.2100R Interrupt Raw Status Register,中斷電平中斷電平0 x0000.0000 AIC_IASR0 xFFF8.2104R Interrupt Active Status Register,條件滿足條件滿足0 x0000.0000 AIC_ISR0 xFFF8.2108R Interrupt Status Register條件滿足且未屏蔽條件滿足且未屏蔽0 x0000.0000 AI

40、C_IPER0 xFFF8.210CR Interrupt Priority Encoding Register,優(yōu)先級優(yōu)先級0 x0000.0000 AIC_ISNR0 xFFF8.2110R Interrupt Source Number Register0 x0000.0000 AIC_IMR0 xFFF8.2114R Interrupt Mask Register,那些被屏蔽那些被屏蔽0 x0000.0000 AIC_OISR0 xFFF8.2118R Output Interrupt Status Register0 x0000.0000 AIC_MECR0 xFFF8.2120W

41、Mask Enable Command Register,使能命令使能命令Undefined AIC_MDCR0 xFFF8.2124W Mask Disable Command Register屏蔽命令屏蔽命令Undefined AIC_SSCR0 xFFF8.2128W Source Set Command Register,防真防真Undefined AIC_SCCR0 xFFF8.212CW Source Clear Command Register,防真防真Undefined AIC_EOSCR0 xFFF8.2130W End of Service Command Register

42、,完成當(dāng)前完成當(dāng)前UndefinedAIC_TEST0 xFFF8.2200W ICE/Debug mode RegisterUndefined中斷寄存器功能(AIC_SRSR)中斷寄存器功能(AIC_IASR)中斷寄存器功能(AIC_IASR)中斷寄存器功能(AIC_ISR)中斷寄存器功能(AIC_IPER)中斷寄存器功能(AIC_ISNR)中斷寄存器功能(AIC_OISR)中斷寄存器功能(AIC_IMR)中斷寄存器功能(AIC_MECR)設(shè)置nIRQ0中斷使能AIC_MECR EQU 0XFFF82120LDR R0,=AIC_MECR MOV R1,0X04 STR R1,R0中斷寄存器

43、功能(AIC_MDCR)設(shè)置nIRQ0中斷使能AIC_MECR EQU 0XFFF82120AIC_MDCR EQU 0XFFF82124使能nIRQ0,允許其產(chǎn)生中斷 LDR R0,=AIC_MECR MOV R1,0X04 STR R1,R0 屏蔽nIRQ0,不允許其產(chǎn)生中斷 LDR R0,=AIC_MDCR MOV R1,0X04 STR R1,R0中斷寄存器功能(AIC_SSCR)中斷寄存器功能(AIC_SCCR)中斷寄存器功能(AIC_EOSCR)0 x0000 00000 xFFFF FFFF用戶程序中斷服務(wù)程序異常向量表1.正在執(zhí)行用戶程序;2.外部中斷0發(fā)生中斷;3.AIC硬件

44、將中斷服務(wù)程序地址裝入AIC_IPER寄存器;4.程序跳轉(zhuǎn)至異常向量表中IRQ入口0 x0018處;5.執(zhí)行指令跳轉(zhuǎn)至AIC_IPER寄存器中的中斷服務(wù)地址;6.中斷服務(wù)程序執(zhí)行完畢,返回被中斷的用戶程序繼續(xù)執(zhí)行被中斷的代碼。n圖示IRQ中斷的發(fā)生過程中斷流程n讀寄存器AIC_IPER獲取向量(IRQ x 4), 這時,AIC_ISNR會裝載當(dāng)前中斷號,這個向量(IRQ x 4)表明了哪個中斷是打開的,活躍的并且優(yōu)先級是最高的,乘上4然后存在寄存器AIC_IPER 。從AIC_IPER 獲取的數(shù)據(jù)(向量)方便下面中斷服務(wù)程序地址的計算。n通過添加向量到中斷向量表來跳到相應(yīng)的中斷服務(wù)程序執(zhí)行。n

45、寫任意值到AIC_EOSCR來結(jié)束中斷。中斷流程StartRead AIC_IPERGet the BranchAddressJump to InterruptService RoutineWrite AIC_EOSCREndAIC_IPER = IRQ_Number * 4Bit31:7Reserved6:2IRQ Number1:00Branchaddress = AIC_IPER +INT_TABLE_BASEWrite by Any Value to endthis interrupt service中斷向量表的定義nAREA Vect, CODE, READONLYn ENTRYns

46、tart n BReset_Handlern BUndefined_Addr n BSWI_Addrn BPrefetch_Addrn BAbort_Addrn B. n BIRQ_Addrn BFIQ_Addr異常的處理nUndefined_Addr ;未定義異常n STMFDSP!,R0-R12,lrn BLUndefined_Handlern LDMFDSP!,R0-R12,LR n SUBSPC, LR, #0 nSWI_Addr ;軟件中斷(管理模式)n STMFDSP!,R0-R12,lrn BLSWI_Handlern LDMFDSP!,R0-R12,LR n SUBSPC, LR, #0nPrefetch_A

溫馨提示

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

評論

0/150

提交評論