




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目 錄EL-ARM-830實(shí)驗(yàn)系統(tǒng)的資源介紹1實(shí)驗(yàn)一 ADS1.2開發(fā)平臺及匯編語言程序設(shè)計17實(shí)驗(yàn)二 基于ARM的C語言程序設(shè)計27實(shí)驗(yàn)三 基于ARM的硬件BOOT程序的基本設(shè)計32實(shí)驗(yàn)四 ARM的I/O接口實(shí)驗(yàn)36實(shí)驗(yàn)五 ARM的定時器實(shí)驗(yàn)45實(shí)驗(yàn)六 ARM的中斷實(shí)驗(yàn)50 EL-ARM-830實(shí)驗(yàn)系統(tǒng)的資源介紹ARM實(shí)驗(yàn)箱硬件資源概述 EL-ARM-830型教學(xué)實(shí)驗(yàn)系統(tǒng)屬于一種綜合的教學(xué)實(shí)驗(yàn)系統(tǒng),該系統(tǒng)采用了目前在國內(nèi)普遍認(rèn)同的ARM7TDMI核,32位微處理器,實(shí)現(xiàn)了多模塊的應(yīng)用實(shí)驗(yàn)。它是集學(xué)習(xí)、應(yīng)用編程、開發(fā)研究于一體ARM實(shí)驗(yàn)教學(xué)系統(tǒng)。用戶可根據(jù)自己的需求選用不同類型的CPU適配板,
2、在不需要改變?nèi)魏闻渲们闆r下,完成從ARM7到ARM9的升級,同時,實(shí)驗(yàn)系統(tǒng)上的Tech_V總線能夠拓展較為豐富的實(shí)驗(yàn)接口板。用戶在了解Tech_V標(biāo)準(zhǔn)后,更能研發(fā)出不同用途的實(shí)驗(yàn)接口板。除此之外,在實(shí)驗(yàn)板上有豐富的外圍擴(kuò)展資源(數(shù)字、模擬信號發(fā)生器,數(shù)字量IO輸入輸出,語音編解碼、人機(jī)接口等單元),可以完成ARM的基礎(chǔ)實(shí)驗(yàn)、算法實(shí)驗(yàn)和數(shù)據(jù)通信實(shí)驗(yàn)、以太網(wǎng)實(shí)驗(yàn)。 圖1-1 EL-ARM-830實(shí)驗(yàn)教學(xué)系統(tǒng)的功能框圖1.1 實(shí)驗(yàn)系統(tǒng)的硬件資源總覽CPU單元:內(nèi)核ARM7TDMI,芯片三星的S3C44B0X,工作頻率最高66MHz;線性存儲器:2MB, 芯片SST39VF160;動態(tài)存儲器:16MB
3、,芯片HY57V641620; USB單元: 1個主接口,兩個設(shè)備接口,芯片SL811H/S,PDIUSBD12; 網(wǎng)絡(luò)單元: 10M以太網(wǎng),芯片RTL8019AS; UART單元: 2個,最高通信波特率115200bps; 語音單元: IIS格式,芯片UDA1341TS,采樣頻率最高48KHz; LCD單元: 5.7寸,256色,320X240像素; 觸摸屏單元: 四線電阻屏,320X240,5.7寸; SD卡單元: 通信頻率最高25MHz,芯片W86L388D,兼容MMC卡; 鍵盤單元: 4X4鍵盤,帶8位LED數(shù)碼管;芯片HD7279A; 模擬輸入輸出單元:8個帶自鎖的按鍵,及8個LED
4、發(fā)光管; A/D轉(zhuǎn)換單元:芯片自帶的8路10位A/D,滿量程2.5V; 信號源單元: 方波輸出; 標(biāo)準(zhǔn)鍵盤及PS2鼠標(biāo)接口; 標(biāo)準(zhǔn)的IDE硬盤接口; 達(dá)盛公司的Tech_V總線接口; 達(dá)盛公司的E_Lab總線接口; 調(diào)試接口: 20針JTAG; CPLD單元; 電源模塊單元。1.2 核心板的資源介紹1.核心板的硬件資源(ARM7TDMI核)在核心CPU板上包括下列單元和芯片,32位ARM7TDMI的處理器,即三星的S3C44B0芯片,兩片動態(tài)存儲器,每片8M字節(jié),一片2M字節(jié)線性flash存儲器,一個USB主從芯片,完成USB的主從通信選擇,一個10M的以太網(wǎng)控制芯片,完成網(wǎng)絡(luò)訪問功能,一個U
5、ART接口,完成串口通信,最高波特率率為115200bps, 一個RTC實(shí)時時鐘,一個5V轉(zhuǎn)3.3V和2.5V的電源管理模塊,一個20針的JTAG調(diào)試接口。具體元器件見表1-1。表1-1 具體元器件芯片名稱數(shù)量功能板上標(biāo)號S3C44B0X1ARM7TDMI,中央處理器ARMHY57V6416202動態(tài)存儲器(SDRAM),16MBU10,U11SST39VF1601線性flash,存儲芯片,2MBU9SL8111USB主/從控制U14RTL8019AS110M以太網(wǎng)控制U12LM1117-3.315V轉(zhuǎn)3.3VU5LM1117-2.515V轉(zhuǎn)2.5VU4MAX32321RS232轉(zhuǎn)換U2IMP
6、811-S1復(fù)位U7具體的單元、跳線見表1-2。表1-2 具體單元、跳線標(biāo)號名稱功能POWER5V電源單元電源供應(yīng),(需內(nèi)正外負(fù)插頭)S1電源開關(guān)打開/關(guān)閉5V電源SW1復(fù)位鍵系統(tǒng)復(fù)位按鍵J1串口0單元和S3C44B0X的串口0通信P3主USB單元主USBP5從USB單元USB設(shè)備U13網(wǎng)絡(luò)單元訪問以太網(wǎng)SW2USB主從選擇開關(guān)1、2“ON”;3、4“OFF” 為主1、2“OFF”;3、4“ON” 為從JP1RTC時鐘開關(guān)短接為啟動RTC時鐘JP2JTAG單元20針調(diào)試接口JP4從設(shè)備數(shù)據(jù)D+、D-上拉上短接為D-上拉,下短接為D+上拉J4功能單元J7數(shù)據(jù)、地址單元J9功能單元核心板上各LED
7、指示燈的意義見表1-3。表1-3 LED指示燈標(biāo)號名稱功能D1LED燈串口0發(fā)送數(shù)據(jù)指示D2LED燈串口0接收數(shù)據(jù)指示D3LED燈電源指示D5LED燈網(wǎng)口正常指示D6LED燈接收、發(fā)送數(shù)據(jù)指示D7LED燈GPI/O 口B口的一位指示D8LED燈GPI/O 口B口的一位指示核心板上的晶振單元見表1-4。表1-4 晶振單元標(biāo)號名稱功能X1CPU主時鐘晶振外接8MHzY1RTC時鐘晶振外接32.768KHzY2網(wǎng)絡(luò)時鐘晶振外接20MHzY3USB時鐘晶振外接 12MHz2核心板資源的具體介紹1)電源模塊在S3C44B0 CPU板上由于其內(nèi)核采用2.5V,I/O接口采用3.3V供電,因此需要將通用的5
8、V轉(zhuǎn)換成2.5V和3.3V。圖1-2為使用LM1117電源轉(zhuǎn)換芯片把5V轉(zhuǎn)成3.3V和2.5V的轉(zhuǎn)換電路。2)線性flash存儲器單元該存儲單元在板卡上標(biāo)號為U9,選用2MB字節(jié)的 SST39VF160,16位數(shù)據(jù)總線,片選接NGCS0,CPU分配給它的地址空間為0x000000000x001fffff,也就是S3C44BOCPU的bank0區(qū)。啟動代碼部分則放在從0x00000000開始的地址空間內(nèi)。程序代碼可以在里面執(zhí)行。3)同步動態(tài)存儲器單元該存儲單元在板卡上標(biāo)號為U10,U11。選用兩片8MB字節(jié)的 HY57V641620,16位數(shù)據(jù)總線。片選NSCS0接U10單元,片選NSCS1接U
9、11單元,CPU分配給U10單元的地址空間為0x0C0000000x0C7fffff,也就是S3C44BOCPU的bank6區(qū)。CPU分配給U11單元的地址空間為0x0E0000000x0E7fffff,也就是S3C44BOCPU的bank7區(qū)。圖1-2 系統(tǒng)電源電路4)RS232串口單元該存儲單元在板卡上標(biāo)號為U2,在板卡的背面,選用了MAX3232CSE電壓轉(zhuǎn)換芯片,進(jìn)行PC機(jī)與CPU板的串口通訊。它采用收、發(fā)、地,三線連接,無握手信號。D1為向外部發(fā)送數(shù)據(jù)時的顯示燈,D2為接收外部數(shù)據(jù)時的顯示燈。通過S3C44B0X內(nèi)部的串口0控制器進(jìn)行控制。5)主/從USB單元該存儲單元在板卡上標(biāo)號為
10、U14,選用了SL811H/S主從芯片,8位數(shù)據(jù)總線傳輸,片選NGCS1接主/從USB單元,CPU分配給U14單元的地址空間為0x020000000x03ffffff,也就是S3C44BOCPU的bank1區(qū)。S3C44B0CPU的外部中斷ExINT0響應(yīng)主/從USB中斷。GPB4位控制芯片的主/從模式選擇。它是軟件控制方式。6)網(wǎng)絡(luò)單元該存儲單元在板卡上標(biāo)號為U12,選用了RTL8019AS網(wǎng)絡(luò)芯片,16位數(shù)據(jù)總線傳輸,片選NGCS3接網(wǎng)絡(luò)單元。CPU分配給U12單元的地址空間為0x060000000x07ffffff,也就是S3C44BOCPU的bank3區(qū)。S3C44B0CPU的外部中斷
11、ExINT1響應(yīng)該中斷。D5和D6為網(wǎng)絡(luò)的指示燈。為清楚顯示核心板上各存儲區(qū)及單元,見表1-5。表1-5 各存儲區(qū)及其單元標(biāo)號名稱存儲區(qū)存儲的有效區(qū)容量(字節(jié))U9線性存儲器Bank00x000000000x001fffff2MU10同步動態(tài)存儲器Bank60x0C0000000x0C7fffff8MU11同步動態(tài)存儲器Bank70x0C8000000x0D0000008MU12網(wǎng)絡(luò)控制器Band30x06000000后的若干若干寄存器U14USB控制器Bank10x02000000后的若干若干寄存器NAND_FLASH海量存儲器Bank20x040000000x04ffffff16M7)JT
12、AG單元JTAG(Joint Test Action Group,聯(lián)合測試行動小組)是一種國際標(biāo)準(zhǔn)測試協(xié)議,主要用于芯片內(nèi)部測試及對系統(tǒng)進(jìn)行仿真、調(diào)試,JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專門的測試電路TAP(Test Access Port,測試訪問口),通過專用的JTAG測試工具對內(nèi)部節(jié)點(diǎn)進(jìn)行測試。目前大多數(shù)比較復(fù)雜的器件都支持JTAG協(xié)議,如ARM、DSP、FPGA器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為測試模式選擇、測試時鐘、測試數(shù)據(jù)輸入和測試數(shù)據(jù)輸出。通過JTAG接口,可對芯片內(nèi)部的所有部件進(jìn)行訪問,因而是開發(fā)調(diào)試嵌入式系統(tǒng)的一種簡潔高
13、效的手段。目前JTAG接口的連接有兩種標(biāo)準(zhǔn),即14針接口和20針接口,EL-ARM-830核心上使用的是20針接口。接口定義見表1-6。表1-6 JTAG接口定義引 腳名 稱描 述1VTref目標(biāo)板參考電壓,接電源2VCC接電源3nTRST測試系統(tǒng)復(fù)位信號4、6、8、10、12、14、16、18、20GND接地5TDI測試數(shù)據(jù)串行輸入7TMS測試模式選擇9TCK測試時鐘11RTCK測試時鐘返回信號13TDO測試數(shù)據(jù)串行輸出15nRESET目標(biāo)系統(tǒng)復(fù)位信號17、19NC未連接在核心板上,JTAG的第1腳用一白色的方框標(biāo)注,當(dāng)串口、USB口、網(wǎng)絡(luò)口向左擺放時,第1腳下面的管腳為第2腳,它左面的管腳
14、依次為3,5,19;第2腳左面的管腳依次為4,6,20。1.3 實(shí)驗(yàn)箱底板的資源介紹1. 概述實(shí)驗(yàn)箱底板上的資源豐富,具體的實(shí)驗(yàn)單元有:LCD模塊,觸摸屏模塊,語音單元模塊,串口2模塊,USB設(shè)備模塊,電源模塊,模擬輸入輸出模塊,鍵盤模塊,CPLD燒寫模塊,鍵盤數(shù)碼管模塊,SD(MMC)卡模塊,A/D轉(zhuǎn)換模塊,信號源發(fā)生器模塊。以及PS2鼠標(biāo)鍵盤接口,IDE硬盤接口,Tech_V總線接口,E_LAB總線接口等等。實(shí)驗(yàn)箱上的底板詳細(xì)具體資源見表1-7。接下來詳細(xì)介紹各模塊單元。2. 底板資源的具體介紹1)模擬輸入輸出接口單元8bit的數(shù)字量輸入(由八個帶自鎖的開關(guān)產(chǎn)生),通過74LS244緩沖;
15、8bit的數(shù)字量輸出(通過八個LED燈顯示),通過74LS273鎖存。數(shù)字量的輸入輸出都映射到CPU的IO空間。數(shù)字值的顯示的通過八個LED燈和LCD屏,按下一個鍵,表示輸入一個十進(jìn)制的“0”值,8個鍵都不按下,則數(shù)字量的十進(jìn)制數(shù)值為255,8個鍵都按下,則數(shù)字量的十進(jìn)制數(shù)值為0,通過LED燈,和LCD的顯示可以清楚的看到實(shí)驗(yàn)結(jié)果。2)鍵盤數(shù)碼管模塊 鍵盤接口是由芯片HD7279A控制的,HD7279A是一片具有串行接口的,可同時驅(qū)動8位共陰式數(shù)碼管或(64只獨(dú)立LED)的智能顯示驅(qū)動芯片,該芯片同時還可連接多達(dá)64鍵的鍵盤矩陣,單片即可完成LED顯示,鍵盤接口的全部功能。HD7279A內(nèi)部含
16、有譯碼器,可直接接受BCD碼或16進(jìn)制碼,并同時具有2種譯碼方式。此外,還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。HD7279A具有片選信號,可方便地實(shí)現(xiàn)多于8位的顯示或多于64鍵的鍵盤接口。在該實(shí)驗(yàn)系統(tǒng)中,僅提供了16個鍵。3)USB設(shè)備模塊USB設(shè)備模塊,采用了飛利蒲的USB設(shè)備控制芯片PDIUSBD12,該芯片遵從USB1.1規(guī)范,最高通信率12Mbps,該單元位于實(shí)驗(yàn)箱的左下角。D3為通信狀態(tài)指示燈。使用外部中斷4來響應(yīng)中斷請求。4)串口1模塊串口1模塊,采用了美信的MAX202CPE芯片,通過它可以把PC的電信號轉(zhuǎn)換成實(shí)驗(yàn)箱可以使用的信號,它的最高串行通信波特率為115
17、200bps.表1-7 板底具體資源單元名稱關(guān)鍵控制芯片功能備注LCD模塊S3C44B0X內(nèi)置LCD控制器液晶顯示320X240,5.7寸,256色觸摸屏模塊ADS7843完成觸摸響應(yīng)12位轉(zhuǎn)換語音模塊UDA1341TS完成語音模擬信號的采集采樣率最高48KHz;串口1模塊MAX202CPE完成與PC機(jī)的串行數(shù)據(jù)的轉(zhuǎn)換最高串行通信率為115200 bps.USB設(shè)備模塊PDIUSBD12完成PC機(jī)與實(shí)驗(yàn)箱的USB通信控制USB1.1鍵盤數(shù)碼管模塊HD7279A中斷請求,數(shù)碼管顯示4X4鍵,8位數(shù)碼管模擬輸入輸出模塊74LS273,244完成數(shù)據(jù)鎖存,數(shù)據(jù)發(fā)送8位數(shù)據(jù)SD(MMC)卡模塊W86L
18、388DSD(MMC)卡命令的發(fā)送,數(shù)據(jù)的讀取最高時鐘25MHzA/D轉(zhuǎn)換模塊S3C44B0X內(nèi)置A/D轉(zhuǎn)換器采集模擬信號10位8路E_LAB總線接口留有擴(kuò)展接口,有擴(kuò)展板。信號源模塊自動產(chǎn)生信號源電源模塊5V,+12V,-12VPS2鼠標(biāo)鍵盤接口硬件擴(kuò)展口(有擴(kuò)展板)IDE硬盤接口留有擴(kuò)展接口Tech_V總線接口留有擴(kuò)展接口,有擴(kuò)展板。5)音頻模塊語音的模擬信號的編解碼采用了UDA1341TS芯片。該芯片有兩個串行同步變換通道、D/A轉(zhuǎn)換前的差補(bǔ)濾波器和A/D變換后的濾波器。其他部分提供片上時序和控制功能。芯片的各種應(yīng)用配置可以通過芯片的三根線,由串行通信編程來實(shí)現(xiàn)。主要包括:復(fù)位、節(jié)電模式
19、、通信協(xié)議、串行時鐘速率、信號采樣速率、增益控制和測試模式、音質(zhì)特性。最大采樣速率48kb/s。 語音處理單元由UDA1341TS模塊、輸出功率模塊組成。語音的模擬信號經(jīng)過偏置和濾波處理后輸入到語音的編解碼芯UDA1341TS中,UDA1341TS以IIS的語音格式送入S3C44B0X中,S3C44B0可以處理也可以不處理該信號,把它保存起來,也可用DMA控制而不經(jīng)過CPU處理,直接實(shí)時的采集,然后實(shí)時的播放出去。音頻信號通過D/A轉(zhuǎn)換后輸出,經(jīng)過一次功率放大,然后可以推動功率為0.4W的板載揚(yáng)聲器,也可以接耳機(jī)輸出,如圖1-3所示。圖1-3 語音處理單元原理框圖語音處理單元接口說明:LINE
20、_IN:音頻輸入端子,可輸入CD、聲卡、MP3等語音信號。MIC:音頻輸入端子,麥克風(fēng)等語音信號。SPEAKER:音頻輸出端子,可接耳機(jī)、音箱。語音處理單元旋鈕說明:“SPEAKER_R”:表1-8 SPEAKER_R使用說明逆時針旋轉(zhuǎn)音量變大順時針旋轉(zhuǎn)音量變小“SPEAKER_L”:表1-9 SPERKER_L的使用說明逆時針旋轉(zhuǎn)音量變大順時針旋轉(zhuǎn)音量變小6)LCD模塊本實(shí)驗(yàn)系統(tǒng)僅選用了LCD液晶顯示屏,LCD的控制器使用S3C44B0X的內(nèi)部集成的控制器,LCD屏選用的是5.7寸,320X240像素,256色的彩屏。電源操作范圍寬(2.7V to 5.5V);低功耗設(shè)計可滿足產(chǎn)品的省電要求
21、。其中,可調(diào)變位器VR2用于調(diào)節(jié)LCD屏色彩的對比度,產(chǎn)品出廠時,已設(shè)定成在室溫下較好的對比度,當(dāng)因溫度低或高等因素顯示不正常時,可適當(dāng)調(diào)節(jié)VR2到合適的色彩。一般請不要調(diào)整?!癡R2”:表1-10 VR2的使用說明逆時針旋轉(zhuǎn)LCD屏變亮順時針旋轉(zhuǎn)LCD屏變暗“LCD_ON/OFF”按鍵,控制著LCD屏的電源,是電源的開關(guān)。7)A/D轉(zhuǎn)換單元A/D轉(zhuǎn)換單元,采用S3C44B0X內(nèi)置的A/D轉(zhuǎn)換器,它包含一個8路模擬輸入混合器,12位模數(shù)轉(zhuǎn)換。最大轉(zhuǎn)換速率:100KSPS,輸入電壓范圍:0-2.5V輸入帶寬: 0-100 Hz(無采樣和保持電路),低的電源消耗。在本實(shí)驗(yàn)系統(tǒng)中,模擬輸入信號經(jīng)過降
22、壓、偏置處理后輸入A/D轉(zhuǎn)換器,然后轉(zhuǎn)換的數(shù)字量給S3C44B0X處理,如圖1-4所示。各路信號都來源于信號源單元輸出的方波。圖1-4模數(shù)單元原理框圖模數(shù)轉(zhuǎn)換單元撥碼開關(guān)說明見表1-11:SW3:撥碼開關(guān)表1-11 SW3撥碼開關(guān)說明碼位備注1ON, 采集的模擬信號從A/D轉(zhuǎn)換器的第1路輸入;OFF, A/D的第1路輸入懸空,缺省設(shè)置;2ON, 采集的模擬信號從A/D轉(zhuǎn)換器的第2路輸入;OFF, A/D的第2路輸入懸空,缺省設(shè)置;3ON, 采集的模擬信號從A/D轉(zhuǎn)換器的第3路輸入;OFF, A/D的第3路輸入懸空,缺省設(shè)置;4ON, 采集的模擬信號從A/D轉(zhuǎn)換器的第4路輸入;OFF, A/D的
23、第4路輸入懸空,缺省設(shè)置;5ON, 采集的模擬信號從A/D轉(zhuǎn)換器的第5路輸入;OFF, A/D的第5路輸入懸空,缺省設(shè)置;6ON, 采集的模擬信號從A/D轉(zhuǎn)換器的第6路輸入;OFF, A/D的第6路輸入懸空,缺省設(shè)置;7ON, 采集的模擬信號從A/D轉(zhuǎn)換器的第7路輸入;OFF, A/D的第7路輸入懸空,缺省設(shè)置;8ON, 采集的模擬信號從A/D轉(zhuǎn)換器的第8路輸入;OFF, A/D的第8路輸入懸空,缺省設(shè)置;插孔DGND為數(shù)字地,插孔ADIN為模擬電壓信號的輸入,輸入電壓的范圍02.5V。插孔SINE為正弦波輸出,當(dāng)系統(tǒng)上電后,輸出正弦波。插孔SQUARE為方波輸出。當(dāng)系統(tǒng)上電后,輸出方波。當(dāng)進(jìn)
24、行AD采樣實(shí)驗(yàn)時,使用連接線把SQUARE插孔和ADIN插孔連接起來,或者把SINE插孔和ADIN插孔連接起來。 8)PS2單元PS2單元中S5為復(fù)位鍵,U5_1接口為鍵盤接口,U4_2為鼠標(biāo)接口。D1為數(shù)據(jù)傳輸指示燈??刂菩酒瑸锳T2051。9)CPLD單元由于實(shí)驗(yàn)箱上的資源眾多,幾乎每一個設(shè)備資源都要使用片選信號或中斷信號或一些串口的信號,以及一些寄存器的地址等等,這樣一來,S3C44B0X的I/O資源是不能滿足的,因此該實(shí)驗(yàn)箱通過加入了一片CPLD芯片,用來完成各資源所需的地址譯碼,片選信號,以及一些高低電平的模擬。CPLD單元使用S3C44B0X的片選是NGCS4,地址是0x08000
25、0000x0a000000;由于底板上大多的資源都通過CPLD的地址譯碼,進(jìn)行片選電平的產(chǎn)生,以及模擬高低電平的產(chǎn)生,所以,應(yīng)給CPLD的地址里寫入相應(yīng)的數(shù)據(jù)以產(chǎn)生相應(yīng)的信號。表1-12列出了底板中所需信號的地址。#define clrcs1 (*(volatile unsigned *)0x08200004) = 0x01;#define setcs1 (*(volatile unsigned *)0x08200004) = 0x02;利用宏定義來代替置高、置低;給相應(yīng)的地址里寫1,表示該CPLD的相應(yīng)引腳輸出低電平,給相應(yīng)的地址里寫2,表示該CPLD的相應(yīng)引腳輸出高電平。有的地址需要寫入8
26、位數(shù)據(jù)。表1-12 底板中所需信號的地址標(biāo)號功能地址實(shí)現(xiàn)方法CS_PS_clrPS2鍵盤鼠標(biāo)的片選0x08200000在地址里寫0x01CS_PS_setPS2鍵盤鼠標(biāo)的禁止0x08200000在地址里寫0x02clrcs14X4鍵盤的片選0x08200004在地址里寫0x01setcs14X4鍵盤的禁止0x08200004在地址里寫0x02s_clrHD7279向CPLD發(fā)數(shù)據(jù)0x08800000在地址里寫0x01s_setCPLD向HD7279發(fā)數(shù)據(jù)0x08800000在地址里寫0x02CS_273數(shù)據(jù)線數(shù)據(jù)鎖存0x08400000在地址里寫入8位數(shù)據(jù)CS_244從數(shù)據(jù)線讀取數(shù)據(jù)0x082
27、00008從地址里讀取8位數(shù)據(jù)clrcs觸摸屏片選0x08400004在地址里寫0x01setcs觸摸屏禁止0x08400004在地址里寫0x02clrL3MIIS模式低電平0x08600004在地址里寫0x01clrL3CIIS時鐘低電平0x08600000在地址里寫0x01setL3MIIS模式時鐘高電平0x08600004在地址里寫0x02setL3CIIS時鐘高電平0x08600000在地址里寫0x02SETDATA設(shè)定數(shù)據(jù)發(fā)送地址0x08400008寫入相應(yīng)的數(shù)據(jù)(USB)SETADDR設(shè)定命令發(fā)送地址0x08400009寫入相應(yīng)的命令(USB)rCMD_PIPE_REG命令寄存器0
28、x08800000寫入相應(yīng)的數(shù)據(jù)(SD)rSTA_REG狀態(tài)寄存器0x08800002讀出相應(yīng)的狀態(tài)(SD)表1-12(續(xù)) 底板中所需信號的地址標(biāo)號功能地址實(shí)現(xiàn)方法rCON_REG控制寄存器0x08800002寫入相應(yīng)的命令(SD)rRCE_DAT_BUF接收數(shù)據(jù)緩沖器0x08800004讀出接收到的數(shù)據(jù)(SD)rTRA_DAT_BUF發(fā)送數(shù)據(jù)緩沖器0x08800004寫入要發(fā)送的數(shù)據(jù)(SD)rINT_STA_REG中斷狀態(tài)寄存器0x08800006讀出中斷的狀態(tài)(SD)rINT_ENA_REG中斷使能寄存器0x08800006寫入相應(yīng)的使能中斷(SD)rGPIO_DAT_REGGPIO數(shù)據(jù)
29、寄存器0x08800008寫入相應(yīng)的GPIO數(shù)據(jù)(SD)rGPIO_CON_REGGPIO控制寄存器0x08800008寫入相應(yīng)的GPIO命令(SD)rGPIO_INT_STA_REGGPIO中斷狀態(tài)寄存器0x0880000A讀出GPIO中斷的狀態(tài)(SD)rGPIO_INT_ENA_REGGPIO中斷使能寄存器0x0880000A寫入GPIO中斷的命令(SD)rIND_ADD_REG補(bǔ)充命令寄存器0x0880000C寫入補(bǔ)充命令的地址rIND_DAT_REG補(bǔ)充數(shù)據(jù)寄存器0x0880000E寫入補(bǔ)充命令具體的應(yīng)用,請詳見源碼程序。10)其它接口說明電源單元:為系統(tǒng)提供+5V、+12V、-12V
30、、+3.3V電源,其中各指示燈如表1-13所示。表1-13 電源指示燈標(biāo)號名稱功能LED15LED燈+3.3V電源指示LED16LED燈+5V電源指示LED17LED燈+12V電源指示LED18LED燈-12V電源指示 SW2:撥碼開關(guān),擴(kuò)展中斷選擇如表1-14所示。表1-14 擴(kuò)展中斷選擇 碼位功能1-ONEXT中斷2引出2-ON未定義3-ONEXT中斷3引出4-ONEXT中斷3用于PS2鍵盤鼠標(biāo)的中斷請求 在底板上,留出了兩列插孔,它們是供外部擴(kuò)展所用。具體功能見表1-15。表1-15 外部擴(kuò)展 標(biāo)號功能IICSCLS3C44B0X的IIC控制時鐘引出IICSDAS3C44B0X的IIC數(shù)
31、據(jù)線引出CS1CPLD的第100管腳的引出CS2CPLD的第77管腳的引出EXINT2S3C44B0X的外部中斷請求2管腳引出EXINT3S3C44B0X的外部中斷請求3管腳引出IO-1CPLD的第52管腳的引出IO-2CPLD的第97管腳的引出IOC-3S3C44B0X的TOUT1管腳引出,J4的13IOC-4S3C44B0X的TOUT3管腳引出,J4的45AIN3采集的模擬信號從第3路輸出AIN2采集的模擬信號從第2路輸出在信號擴(kuò)展單元處,又?jǐn)U展了PS2鍵盤鼠標(biāo)接口,還有IDE硬盤接口。在此對底板上的設(shè)備所使用的中斷作一總結(jié)。見表1-16。表1-16 底板上的設(shè)備所使用的中斷設(shè)備使用的中斷
32、網(wǎng)卡外部中斷EXINT1PS2外部中斷EXINT3USB設(shè)備外部中斷EXINT44X4鍵盤外部中斷EXINT5SD(MMC)卡外部中斷EXINT6觸摸屏外部中斷EXINT7IDE硬盤外部中斷EXINT7 SW4:撥碼開關(guān),ARM系列的CPU板卡選擇如表1-17所示。表1-17 CPU板卡選擇 功能 1 2ARM7offoffARM9OnoffARM10OffonARM11Onon綜上所述,本章介紹了該系統(tǒng)的硬件資源,看完本章內(nèi)容,應(yīng)該對實(shí)驗(yàn)系統(tǒng)有一個基本的了解,在后面的幾章中將會結(jié)合光盤資料給出的實(shí)驗(yàn)程序詳細(xì)介紹每個單元在實(shí)驗(yàn)中的具體應(yīng)用。 當(dāng)進(jìn)行嵌入式系統(tǒng)開發(fā)時,選擇合適的開發(fā)工具可以加快開
33、發(fā)進(jìn)度、節(jié)省開發(fā)成本。因此一套含有編輯軟件、編譯軟件、匯編軟件、連接軟件、調(diào)試軟件、工程管理及函數(shù)庫的集成開發(fā)環(huán)境(IDE)是必不可少的。當(dāng)今在ARM領(lǐng)域,被多數(shù)嵌入式開發(fā)人員使用的集成開發(fā)環(huán)境有ARM SDT2.5 和 ARM ADS,其中ARM ADS為ARM公司推出的新一代ARM集成開發(fā)工具,最新版本為ADS1.2。這兩種開發(fā)工具都是ARM公司為了方便用戶開發(fā)使用ARM內(nèi)核芯片而推出的,目前被廣泛應(yīng)用。這兩種開發(fā)工具各有自己的優(yōu)點(diǎn)和缺點(diǎn),SDT調(diào)試不需要仿真器,只要有一跟JTAG調(diào)試電纜就可以了,但是它在調(diào)試的時候占用CPU的資源,調(diào)試的穩(wěn)定性稍差,成本低,比較適合學(xué)生學(xué)習(xí)使用。ADS1
34、.2在仿真時要外接仿真器,其在調(diào)試時不占用CPU的資源,穩(wěn)定性好,但是成本高,適合用于科研教學(xué)和嵌入式的產(chǎn)品開發(fā)。在課程主要是針對ARM的實(shí)驗(yàn)開發(fā)環(huán)境、ARM的匯編、高級語言的使用,以及針對三星的44B0的硬件資源進(jìn)行一系列的硬件實(shí)驗(yàn)。這其中包括ARM ADS 1.2 開發(fā)環(huán)境創(chuàng)建與簡要介紹、基于ARM匯編語言程序設(shè)計、基于ARM的C語言程序設(shè)計 基于ARM的硬件boot程序設(shè)計、ARM的I/O接口實(shí)驗(yàn)、ARM的中斷實(shí)驗(yàn) 。這些實(shí)驗(yàn)是脫離操作系統(tǒng)的硬件實(shí)驗(yàn),通過此類實(shí)驗(yàn)可以了解和學(xué)習(xí)ARM硬件的架構(gòu)和軟件的啟動過程、運(yùn)行過程,真正理解ARM芯片的應(yīng)用。實(shí)驗(yàn)一 ADS1.2開發(fā)平臺及匯編語言程序
35、設(shè)計一、實(shí)驗(yàn)?zāi)康?. 熟悉ADS1.2開發(fā)環(huán)境,了解ARM匯編語言的基本框架,學(xué)會使用ARM的匯編語言編程。二、實(shí)驗(yàn)內(nèi)容1. 學(xué)習(xí)ADS1.2開發(fā)環(huán)境及匯編語言編程三、實(shí)驗(yàn)設(shè)備1PentiumII以上的PC機(jī)2PC操作系統(tǒng)WIN98或WIN2000或WINXP,ADS1.2集成開發(fā)環(huán)境四、實(shí)驗(yàn)步驟1. ADS1.2下建立工程1)運(yùn)行ADS1.2集成開發(fā)環(huán)境(CodeWarrior for ARM Developer Suite),點(diǎn)擊File|New,在New對話框中,選擇Project欄,其中共有7項,ARM Executable Image是ARM的通用模板,如圖2-1所示,選中它即可生成
36、ARM的執(zhí)行文件。在Project name欄中輸入工程的名稱,以及在Location中輸入其存放的位置(如在E:ARMtest文件夾下建立工程test)。按確定建立工程,出現(xiàn)如圖2-2所示的工程管理窗口。圖2-1 新建工程圖2-2 工程管理窗口2)點(diǎn)擊file/New,在New對話框中,選擇File選項,如圖2-3所示,新建匯編文件(如exam.s),并添加到新建的工程,同時選擇Targets方式,如圖2-3所示,最后,按確定。圖2-3 新建文件并添加到工程3)在新建的文件中輸入?yún)R編程序。4)在新建的工程中,選擇Debug版本,如圖2-4,使用Edit|Debug Settings菜單對De
37、bug版本進(jìn)行參數(shù)設(shè)置,彈出如圖2-5所示對話框。圖2-4 Targets方式選擇4)在如圖2-4中,點(diǎn)擊Debug Setting 按鈕,彈出2-5圖,選中Target Setting項,在Post-linker欄中選中ARM fromELF項。按OK確定。這是為生成可執(zhí)行的代碼的初始開關(guān)。圖2-5 Debug settings設(shè)置對話框5)在如圖2-6中,點(diǎn)擊ARM Assembler ,在Architecture or Processer欄中選ARM7TDMI。這是要編譯的CPU核。6)在如圖2-7中,點(diǎn)擊ARM C Compliler ,在Architecture or Process
38、er欄中選ARM7TDMI。這是要編譯的CPU核。圖2-6 ARM Assembler設(shè)置圖2-7 ARM C Compliler設(shè)置7)在如圖2-8中,點(diǎn)擊ARM linker ,在outpur欄中設(shè)定程序的代碼段地址,以及數(shù)據(jù)使用的地址。圖中的RO Base欄中填寫程序代碼存放的起始地址。RW Base欄中填寫程序數(shù)據(jù)存放的起始地址,該地址是屬于SDRAM的地址。本次實(shí)驗(yàn)室是軟件仿真實(shí)驗(yàn),不需要相應(yīng)的硬件,因此,在圖2-8中填入RO和RW是虛擬地址。(注:后面涉及到硬件時,RO和RW填入的必須是硬件資源中擴(kuò)展的存儲器空間地址。)在options欄中,如圖2-9,Image entry po
39、int要填寫程序代碼的入口地址,其他保持不變。圖2-8 代碼段和數(shù)據(jù)的起始地址設(shè)置圖2-9 程序代碼的入口地址在Layout欄中,如圖2-10,在Place at beginning of image框內(nèi),需要填寫工程的入口程序的目標(biāo)文件名,如,整個工程項目的入口程序是44binit.s,那么應(yīng)在Object/Symbol處填寫其目標(biāo)文件名44binit.o,在Section處填寫程序入口的起始段標(biāo)號。它的作用是通知編譯器,整個項目的開始運(yùn)行,是從該段開始的。圖2-9圖2-10 工程的入口程序得目標(biāo)文件名8)在如圖2-11中,即在Debug Setting對話框中點(diǎn)擊左欄的ARM fromEL
40、F項,在Output file name欄中設(shè)置輸出文件名*.bin,前綴名可以自己取,在Output format 欄中選擇Plain binary,這是設(shè)置要下載到flash中的二進(jìn)制文件。圖2-10中使用的是test.bin. 到此,在ADS1.2中的基本設(shè)置已經(jīng)完成。圖2-11 輸出文件設(shè)置 9)讀者可根據(jù)自己習(xí)慣,更改Edit|Preference窗口內(nèi)關(guān)于文本編輯的顏色、字體大小,形狀,變量、函數(shù)的顏色等等設(shè)置。如圖2-12。圖2-12 編輯窗口的環(huán)境參數(shù)設(shè)置10)文件編輯完成后,用project/compile(沒有錯誤)èproject/make完成編譯鏈接,最后用p
41、roject/debug進(jìn)入AXD調(diào)試界面,調(diào)試按鈕如下:左起第一個是全速運(yùn)行,第二個是停止運(yùn)行,第三個跳入函數(shù)內(nèi)部,第四個單步執(zhí)行,第五個跳出函數(shù),第六個運(yùn)行到光標(biāo)處。(也可以在AXD界面下加載*.axf文件調(diào)試)11)AXD界面下配置設(shè)置選擇optionsèconfigure target設(shè)置,如圖2-13所示。在圖中選擇ARMUL仿真方式,再點(diǎn)擊其中的Configure按鈕,在processor選項中選擇ARM7TDMI。12)調(diào)試,查看相關(guān)寄存器,存儲器的內(nèi)容變化情況并記錄下來。查看寄存器,存儲器和變量等用processor view菜單下的命令。 13)實(shí)驗(yàn)報告圖2-13
42、target環(huán)境設(shè)置匯編程序示例: 程序1:COUNTEQU0x40003100; 定義一個變量,地址為0x40003100 AREAExample2,CODE,READONLY; 聲明代碼段Example2 ENTRY; 標(biāo)識程序入口CODE32; 聲明32位ARM指令STARTLDRR1,=COUNT; R1 <= COUNTMOVR0,#0; R0 <= 0 STR R0,R1; R1 <= R0,即設(shè)置COUNT為0LOOP LDRR1,=COUNTLDRR0,R1; R0 <= R1 ADDR0,R0,#1; R0 <= R0 + 1CMPR0,#10;
43、 R0與10比較,影響條件碼標(biāo)志 MOVHS R0,#0; 若R0大于等于10,則此指令執(zhí)行,R0 <= 0STRR0,R1; R1 <= R0,即保存COUNTBLOOPEND 程序2:; 文件名:TEST4.S; 功能:計算X的n次方的值; 說明:X和n均為無符號整數(shù)XEQU9; 定義X的值為9nEQU8; 定義n的值為8AREAExample4,CODE,READONLY; 聲明代碼段Example4ENTRY; 標(biāo)識程序入口CODE32; 聲明32位ARM指令STARTLDRSP,=0x40003F00; 設(shè)置堆棧(滿遞減堆棧,使用STMFD/LMDFD指令)LDRR0,=
44、XLDRR1,=nBLPOW; 調(diào)用子程序POW,返回值為R0HALTBHALT; 名稱:POW; 功能:整數(shù)乘方運(yùn)算。; 入口參數(shù):R0底數(shù); R1指數(shù); 出口參數(shù):R0運(yùn)算結(jié)果; 占用資源:R0、R1; 說明:本子程序不考慮溢出問題POWSTMFDSP!,R1-R12,LR; 寄存器入棧保護(hù)MOVSR2,R1; 將指數(shù)值復(fù)制到R2,并影響條件碼標(biāo)志MOVEQR0,#1; 若指數(shù)為0,則設(shè)置R0=1BEQPOW_END; 若指數(shù)為0,則返回CMPR2,#1BEQPOW_END; 若指數(shù)為1,則返回。(此時R0沒有被更改) MOVR1,R0; 設(shè)置DO_MUL子程序的入口參數(shù)R0和R1SUBR
45、2,R2,#1; 計數(shù)器R2 = 指數(shù)值減1POW_L1BLDO_MUL; 調(diào)用DO_MUL子程序,R0 = R1 * R0SUBSR2,R2,#1; 每循環(huán)一次,計數(shù)器R2減1BNEPOW_L1; 若計數(shù)器R2不為0,跳轉(zhuǎn)到POW_L1POW_ENDLDMFDSP!,R1-R12,PC; 寄存器出棧,返回 ; 名稱:DO_MUL; 功能:32位乘法運(yùn)算。; 入口參數(shù):R0乘數(shù); R1 被乘數(shù); 出口參數(shù):R0計算結(jié)果; 占用資源:R0、R1; 說明:本子程序不會破壞R1DO_MUL MULR0,R1,R0; R0 = R1 * R0 MOVPC,LR; 返回 END實(shí)驗(yàn)二 基于ARM的C語言
46、程序設(shè)計一、實(shí)驗(yàn)?zāi)康?.了解ARM C語言的基本框架,學(xué)會使用ARM的C語言編程二、實(shí)驗(yàn)內(nèi)容1. 用C語言編寫一個簡單的應(yīng)用程序三、實(shí)驗(yàn)設(shè)備1. PentiumII以上的PC機(jī)。2. PC操作系統(tǒng)WIN98或WIN2000或WINXP, ADS1.2集成開發(fā)環(huán)境,四、ARM C語言簡介與使用規(guī)則1. ARM使用C語言編程是大勢所趨在應(yīng)用系統(tǒng)的程序設(shè)計中,若所有的編程任務(wù)均由匯編語言來完成,其工作量巨大,并且不宜移植。由于ARM的程序執(zhí)行速度較高,存儲器的存儲速度和存儲量也很高,因此,C語言的特點(diǎn)充分發(fā)揮,使得應(yīng)用程序的開發(fā)時間大為縮短,代碼的移植十分方便,程序的重復(fù)使用率提高,程序架構(gòu)清晰易懂
47、,管理較為容易等等。因此,C語言的在ARM編程中具有重要地位。2. ARM C語言程序的基本規(guī)則在ARM程序的開發(fā)中,需要大量讀寫硬件寄存器,并且盡量縮短程序的執(zhí)行時間的代碼一般使用匯編語言來編寫,比如ARM的啟動代碼,ARM的操作系統(tǒng)的移植代碼等,除此之外,絕大多數(shù)代碼可以使用C語言來完成。C語言使用的是標(biāo)準(zhǔn)的C語言,ARM的開發(fā)環(huán)境實(shí)際上就是嵌入了一個C語言的集成開發(fā)環(huán)境,只不過這個開發(fā)環(huán)境和ARM的硬件緊密相關(guān)。在使用C語言時,要用到和匯編語言的混合編程。當(dāng)匯編代碼較為簡潔,則可使用直接內(nèi)嵌匯編的方法,否則,使用將匯編文件以文件的形式加入項目當(dāng)中,通過ATPCS的規(guī)定與C程序相互調(diào)用與訪
48、問。ATPCS,就是ARM、Thumb的過程調(diào)用標(biāo)準(zhǔn)(ARM/Thumb Procedure Call Standard),它規(guī)定了一些子程序間調(diào)用的基本規(guī)則。如寄存器的使用規(guī)則,堆棧的使用規(guī)則,參數(shù)的傳遞規(guī)則等。在C程序和ARM的匯編程序之間相互調(diào)用必須遵守ATPCS。而使用ADS的C語言編譯器編譯的C語言子程序滿足用戶指定的ATPCS的規(guī)則。但是,對于匯編語言來說,完全要依賴用戶保證各個子程序遵循ATPCS的規(guī)則。具體來說,匯編語言的子程序應(yīng)滿足下面3個條件: 在子程序編寫時,必須遵守相應(yīng)的ATPCS規(guī)則; 堆棧的使用要遵守相應(yīng)的ATPCS規(guī)則; 在匯編編譯器中使用-atpcs選項?;镜?/p>
49、ATPCS規(guī)定,請參考相關(guān)PDF文檔。匯編程序調(diào)用C程序匯編程序的設(shè)置要遵循ATPCS規(guī)則,保證程序調(diào)用時參數(shù)正確傳遞。在匯編程序中使用IMPORT偽指令聲明將要調(diào)用的C程序函數(shù)。在調(diào)用C程序時,要正確設(shè)置入口參數(shù),然后使用BL調(diào)用。C程序調(diào)用匯編程序匯編程序的設(shè)置要遵循ATPCS規(guī)則,保證程序調(diào)用時參數(shù)正確傳遞。在匯編程序中使用EXPORT偽指令聲明本子程序,使其他程序可以調(diào)用此子程序。在C語言中使用extern關(guān)鍵字聲明外部函數(shù)(聲明要調(diào)用的匯編子程序)。在C語言的環(huán)境內(nèi)開發(fā)應(yīng)用程序,一般需要一個匯編的啟動程序,從匯編的啟動程序,跳到C語言下的主程序,然后,執(zhí)行C程序。具體的編程規(guī)則同標(biāo)準(zhǔn)C語言。五、
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國可重復(fù)使用不銹鋼水瓶行業(yè)市場全景分析及前景機(jī)遇研判報告
- 2025年中國可放水壺的運(yùn)動腰帶行業(yè)市場全景分析及前景機(jī)遇研判報告
- 2025年中國建筑工程質(zhì)量檢測行業(yè)市場全景分析及前景機(jī)遇研判報告
- 2025年硫化染料項目可行性分析報告
- 中國休閑食品O2O市場發(fā)展現(xiàn)狀調(diào)研及投資趨勢前景分析報告
- 2021-2026年中國駕駛室及車身總成市場全面調(diào)研及行業(yè)投資潛力預(yù)測報告
- 換藥操作培訓(xùn)課件
- 2025年 延津縣無線電技術(shù)學(xué)校招聘考試筆試試題附答案
- 2025年 棲霞市市級機(jī)關(guān)遴選考試筆試試題附答案
- 2025年 湖北中煙招聘考試筆試試題試題附答案
- 高效化學(xué)滅菌技術(shù)-洞察及研究
- 融媒體保密管理制度
- 2025至2030中國消防產(chǎn)業(yè)市場深度調(diào)研及發(fā)展前景及有效策略與實(shí)施路徑評估報告
- 2025江蘇揚(yáng)州寶應(yīng)縣“鄉(xiāng)村振興青年人才”招聘67人筆試參考題庫附答案詳解
- 地質(zhì)災(zāi)害危險性評估合同模板
- 公司廉政紀(jì)律管理制度
- 2025年高考全國二卷數(shù)學(xué)高考真題解析 含參考答案
- 保密知識競賽試題及答案
- T/CQAGS 3201-2023重慶好糧油壓榨菜籽油
- 2025新譯林版英語八上單詞默寫單(先鳥版)
- 自建門面租房協(xié)議書
評論
0/150
提交評論