版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、ARM 應(yīng)用系統(tǒng)設(shè)計(jì)第五章 應(yīng)用系統(tǒng)設(shè)計(jì)佘黎煌東北大學(xué)信息科學(xué)與工程學(xué)院電子信息工程研究所第5章 目錄q0.概述q1.W90P710簡介q2.最小系統(tǒng)的設(shè)計(jì)q3.ARM應(yīng)用系統(tǒng)的設(shè)計(jì)q4.外擴(kuò)存儲(chǔ)器管理及存儲(chǔ)重映射q5.GPIO的控制q6.中斷的管理華邦的ARM產(chǎn)品網(wǎng)絡(luò)通訊平臺(tái)系列多媒體終端平臺(tái)系列5.1 簡介nW90P710微控制器概述 華邦W90P710采用ARM的ARM7TDMI微處理器核以及0.18 m工藝生產(chǎn),標(biāo)準(zhǔn)工作頻率可達(dá)80 MHz,內(nèi)建一個(gè)Ethernet MAC,采用176/128引腳LQPF封裝,具有省電與低成本的優(yōu)勢(shì)。 W90P710還集成了USB 1.1主/設(shè)備控制器
2、,讓各種應(yīng)用可以透過USB接口連接各種計(jì)算機(jī)周邊產(chǎn)品,增添了產(chǎn)品的整體附加價(jià)值。W90P710/W90N745內(nèi)建的4 KB ICache以及4 KB DCache,也可以隨產(chǎn)品開發(fā)人員的需求,設(shè)定為OnChip RAM。w90p710Sm卡FLASHSDRAM電源UARTUSB設(shè)備USB主機(jī)PS2ETHW90P710SD鍵盤晶振JTAG1 網(wǎng)絡(luò)監(jiān)控2 便攜式RFID手持機(jī)n采用W90P710處理器n采用LINUX,3寸TFT顯示n采用MICROWINDOWS 圖形用戶界面nRFID標(biāo)簽卡讀寫頭n無線的CDMA通訊n有線的USB,以太網(wǎng) ,UART通訊2 便攜式RFID手持機(jī)3 數(shù)碼相框方案3
3、 W90p710數(shù)碼相框方案3 數(shù)碼相框方案5.2 最小系統(tǒng)n簡介 一個(gè)嵌入式處理器自己是不能獨(dú)立工作的,必須給它供電、加上時(shí)鐘信號(hào)、提供復(fù)位信號(hào),如果芯片沒有片內(nèi)程序存儲(chǔ)器,則還要加上存儲(chǔ)器系統(tǒng),然后嵌入式處理器芯片才可能工作。這些提供嵌入式處理器運(yùn)行所必須的條件的電路與嵌入式處理器共同構(gòu)成了這個(gè)嵌入式處理器的最小系統(tǒng)。而大多數(shù)基于ARM7處理器核的微控制器都有調(diào)試接口,這部分在芯片實(shí)際工作時(shí)不是必需的,但因?yàn)檫@部分在開發(fā)時(shí)很重要,所以也把這部分也歸入最小系統(tǒng)中。 6.1 最小系統(tǒng)n簡介嵌入式控制器時(shí)鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲(chǔ)器系統(tǒng)供電系統(tǒng)(電源)可選,因?yàn)樵S多面向嵌入式領(lǐng)域的微
4、控制器內(nèi)部集成了程序和數(shù)據(jù)存儲(chǔ)器最小系統(tǒng)框圖可選,但是在樣品階段通常都會(huì)設(shè)計(jì)這部分電路嵌入式控制器時(shí)鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲(chǔ)器系統(tǒng)供電系統(tǒng)(電源)嵌入式控制器時(shí)鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲(chǔ)器系統(tǒng)供電系統(tǒng)(電源)n各部件簡介電源供電系統(tǒng)(電源) 電源系統(tǒng)為整個(gè)系統(tǒng)提供能量,是整個(gè)系統(tǒng)工作的基礎(chǔ),具有極其重要的地位,但卻往往被忽略。如果電源系統(tǒng)處理得好,整個(gè)系統(tǒng)的故障往往減少了一大半。嵌入式控制器時(shí)鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲(chǔ)器系統(tǒng)供電系統(tǒng)(電源)n各部件簡介時(shí)鐘 目前所有的微控制器均為時(shí)序電路,需要一個(gè)時(shí)鐘信號(hào)才能工作,大多數(shù)微控制器具有晶體振蕩器。簡單的方法是
5、利用微控制器內(nèi)部的晶體振蕩器,但有些場合(如減少功耗、需要嚴(yán)格同步等情況)需要使用外部振蕩源提供時(shí)鐘信號(hào)。 時(shí)鐘系統(tǒng)嵌入式控制器時(shí)鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系統(tǒng)存儲(chǔ)器系統(tǒng)供電系統(tǒng)(電源)n各部件簡介復(fù)位及其芯片配置 微控制器在上電時(shí)狀態(tài)并不確定,這造成微控制器不能正確工作。為解決這個(gè)問題,所有微控制器均有一個(gè)復(fù)位邏輯,它負(fù)責(zé)將微控制器初始化為某個(gè)確定的狀態(tài)。這個(gè)復(fù)位邏輯需要一個(gè)復(fù)位信號(hào)才能工作。一些微控制器自己在上電時(shí)會(huì)產(chǎn)生復(fù)位信號(hào),但大多數(shù)微控制器需要外部輸入這個(gè)信號(hào)。這個(gè)信號(hào)的穩(wěn)定性和可靠性對(duì)微控制器的正常工作有重大影響。 復(fù)位及其配置系統(tǒng)嵌入式控制器時(shí)鐘系統(tǒng)調(diào)試測試接口復(fù)位及其配置系
6、統(tǒng)存儲(chǔ)器系統(tǒng)供電系統(tǒng)(電源)n各部件簡介存儲(chǔ)器系統(tǒng) 對(duì)于大部分微控制器來說,存儲(chǔ)器系統(tǒng)不是必需的,但如果微控制器沒有片內(nèi)程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),就必須設(shè)計(jì)存儲(chǔ)器系統(tǒng),這一般通過微控制器的外部總線接口實(shí)現(xiàn)。 存儲(chǔ)器系統(tǒng)5.2 ARM系統(tǒng)設(shè)計(jì)5.2 ARM系統(tǒng)設(shè)計(jì)n系統(tǒng)(核心板)n電源n晶振nCPUnFLASHnSDRAMnUARTnJTAGnRTCnUSB(ETH)(可選可選)n主面板(應(yīng)用板):其他所有可外擴(kuò)的功能模塊W90P710 核心板的設(shè)計(jì)W90p710核心板的設(shè)計(jì)W90P710核心板的設(shè)計(jì)POWEROWERCLOCKPLL的設(shè)置RTC的設(shè)計(jì)晶振RESET復(fù)位:系統(tǒng)中W90P710和以
7、太網(wǎng)控制芯片DM9161等都需要低電平的復(fù)位信號(hào),系統(tǒng)采用STM809芯片來產(chǎn)生復(fù)位信號(hào),產(chǎn)生200ms左右的低脈沖用于整個(gè)系統(tǒng)復(fù)位JTAGn標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO.分別為測試模式選擇、測試時(shí)鐘、測試數(shù)據(jù)輸入和測試數(shù)據(jù)輸出。用于實(shí)現(xiàn)在線編程的功能,如在線調(diào)試、對(duì)板載FLASH進(jìn)行編程。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 位寬存儲(chǔ)器組連接8位的存儲(chǔ)器芯片a)16位寬存儲(chǔ)器組連接16位的存儲(chǔ)器芯片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 位寬存儲(chǔ)器組連接8位的存儲(chǔ)器芯片a)16位寬存儲(chǔ)器組連接16位的存儲(chǔ)器芯片由1片16位寬度的存儲(chǔ)器芯片構(gòu)成16位存儲(chǔ)器由2片8位寬度的存儲(chǔ)器芯片構(gòu)成16位存儲(chǔ)
9、器O EC SBLS 0D 7: 0C EO EW EI O 7: 0A a_m : 0A a_b: 0由1片8位寬度的存儲(chǔ)器芯片構(gòu)成8位存儲(chǔ)器使用字節(jié)定位引腳BLS0作為寫使能信號(hào)BOOT FLASHBOOT FLASHn系統(tǒng)擴(kuò)張了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,啟動(dòng)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 位寬存儲(chǔ)器組連接8位的存儲(chǔ)器芯片b)32位寬存儲(chǔ)器組連接16位的存儲(chǔ)器芯片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 位寬存儲(chǔ)器組連接32位的存
11、儲(chǔ)器芯片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 位寬存儲(chǔ)器組連接8位的存儲(chǔ)器芯片b)32位寬存儲(chǔ)器
12、組連接16位的存儲(chǔ)器芯片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 位寬存儲(chǔ)器組連接32位的存儲(chǔ)器芯片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 位寬存儲(chǔ)器組連接8位的存儲(chǔ)器芯片b)32位寬存儲(chǔ)器組連接16位的存儲(chǔ)器芯片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 位寬存儲(chǔ)器組連接32位的存儲(chǔ)器芯片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位寬度的存儲(chǔ)器芯片構(gòu)成32位存儲(chǔ)器由2片16位寬度的存儲(chǔ)器芯片構(gòu)成32位存儲(chǔ)器由4片8位的存儲(chǔ)器芯片構(gòu)成32位存儲(chǔ)器sdramn系統(tǒng)2片1Mx4Bankx16bit的SDRAM。一片是高16位,一片是低16位,組成16MB的內(nèi)存空間。 使用UART0通信需要兩個(gè)引腳,分別為:引腳名稱類型描述RxD0輸入串行輸入,接收數(shù)據(jù)TxD0輸出串行輸出,發(fā)送數(shù)據(jù)n使用UART0通信W90P710的I/O電壓為3.3V(可承受5V),連接時(shí)須注意電平的匹配。與PC機(jī)相連時(shí),由于PC機(jī)串口是RS232電平,所以連接時(shí)需要使用RS232轉(zhuǎn)換器。W90P
15、710其它通信設(shè)備W90P710PC機(jī)串口232電平轉(zhuǎn)換TxD0RxD0TxD0RxD0TxD0RxD0TxD0RxD0UART的電路原理圖n一般都使用最基本的串行通信功能,只需RXD、TXD 和GND 3 根信號(hào)線,但由于RS-232-C 標(biāo)準(zhǔn)與W90P710 系統(tǒng)的LV TTL 電路所定義的通信電平幅值完全不同,LV TTL 的標(biāo)準(zhǔn)邏輯“1”對(duì)應(yīng)2V3.3V 電平,標(biāo)準(zhǔn)邏輯“0”對(duì)應(yīng)00.4V電平,而RS-232-C 標(biāo)準(zhǔn)采用負(fù)邏輯方式,標(biāo)準(zhǔn)邏輯“1”對(duì)應(yīng)515V 電平,標(biāo)準(zhǔn)邏輯“0”對(duì)應(yīng)515V 電平,所以要把W90P710 的UART 信號(hào)轉(zhuǎn)換成RS-232-C 標(biāo)準(zhǔn)的信號(hào),在系統(tǒng)中是
16、通過芯片MAX202C 進(jìn)行電平轉(zhuǎn)換的,然后再連接至DB9 接口。USB 主機(jī)接口電路nUSB 主機(jī)接口電路采用A 型USB 接口端子,USB 信號(hào)通過D1 + 和D1-兩根信號(hào)線進(jìn)行傳輸。在USB 供電方面采用專用的電源芯片AMC3526H,該芯片能提供500mA 電流的供電能力,具有過載保護(hù)功能;CTL1 引腳控制電壓的關(guān)斷和開啟;FLG1 引腳能反饋電源芯片當(dāng)前的工作狀態(tài)USB設(shè)備接口電路nUSB 設(shè)備接口采用B 型微小USB 接口。當(dāng)接到外部USB 主機(jī)時(shí),可由外部USB 主機(jī)對(duì)其供電,并且可以通過系統(tǒng)的復(fù)位信號(hào)拉低D2+信號(hào),給掛接的外部USB 主機(jī)提供一個(gè)上電喚醒信號(hào)5.3 W90
17、P710主板的設(shè)計(jì)W90P710主板的設(shè)計(jì)POWERLCDETHSDSDI2SI2CPS2PS2第5章 目錄q0.概述q1.W90P710簡介q2.最小系統(tǒng)的設(shè)計(jì)q3.ARM應(yīng)用系統(tǒng)的設(shè)計(jì)q4.外擴(kuò)存儲(chǔ)器管理及存儲(chǔ)重映射q5.GPIO的控制q6.中斷的管理4.外擴(kuò)存儲(chǔ)器管理及存儲(chǔ)重映射n需要的掌握的內(nèi)容1.W90P710(或ARM)在復(fù)位的時(shí)候,如何來識(shí)別外部固態(tài)存儲(chǔ)器的類型,總線寬度,并讀取代碼?2. W90P710如何來外擴(kuò)存儲(chǔ)器的,比如,FLASH、SDRAM、SRAM?3.什么是特殊功能寄存器,如何讀寫?4.內(nèi)存映射如何實(shí)現(xiàn)?5.4.1 W90P710的存儲(chǔ)組織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用于對(duì)外部存儲(chǔ)的訪問控制,包括可選的1 BANK的ROM/FLASH BANK (256KB16MB)2 BANK的SDRAM B
19、ANK (2MB64MB)4 BANK的External I/O bank (256KB16MB)n每個(gè)BANK有22個(gè)地址線,支持8位,16位,32位讀寫存儲(chǔ)重新映射nSDRAM的讀寫速度比FLASH快nUCLINUX,LINUX都是把代碼拷貝到SDRAM中,然后運(yùn)行n異常向量總是放在0X0地址開始的8個(gè)字的存儲(chǔ)單元。FLASHSDRAM0X0000_00000X0040_0000SDRAMFLASH0X0000_00000X0100_0000復(fù)位時(shí)初始化完成EBI控制寄存器FLASH的讀寫時(shí)序正常分頁SDRAM的控制第5章 目錄q0.概述q1.W90P710簡介q2.最小系統(tǒng)的設(shè)計(jì)q3.A
20、RM應(yīng)用系統(tǒng)的設(shè)計(jì)q4.外擴(kuò)存儲(chǔ)器管理及存儲(chǔ)重映射外擴(kuò)存儲(chǔ)器管理及存儲(chǔ)重映射q5.GPIO的控制q6.中斷的管理中斷的管理存儲(chǔ)重新映射nSDRAM的讀寫速度比FLASH快nUCLINUX,LINUX都是把代碼拷貝到SDRAM中,然后運(yùn)行n異常向量總是放在0X0地址開始的8個(gè)字的存儲(chǔ)單元。FLASHSDRAM0X0000_00000X0040_0000SDRAMFLASH0X0000_00000X0100_0000復(fù)位時(shí)初始化完成EBI控制寄存器基地址為基地址為ROMCON 的的31:19左移左移18,相當(dāng)把低相當(dāng)把低19位清位清0,整個(gè)數(shù)整個(gè)數(shù)右移右移1位位; 0 x02040084的 基地址
21、為多少?,4M開始的地址應(yīng)該為什么數(shù)? 基地址為基地址為SDCONF0的的31:19左移左移18,相當(dāng)把低相當(dāng)把低19位清位清0,整整個(gè)數(shù)右移個(gè)數(shù)右移1位位; 設(shè)置EBI總線 基地址為基地址為ROMCON 或或SDCONF0的的31:19左移左移18,相當(dāng)把相當(dāng)把低低19位清位清0,整個(gè)數(shù)右移整個(gè)數(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í)初始化完成如何設(shè)置EBI總線(復(fù)位時(shí))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è)計(jì)q3.ARM應(yīng)用系統(tǒng)的設(shè)計(jì)q4.外擴(kuò)存儲(chǔ)器管理及存儲(chǔ)重映射q5.GPIO的控制q6.中斷的管理5.GPIO的控制n需要掌握的內(nèi)容n1.如何實(shí)現(xiàn)GPIO的復(fù)用功能?n2.如何控制GPIO的輸入輸出?引角的復(fù)用GPIO0AC97_nRESETnIRQ4P0.05.5 GPIO(引腳配置)n引腳功能選擇使用示例 w90p710微控制器的引腳一般
28、是多個(gè)功能復(fù)用,但是同一引腳在同一 引腳在同一時(shí)刻只能使用其中一個(gè)功能,這可以通過設(shè)置GPIO_CFG寄存器來選擇,詳細(xì)介紹見“引腳連接模塊”小節(jié)。通過GPIO_CFG控制引腳功能USBPWRENW90P710的GPIOnGPIO(General Purpose Input/Output)nW90P710擁有71個(gè)GPIO分成7個(gè)組W90P710的GPIO配制nGPIO_CFG用于配制是用普通的IO還是用于功能模塊nGPIO_DIR表示用于普通IO時(shí),是用于輸入還用于輸出nGPIO_DATAOUT,用于輸出時(shí)的輸出寄存器nGPIO_DATAIN,用于輸入時(shí)的輸入寄存器.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ù)位,此時(shí)R1為0為低電平 ;R1為1為高電平設(shè)計(jì)實(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 ;延時(shí)子程序延時(shí)子程序BLOOP1 ;循環(huán)點(diǎn)亮發(fā)光二極管循環(huán)點(diǎn)亮發(fā)光二極管ENDGPIO0AC97_nRESETnIRQ4P0.05.5 GPIO(引腳配置)n引腳功能選擇使用示例 w90p710微控制器的引腳一般是多個(gè)功能復(fù)用,但是同一引
35、腳在同一 引腳在同一時(shí)刻只能使用其中一個(gè)功能,這可以通過設(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、計(jì)q3.ARM應(yīng)用系統(tǒng)的設(shè)計(jì)q4.外擴(kuò)存儲(chǔ)器管理及存儲(chǔ)重映射q5.GPIO的控制q6.中斷的管理6.中斷的管理n需要掌握的內(nèi)容nW90P710如何識(shí)別中斷源,即為那個(gè)部件引起的中斷?nW90P710如何跳到相應(yīng)的中斷服務(wù)函數(shù)?n中斷向量表是如何設(shè)定的?n最終的目的學(xué)會(huì)如何設(shè)計(jì)ARM的中斷處理程序5.6 W90P710的中斷控制器(AIC)n向量中斷控制器概述 ARM7TDMI內(nèi)核具有兩個(gè)中斷輸入,分別為IRQ中斷和FIQ中斷。但是芯片內(nèi)部有許多中斷源,最多可以有32個(gè)中斷輸入請(qǐng)求。向量中斷控制器的作用就是允許哪些中斷源可以產(chǎn)生中斷、可以產(chǎn)生哪類中斷、產(chǎn)生中斷后執(zhí)行哪段服務(wù)程序。ARM7TDMI
37、-SIRQFIQAIC中斷請(qǐng)求輸入0中斷請(qǐng)求輸入31. . .W90P710的中斷控制器(AIC)nARM7TDMI處理器提供兩種中斷模式, 快速中斷快速中斷 (FIQ) 模式用于緊急事件處理,而中斷模式中斷模式 (IRQ) 用于普通事件處理。n可以處理32個(gè)不同的中斷源,可獨(dú)立開啟或屏蔽,每個(gè)中斷源有一個(gè)唯一的中斷號(hào).n支持8個(gè)不同的優(yōu)先級(jí),當(dāng)優(yōu)先級(jí)為0時(shí),表示處理的是FIQ中斷,為17時(shí),表示的是IRQ中斷n支持的中斷觸發(fā)方式n低電平n高電平n下降沿觸發(fā)n上升沿觸發(fā)中斷的任務(wù)n1.判斷是產(chǎn)生的中斷是IRQ還是FIQ.n2.應(yīng)該執(zhí)行的是31個(gè)中的那個(gè)中斷.n3.找到相應(yīng)的中斷服務(wù)程序去執(zhí)行n
38、4.返回,判斷下一個(gè)中斷.幾個(gè)概念n中斷時(shí)的電平中斷時(shí)的電平n中斷條件滿足標(biāo)志中斷條件滿足標(biāo)志n中斷條件滿足中斷條件滿足,并且相應(yīng)的中斷號(hào)的使能的并且相應(yīng)的中斷號(hào)的使能的n中斷條件滿足中斷條件滿足,并且相應(yīng)的中斷號(hào)的使能并且相應(yīng)的中斷號(hào)的使能,并且優(yōu)并且優(yōu)先級(jí)最高先級(jí)最高n中斷屏蔽中斷屏蔽(MASK)標(biāo)志標(biāo)志n中斷屏蔽的設(shè)置中斷屏蔽的設(shè)置n中斷屏蔽的解除中斷屏蔽的解除n中斷向量中斷向量,中斷號(hào)中斷號(hào)31個(gè)中斷源及相應(yīng)的中斷號(hào)中斷觸發(fā)方式及優(yōu)先級(jí)設(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)先級(jí)為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)先級(jí)優(yōu)先級(jí)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), 這時(shí),AIC_ISNR會(huì)裝載當(dāng)前中斷號(hào),這個(gè)向量(IRQ x 4)表明了哪個(gè)中斷是打開的,活躍的并且優(yōu)先級(jí)是最高的,乘上4然后存在寄存器AIC_IPER 。從AIC_IPER 獲取的數(shù)據(jù)(向量)方便下面中斷服務(wù)程序地址的計(jì)算。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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鏈家新人培訓(xùn)管理制度
- 培訓(xùn)中心教師保密制度
- 毛絨玩具老員工培訓(xùn)新人獎(jiǎng)勵(lì)制度
- 礦山火工品教育培訓(xùn)制度
- 以工代訓(xùn)培訓(xùn)考核制度
- vr培訓(xùn)使用管理制度
- 培訓(xùn)制度政策匯編規(guī)定
- 幼兒園年輕教師培訓(xùn)制度
- 幼兒園教師經(jīng)費(fèi)培訓(xùn)制度
- 生產(chǎn)工藝培訓(xùn)制度及流程
- 2026北京市通州區(qū)事業(yè)單位公開招聘工作人員189人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 2025~2026學(xué)年山東省菏澤市牡丹區(qū)第二十一初級(jí)中學(xué)八年級(jí)上學(xué)期期中歷史試卷
- 2026國家統(tǒng)計(jì)局儀征調(diào)查隊(duì)招聘輔助調(diào)查員1人(江蘇)考試參考試題及答案解析
- 2026年及未來5年市場數(shù)據(jù)中國脫硫市場運(yùn)行態(tài)勢(shì)及行業(yè)發(fā)展前景預(yù)測報(bào)告
- 水利工程施工質(zhì)量檢測方案
- 2025年北京高中合格考政治(第一次)試題和答案
- 卵巢類癌診治中國專家共識(shí)(2025年版)
- 中國農(nóng)業(yè)科學(xué)院2026年度第一批統(tǒng)一公開招聘筆試考試參考試題及答案解析
- 飼料運(yùn)輸合同范本
- 臨床護(hù)理教學(xué)中的人文關(guān)懷
- DB6109∕T 317-2025 庫區(qū)消落帶桑樹生態(tài)修復(fù)技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論