EL-ARM-830型教學(xué)實(shí)驗(yàn)系統(tǒng)_第1頁(yè)
EL-ARM-830型教學(xué)實(shí)驗(yàn)系統(tǒng)_第2頁(yè)
EL-ARM-830型教學(xué)實(shí)驗(yàn)系統(tǒng)_第3頁(yè)
EL-ARM-830型教學(xué)實(shí)驗(yàn)系統(tǒng)_第4頁(yè)
EL-ARM-830型教學(xué)實(shí)驗(yàn)系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩214頁(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)介

EL-ARM-830實(shí)驗(yàn)指導(dǎo)書(shū)PAGE1第1章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)采用了目前在國(guó)內(nèi)普遍認(rèn)同的ARM920T核,32位微處理器,實(shí)現(xiàn)了多模塊的應(yīng)用實(shí)驗(yàn)。它是集學(xué)習(xí)、應(yīng)用編程、開(kāi)發(fā)研究于一體ARM實(shí)驗(yàn)教學(xué)系統(tǒng)。用戶(hù)可根據(jù)自己的需求選用不同類(lèi)型的CPU適配板,兼容ARM7與ARM9,而不需要改變?nèi)魏闻渲茫瑫r(shí),實(shí)驗(yàn)系統(tǒng)上的Tech_V總線(xiàn)能夠拓展較為豐富的實(shí)驗(yàn)接口板。用戶(hù)在了解Tech_V標(biāo)準(zhǔn)后,更能研發(fā)出不同用途的實(shí)驗(yàn)接口板。除此之外,在實(shí)驗(yàn)板上有豐富的外圍擴(kuò)展資源(數(shù)字、模擬信號(hào)發(fā)生器,數(shù)字量IO輸入輸出,語(yǔ)音編解碼、人機(jī)接口等單元),可以完成ARM的基礎(chǔ)實(shí)驗(yàn)、算法實(shí)驗(yàn)和數(shù)據(jù)通信實(shí)驗(yàn)、以太網(wǎng)實(shí)驗(yàn)。圖1-1-1EL-ARM-830實(shí)驗(yàn)教學(xué)系統(tǒng)的功能框圖1.1實(shí)驗(yàn)系統(tǒng)的硬件資源總攬☆CPU單元:內(nèi)核ARM920T,芯片三星的S3C2410,工作頻率最高202MHz;☆動(dòng)態(tài)存儲(chǔ)器:64MB,芯片HY57V561620;☆海量存儲(chǔ)器:32MB,芯片K9F5608;☆USB單元:1個(gè)主接口,兩個(gè)設(shè)備接口,芯片PDIUSBD12;☆網(wǎng)絡(luò)單元:10/100M以太網(wǎng),芯片AX88796;☆UART單元:2個(gè),最高通信波特率115200bps;☆語(yǔ)音單元:IIS格式,芯片UDA1341TS,采樣頻率最高48KHz;☆LCD單元:5.7寸,256色,320X240像素;☆觸摸屏單元:四線(xiàn)電阻屏,320X240,5.7寸;☆SD卡單元:通信頻率最高25MHz,芯片W86L388D,兼容MMC卡;☆鍵盤(pán)單元:4X4鍵盤(pán),帶8位LED數(shù)碼管;芯片HD7279A;☆模擬輸入輸出單元:8個(gè)帶自鎖的按鍵,及8個(gè)LED發(fā)光管;☆A(yù)/D轉(zhuǎn)換單元:芯片自帶的8路10位A/D,滿(mǎn)量程2.5V;☆信號(hào)源單元:方波輸出;☆標(biāo)準(zhǔn)鍵盤(pán)及PS2鼠標(biāo)接口;☆標(biāo)準(zhǔn)的IDE硬盤(pán)接口;☆達(dá)盛公司的Tech_V總線(xiàn)接口;☆達(dá)盛公司的E_Lab總線(xiàn)接口;調(diào)試接口:20針JTAG;CPLD單元;電源模塊單元。1.2核心板的資源介紹1.核心板的硬件資源(ARM920T核)在核心CPU板上包括下列單元和芯片,32位ARM920T的處理器,即三星的S3C2410芯片,兩片動(dòng)態(tài)存儲(chǔ)器,每片32M字節(jié),一片32M字節(jié)的NAND_flash存儲(chǔ)器,一個(gè)USB主接口,一個(gè)USB從接口,一個(gè)10/100M的以太網(wǎng)控制芯片,完成網(wǎng)絡(luò)訪問(wèn)功能,一個(gè)UART接口,完成串口通信,最高波特率率為115200bps,一個(gè)RTC實(shí)時(shí)時(shí)鐘,一個(gè)5V轉(zhuǎn)3.3V和1.8V的電源管理模塊,一個(gè)20針的JTAG調(diào)試接口。具體元器件見(jiàn)表1-1。芯片名稱(chēng)數(shù)量功能板上標(biāo)號(hào)S3C24101ARM920T,中央處理器S3C2410XHY57V5616202動(dòng)態(tài)存儲(chǔ)器(SDRAM),32MB/片HY57V561620K9F56081海量存儲(chǔ)器,32MBK9F5608UAX88796110/100M以太網(wǎng)控制器AX88796AS1117-3.315V轉(zhuǎn)3.3VAS1117-3.3AS1117-1.815V轉(zhuǎn)1.8VAS1117-1.8MAX32321RS232轉(zhuǎn)換IMP811-S1復(fù)位IMP811表1-1具體的單元、跳線(xiàn)見(jiàn)表1-2。標(biāo)號(hào)名稱(chēng)功能JP1JTAG復(fù)位單元控制nRESET與nTRST是否接通AREFSEL模擬參考電壓選擇短接后連接到VDD33,否則接地3S/4S3Step與4Step選擇設(shè)置NandFlash的運(yùn)行模式,選擇NCON(CPU引腳)與3Step、4Step連接RESET復(fù)位鍵系統(tǒng)復(fù)位按鍵P.S電源插座電源插座,接5V電源SW電源開(kāi)關(guān)撥向EXT接通,撥向INT斷開(kāi)電源USB-HOST主USB單元主USBUART0(CROSS/F)串口0單元和S3C2410的串口0通信USB-DEVICE從USB單元USB設(shè)備RJ45網(wǎng)絡(luò)單元訪問(wèn)以太網(wǎng)ARM-JTAGJTAG插座20針JTAG插座,用于與宿主機(jī)通信INTERFACEC功能單元INTERFACEB數(shù)據(jù)、地址單元INTERFACEA功能單元表1-2表1-3為核心板上各LED指示燈的意義。標(biāo)號(hào)名稱(chēng)功能PWRLED燈電源指示燈LED1LED燈GPI/O口G口的第8位指示LED2LED燈GPI/O口G口的第9位指示表1-3表1-4為核心板上的晶振單元標(biāo)號(hào)名稱(chēng)功能12MHzCPU主時(shí)鐘晶振外接12MHz32KHzRTC時(shí)鐘晶振外接32.768KHz25MHz網(wǎng)絡(luò)時(shí)鐘晶振外接25MHz表1-42.核心板資源的具體介紹1)電源模塊在S3C2410CPU板上由于其內(nèi)核采用1.8V,I/O接口采用3.3V供電,因此需要將通用的5V轉(zhuǎn)換成1.8V和3.3V。圖1-1-2為使用LM1117電源轉(zhuǎn)換芯片把5V轉(zhuǎn)成3.3V和1.8V的轉(zhuǎn)換電路。圖1-1-22)NAND_FLASH海量存儲(chǔ)器單元該存儲(chǔ)單元在板卡上標(biāo)號(hào)為K9F5608U,選用32MB字節(jié)的K9F5608U,8位數(shù)據(jù)總線(xiàn),該芯片由S3C2410的相關(guān)引腳直接控制,CPU分配給它的地址空間為0x00000000—0x01ffffff。啟動(dòng)代碼部分則放在從0x00000000開(kāi)始的地址空間內(nèi)。系統(tǒng)將CPU的引腳OM[1:0]設(shè)置成00b,當(dāng)核心板上電復(fù)位時(shí),系統(tǒng)首先將Nand_Flash開(kāi)始的0~4K的程序映射到SteppingStone區(qū),然后從那里開(kāi)始執(zhí)行。Nand_Flash可以存放數(shù)據(jù)和程序,但需要特定的指令進(jìn)行讀寫(xiě)。3)同步動(dòng)態(tài)存儲(chǔ)器單元該存儲(chǔ)單元在板卡上標(biāo)號(hào)為HY57V561620。選用兩片8MB字節(jié)的HY57V561620,32位數(shù)據(jù)總線(xiàn)。片選NSCS6接兩片HY57V561620單元作為片選信號(hào),CPU分配給這兩片HY57V561620單元的地址空間分別為0x30000000-0x31ffffff,0x32000000-0x33ffffff,也就是S3C2410CPU的Bank6區(qū)和Bank7區(qū)。4)RS232串口單元該存儲(chǔ)單元在板卡上標(biāo)號(hào)為UART0(CROSS/F),選用了MAX3232電壓轉(zhuǎn)換芯片,進(jìn)行PC機(jī)與CPU板的串口通訊。它采用收、發(fā)、地,三線(xiàn)連接,無(wú)握手信號(hào)。通過(guò)S3C2410內(nèi)部的串口0控制器進(jìn)行控制。5)主/從USB單元該單元在板卡上標(biāo)號(hào)為USB-HOST和USB-DEVICE,通過(guò)S3C2410內(nèi)部的USB主控制器和USB設(shè)備控制器進(jìn)行控制。6)網(wǎng)絡(luò)單元該存儲(chǔ)單元在板卡上標(biāo)號(hào)為AX88796,選用了ASIX公司的AX88796網(wǎng)絡(luò)芯片,傳輸速率為10/100M自適應(yīng),16位數(shù)據(jù)總線(xiàn)傳輸,片選NGCS2接網(wǎng)絡(luò)單元。CPU分配給AX88796單元的地址空間為0x10000000—0x18000000,也就是S3C2410CPU的bank2區(qū)。S3C2410CPU的外部中斷ExINT2響應(yīng)該中斷。RJ45插座上面自帶數(shù)據(jù)傳輸?shù)闹甘緹?。為清楚顯示核心板上各存儲(chǔ)區(qū)及單元,見(jiàn)表1-5。標(biāo)號(hào)名稱(chēng)存儲(chǔ)區(qū)存儲(chǔ)的有效區(qū)容量(字節(jié))HY57V561620同步動(dòng)態(tài)存儲(chǔ)器Bank70x32000000-0x33ffffff32MHY57V561620同步動(dòng)態(tài)存儲(chǔ)器Bank60x30000000-0x31ffffff32MAX88796網(wǎng)絡(luò)控制器Band20x10000000后的若干若干寄存器NAND_FLASH海量存儲(chǔ)器Bank00x00000000-0x01ffffff32M表1-57)JTAG單元JTAG(JointTestActionGroup,聯(lián)合測(cè)試行動(dòng)小組)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議,主要用于芯片內(nèi)部測(cè)試及對(duì)系統(tǒng)進(jìn)行仿真、調(diào)試,JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專(zhuān)門(mén)的測(cè)試電路TAP(TestAccessPort,測(cè)試訪問(wèn)口),通過(guò)專(zhuān)用的JTAG測(cè)試工具對(duì)內(nèi)部節(jié)點(diǎn)進(jìn)行測(cè)試。目前大多數(shù)比較復(fù)雜的器件都支持JTAG協(xié)議,如ARM、DSP、FPGA器件等。標(biāo)準(zhǔn)的JTAG接口是4線(xiàn):TMS、TCK、TDI、TDO,分別為測(cè)試模式選擇、測(cè)試時(shí)鐘、測(cè)試數(shù)據(jù)輸入和測(cè)試數(shù)據(jù)輸出。通過(guò)JTAG接口,可對(duì)芯片內(nèi)部的所有部件進(jìn)行訪問(wèn),因而是開(kāi)發(fā)調(diào)試嵌入式系統(tǒng)的一種簡(jiǎn)潔高效的手段。目前JTAG接口的連接有兩種標(biāo)準(zhǔn),即14針接口和20針接口,EL-ARM-830核心板上使用的是20針接口。接口定義見(jiàn)表1-6。引腳名稱(chēng)描述1VTref目標(biāo)板參考電壓,接電源2VCC接電源3nTRST測(cè)試系統(tǒng)復(fù)位信號(hào)4、6、8、10、12、14、16、18、20GND接地5TDI測(cè)試數(shù)據(jù)串行輸入7TMS測(cè)試模式選擇9TCK測(cè)試時(shí)鐘11RTCK測(cè)試時(shí)鐘返回信號(hào)13TDO測(cè)試數(shù)據(jù)串行輸出15nRESET目標(biāo)系統(tǒng)復(fù)位信號(hào)17、19NC未連接表1-6在核心板上,JTAG的第1腳用一黃色的方框標(biāo)注,當(dāng)串口、USB口、網(wǎng)絡(luò)口向左擺放時(shí),第1腳下面的管腳為第2腳,它左面的管腳依次為3,5,…,19;第2腳左面的管腳依次為4,6,…,20。8)核心CPU板上的外接接口單元在CPU板上有INTERFACEA、INTERFACEB、INTERFACEC,3個(gè)外擴(kuò)接口單元,現(xiàn)對(duì)這三個(gè)接口的引腳加以說(shuō)明。INTERFACEB:INTERFACEB擴(kuò)展信號(hào)是地址、數(shù)據(jù)總線(xiàn)和讀寫(xiě)、片選信號(hào):見(jiàn)表1-7序號(hào)代號(hào)含義IO備注1+5V+5V電源2+5V+5V電源3LA19地址線(xiàn)O4LA18地址線(xiàn)O5LA17地址線(xiàn)O6LA16地址線(xiàn)O7EXA15地址線(xiàn)O8EXA14地址線(xiàn)O9EXA13地址線(xiàn)O10EXA12地址線(xiàn)O11GND地12GND地13EXA11地址線(xiàn)O14EXA10地址線(xiàn)O序號(hào)代號(hào)含義IO備注15EXA9地址線(xiàn)O16EXA8地址線(xiàn)O17EXA7地址線(xiàn)O18EXA6地址線(xiàn)O19EXA5地址線(xiàn)O20EXA4地址線(xiàn)O21+5V+5V電源22+5V+5V電源23EXA3地址線(xiàn)O24EXA2地址線(xiàn)O25EXA1地址線(xiàn)O26EXA0地址線(xiàn)O27LA21地址線(xiàn)O28LA20地址線(xiàn)O29NC空腳30NC空腳uedit31GND地32GND地33NC空腳空34NC空腳空35NC空腳空36NC空腳空37NC空腳空38NC空腳空39NC空腳空40NC空腳空41VDD33+3.3V電源42VDD33+3.3V電源43NC空腳空44NC空腳空45NC空腳空46NC空腳空47NC空腳空48NC空腳空49NC空腳空50NC空腳空序號(hào)代號(hào)含義IO備注51GND地52GND地53EXD15數(shù)據(jù)線(xiàn)IO54EXD14數(shù)據(jù)線(xiàn)IO55EXD13數(shù)據(jù)線(xiàn)IO56EXD12數(shù)據(jù)線(xiàn)IO57EXD11數(shù)據(jù)線(xiàn)IO58EXD10數(shù)據(jù)線(xiàn)IO59EXD9數(shù)據(jù)線(xiàn)IO60EXD8數(shù)據(jù)線(xiàn)IO61GND地62GND地63EXD7數(shù)據(jù)線(xiàn)IO64EXD6數(shù)據(jù)線(xiàn)IO65EXD5數(shù)據(jù)線(xiàn)IO66EXD4數(shù)據(jù)線(xiàn)IO67EXD3數(shù)據(jù)線(xiàn)IO68EXD2數(shù)據(jù)線(xiàn)IO69EXD1數(shù)據(jù)線(xiàn)IO70EXD0數(shù)據(jù)線(xiàn)IO71GND地72GND地73LNOE使能信號(hào)O74LNWE寫(xiě)信號(hào)O75LNOE使能信號(hào)O76NWIT等待信號(hào)I77NC空腳空78NGCS0片選信號(hào)O79GND地80GND地表1-7INTERFACEA:INTERFACEA擴(kuò)展信號(hào)外設(shè)信號(hào)接口:見(jiàn)表1-8。序號(hào)代號(hào)含義IO備注1+12V+12V電源2-12V-12V電源3GND地序號(hào)代號(hào)含義IO備注4GND地5+5V+5V電源6+5V+5V電源7GND地8GND地9+5V+5V電源10+5V+5V電源11NC空腳空12NC空腳空13NC空腳空14NC空腳空15NC空腳空16NC空腳空17NC空腳空18NC空腳空19+3.3V+3.3V電源20+3.3V+3.3V電源21SPICLK0SPI時(shí)鐘輸出OCPU引腳22MISO0SPI數(shù)據(jù)輸入ICPU引腳23nSS0SPI片選OCPU引腳24MOSI0SPI數(shù)據(jù)輸出OCPU引腳25GND地26GND地27NC空腳空28NC空腳空29NC空腳空30NC空腳空31GND地32GND地33NC空腳空34NC空腳空35IISLRCLKIIS左右聲道時(shí)鐘O36IISDOIIS數(shù)據(jù)輸出O37GND地38GND地序號(hào)代號(hào)含義IO備注39IISCLKIIS輸出時(shí)鐘O40NC空腳空41NC空腳空42IISDIIIS數(shù)據(jù)輸入I43GND地44GND地45TOUT0定時(shí)器輸出0O46TCLK0定時(shí)器時(shí)鐘輸出0連接至CPU的TCLK0引腳47NC空腳空48EINT1中斷1I外部輸入的中斷信號(hào),連接到CPU的中斷49TOUT1定時(shí)器輸出150TCLK1定時(shí)器時(shí)鐘輸出1連接至CPU的TCLK1引腳51GND地52GND地53EINT0中斷0I外部輸入的中斷信號(hào),連接到CPU的中斷54NC空腳空55NC空腳空56NGCS1片選信號(hào)1O57NC空腳空58NC空腳空59RESET復(fù)位信號(hào)O60NC空腳空61GND地62GND地63NC空腳空64NC空腳空65NC空腳空66NC空腳空67EINT7中斷7I外部輸入的中斷信號(hào),連接到CPU的中斷68EINT3中斷3I外部輸入的中斷信號(hào),連接到CPU的中斷69NGCS3片選信號(hào)3O序號(hào)代號(hào)含義IO備注70NGCS1片選信號(hào)1O71NC空腳空72NC空腳空73NC空腳空74NC空腳空75NC空腳空76GND地77GND地78NC空腳空79GND地80GND地表1-8INTERFACEC用來(lái)擴(kuò)展INTERFACEA、INTERFACEB沒(méi)有擴(kuò)展的CPU信號(hào),如AD輸入、液晶、串口等和擴(kuò)展子板間的通訊信號(hào)。見(jiàn)表1-9。序號(hào)代號(hào)含義IO備注1+5V+5V電源2+5V+5V電源3AIN0模擬輸入0I4AIN1模擬輸入1I5AIN2模擬輸入2I6AIN3模擬輸入3I7AIN4模擬輸入4I8AIN5模擬輸入5I9AREFB模擬輸入負(fù)參考電壓I10AREFT模擬輸入正參考電壓I11AVCOM模擬輸入?yún)⒖茧妷汗捕薎12TOUT2定時(shí)器輸出2O13TOUT3定時(shí)器輸出3O14NC空腳15ExINT4外部中斷4I16ExINT5外部中斷5I17ExINT6外部中斷6I18ExINT7外部中斷7I19nGCS4片選O20nGCS5片選O序號(hào)代號(hào)含義IO備注21NGCS4片選O22nGCS5片選O23LnWBE0寫(xiě)字節(jié)使能0O24LnWBE1寫(xiě)字節(jié)使能1O25LnWBE2寫(xiě)字節(jié)使能2O26LnWBE3寫(xiě)字節(jié)使能3O27UCLK輸入輸出口IO28GPH1輸入輸出口IO29CLKOUT0時(shí)鐘輸出信號(hào)源0O30CLKOUT1時(shí)鐘輸出信號(hào)源1O31IICSCLIIC總線(xiàn)時(shí)鐘O32IICSDAIIC總線(xiàn)數(shù)據(jù)IO33RXD1串口1接收數(shù)據(jù)I34TXD1串口1發(fā)送數(shù)據(jù)O35RXD2串口2接收數(shù)據(jù)I36TXD2串口2發(fā)送數(shù)據(jù)O37SDDAT0SD卡數(shù)據(jù)0OEL-830底板未使用38SDDAT1SD卡數(shù)據(jù)1OEL-830底板未使用39SDDAT2SD卡數(shù)據(jù)2OEL-830底板未使用40SDDAT3SD卡數(shù)據(jù)3OEL-830底板未使用41SDCLKSD卡時(shí)鐘OEL-830底板未使用42SDCMDSD卡命令OEL-830底板未使用43AIN6模擬輸入6I44AIN7模擬輸入7I45NC空腳46CDCLKCPU信號(hào),解碼器系統(tǒng)時(shí)鐘O47VD19液晶數(shù)據(jù)19OCPU引腳48VD20液晶數(shù)據(jù)20OCPU引腳49VD21液晶數(shù)據(jù)21OCPU引腳50VD22液晶數(shù)據(jù)22OCPU引腳51VD23液晶數(shù)據(jù)23OCPU引腳52VD10液晶數(shù)據(jù)10OCPU引腳53VD11液晶數(shù)據(jù)11OCPU引腳54VD12液晶數(shù)據(jù)12OCPU引腳55VD13液晶數(shù)據(jù)13OCPU引腳序號(hào)代號(hào)含義IO備注56VD14液晶數(shù)據(jù)14OCPU引腳57VD15液晶數(shù)據(jù)15OCPU引腳58VD3液晶數(shù)據(jù)3OCPU引腳59VD4液晶數(shù)據(jù)4OCPU引腳60VD5液晶數(shù)據(jù)5OCPU引腳61VD6液晶數(shù)據(jù)6OCPU引腳62VD7液晶數(shù)據(jù)7OCPU引腳63TSMX接觸摸屏XN腳OCPU引腳64TSMY接觸摸屏YN腳OCPU引腳65TSPY接觸摸屏YP腳OCPU引腳66TSPX接觸摸屏XP腳OCPU引腳67VM-VDEN液晶電壓控制信號(hào)I68VF-VS液晶楨時(shí)鐘O69VL-HS液晶線(xiàn)時(shí)鐘O70VCLK液晶位時(shí)鐘O71VD0液晶數(shù)據(jù)0O72VD1液晶數(shù)據(jù)1O73VD2液晶數(shù)據(jù)2O74VD3液晶數(shù)據(jù)3O75VD4液晶數(shù)據(jù)4O76VD5液晶數(shù)據(jù)5O77VD6液晶數(shù)據(jù)6O78VD7液晶數(shù)據(jù)7O79GND地80GND地表1-91.3實(shí)驗(yàn)箱底板的資源介紹1.概述實(shí)驗(yàn)箱底板上的資源豐富,具體的實(shí)驗(yàn)單元有:LCD模塊,觸摸屏模塊,語(yǔ)音單元模塊,串口2模塊,USB設(shè)備模塊,電源模塊,模擬輸入輸出模塊,鍵盤(pán)模塊,CPLD燒寫(xiě)模塊,鍵盤(pán)數(shù)碼管模塊,SD(MMC)卡模塊,A/D轉(zhuǎn)換模塊,信號(hào)源發(fā)生器模塊。以及PS2鼠標(biāo)鍵盤(pán)接口,IDE硬盤(pán)接口,Tech_V總線(xiàn)接口,E_LAB總線(xiàn)接口等等。實(shí)驗(yàn)箱上的底板詳細(xì)具體資源見(jiàn)表1-10。單元名稱(chēng)關(guān)鍵控制芯片功能備注LCD模塊S3C2410內(nèi)置LCD控制器液晶顯示320X240,5.7寸,256色觸摸屏模塊ADS7843完成觸摸響應(yīng)ARM9實(shí)驗(yàn)不使用改芯片,使用CPU集成的控制器語(yǔ)音模塊UDA1341TS語(yǔ)音模擬信號(hào)采集采樣率最高48KHz;串口1模塊MAX202CPE完成與PC機(jī)的串行數(shù)據(jù)的轉(zhuǎn)換最高串行通信率為115200bps.USB設(shè)備模塊PDIUSBD12完成PC機(jī)與實(shí)驗(yàn)箱的USB通信控制USB1.1鍵盤(pán)數(shù)碼管模塊HD7279A中斷請(qǐng)求,數(shù)碼管顯示4X4鍵,8位數(shù)碼管模擬輸入輸出模塊74LS273,244完成數(shù)據(jù)鎖存,數(shù)據(jù)發(fā)送8位數(shù)據(jù)SD(MMC)卡模塊W86L388DSD(MMC)卡命令的發(fā)送,數(shù)據(jù)的讀取最高時(shí)鐘25MHzA/D轉(zhuǎn)換模塊S3C2410內(nèi)置A/D轉(zhuǎn)換器采集模擬信號(hào)10位8路E_LAB總線(xiàn)接口留有擴(kuò)展接口,有擴(kuò)展板。信號(hào)源模塊自動(dòng)產(chǎn)生信號(hào)源電源模塊5V,+12V,-12VPS2鼠標(biāo)鍵盤(pán)接口硬件擴(kuò)展口(有擴(kuò)展板)IDE硬盤(pán)接口留有擴(kuò)展接口Tech_V總線(xiàn)接口留有擴(kuò)展接口,有擴(kuò)展板。PS2鍵盤(pán)鼠標(biāo)控制模塊AT89C2051擴(kuò)展出標(biāo)準(zhǔn)的鍵盤(pán)鼠標(biāo)插孔表1-10接下來(lái)詳細(xì)介紹各模塊單元。2.底板資源的具體介紹1)模擬輸入輸出接口單元8bit的數(shù)字量輸入(由八個(gè)帶自鎖的開(kāi)關(guān)產(chǎn)生),通過(guò)74LS244緩沖;8bit的數(shù)字量輸出(通過(guò)八個(gè)LED燈顯示),通過(guò)74LS273鎖存。數(shù)字量的輸入輸出都映射到CPU的IO空間。數(shù)字值的顯示的通過(guò)八個(gè)LED燈和LCD屏,按下一個(gè)鍵,表示輸入一個(gè)十進(jìn)制的“0”2)鍵盤(pán)數(shù)碼管模塊鍵盤(pán)接口是由芯片HD7279A控制的,HD7279A是一片具有串行接口的,可同時(shí)驅(qū)動(dòng)8位共陰式數(shù)碼管或(64只獨(dú)立LED)的智能顯示驅(qū)動(dòng)芯片,該芯片同時(shí)還可連接多達(dá)64鍵的鍵盤(pán)矩陣,單片即可完成LED顯示,鍵盤(pán)接口的全部功能。HD7279A內(nèi)部含有譯碼器,可直接接受BCD碼或16進(jìn)制碼,并同時(shí)具有2種譯碼方式。此外,還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。HD7279A具有片選信號(hào),可方便地實(shí)現(xiàn)多于8位的顯示或多于64鍵的鍵盤(pán)接口。在該實(shí)驗(yàn)系統(tǒng)中,僅提供了16個(gè)鍵。3)USB設(shè)備模塊USB設(shè)備模塊,采用了飛利蒲的USB設(shè)備控制芯片PDIUSBD12,該芯片遵從USB1.1規(guī)范,最高通信率12Mbps,該單元位于實(shí)驗(yàn)箱的左下角。D3為通信狀態(tài)指示燈。使用外部中斷4來(lái)響應(yīng)中斷請(qǐng)求。4)串口1模塊串口1模塊,采用了美信的MAX202CPE芯片,通過(guò)它可以把PC的電信號(hào)轉(zhuǎn)換成實(shí)驗(yàn)箱可以使用的信號(hào),它的最高串行通信波特率為115200bps.5)音頻模塊 語(yǔ)音的模擬信號(hào)的編解碼采用了UDA1341TS芯片。該芯片有兩個(gè)串行同步變換通道、D/A轉(zhuǎn)換前的差補(bǔ)濾波器和A/D變換后的濾波器。其他部分提供片上時(shí)序和控制功能。芯片的各種應(yīng)用配置可以通過(guò)芯片的三根線(xiàn),由串行通信編程來(lái)實(shí)現(xiàn)。主要包括:復(fù)位、節(jié)電模式、通信協(xié)議、串行時(shí)鐘速率、信號(hào)采樣速率、增益控制和測(cè)試模式、音質(zhì)特性。最大采樣速率48kb/s。語(yǔ)音處理單元由UDA1341TS模塊、輸出功率模塊組成。語(yǔ)音的模擬信號(hào)經(jīng)過(guò)偏置和濾波處理后輸入到語(yǔ)音的編解碼芯UDA1341TS中,UDA1341TS以IIS的語(yǔ)音格式送入S3C2410中,S3C2410可以處理也可以不處理該信號(hào),把它保存起來(lái),也可用DMA控制而不經(jīng)過(guò)CPU處理,直接實(shí)時(shí)的采集,然后實(shí)時(shí)的播放出去。音頻信號(hào)通過(guò)D/A轉(zhuǎn)換后輸出,經(jīng)過(guò)一次功率放大,然后可以推動(dòng)功率為0.4W的板載揚(yáng)聲器,也可以接耳機(jī)輸出。如圖1-3。語(yǔ)音處理單元原理框圖圖1-3語(yǔ)音處理單元接口說(shuō)明:LINE_IN:音頻輸入端子,可輸入CD、聲卡、MP3等語(yǔ)音信號(hào)。MIC:音頻輸入端子,麥克風(fēng)等語(yǔ)音信號(hào)。SPEAKER:音頻輸出端子,可接耳機(jī)、音箱。語(yǔ)音處理單元旋鈕說(shuō)明:“SPEAKER_R”:逆時(shí)針旋轉(zhuǎn)音量變大順時(shí)針旋轉(zhuǎn)音量變小表1-11“SPEAKER_L”:逆時(shí)針旋轉(zhuǎn)音量變大順時(shí)針旋轉(zhuǎn)音量變小表1-126)LCD模塊本實(shí)驗(yàn)系統(tǒng)僅選用了LCD液晶顯示屏,LCD的控制器使用S3C2410的內(nèi)部集成的控制器,LCD屏選用的是5.7寸,320X240像素,256色的彩屏。電源操作范圍寬(2.7Vto5.5V);低功耗設(shè)計(jì)可滿(mǎn)足產(chǎn)品的省電要求。 其中,可調(diào)變位器VR2用于調(diào)節(jié)LCD屏色彩的對(duì)比度,產(chǎn)品出廠時(shí),已設(shè)定成在室溫下較好的對(duì)比度,當(dāng)因溫度低或高等因素顯示不正常時(shí),可適當(dāng)調(diào)節(jié)VR2到合適的色彩。一般請(qǐng)不要調(diào)整?!癡R2”:逆時(shí)針旋轉(zhuǎn)LCD屏變亮順時(shí)針旋轉(zhuǎn)LCD屏變暗表1-13“LCD_ON/OFF”按鍵,控制著LCD屏的電源,是電源的開(kāi)關(guān)。7)觸摸屏模塊S3C2410內(nèi)部具有觸摸屏控制器,在底板跳線(xiàn)是ARM9的時(shí)候,觸摸屏直接與S3C2410連接,由CPU直接控制。8)SD(MMC)卡單元SD(MMC)卡單元,采用了華邦公司的W86L388D的SD(MMC)卡的控制器,它的最高時(shí)鐘率為25MHz,能夠使用1線(xiàn)或4線(xiàn)傳輸數(shù)據(jù)及指令,它通過(guò)初始化配置能夠使用MMC卡。CPU通過(guò)給其相應(yīng)的寄存器中寫(xiě)入控制命令,來(lái)驅(qū)動(dòng)它讀寫(xiě)SD(MMC)卡,從SD(MMC)卡中讀取的數(shù)據(jù)通過(guò)與CPU相連的16位數(shù)據(jù)總線(xiàn),發(fā)送給CPU處理。SD(MMC)卡與CPU的是通過(guò)中斷方式來(lái)進(jìn)行應(yīng)答的,W86L388D的中斷控制器則顯示SD(MMC)卡的各種中斷請(qǐng)求,CPU只須讀取其狀態(tài),就能判斷對(duì)SD(MMC)卡進(jìn)行如何處理。其原理如圖1-4。D12,通信狀態(tài)指示燈,D13卡識(shí)別指示燈。圖1-49)A/D轉(zhuǎn)換單元A/D轉(zhuǎn)換單元,采用S3C2410內(nèi)置的A/D轉(zhuǎn)換器,它包含一個(gè)8路模擬輸入混合器,12位模數(shù)轉(zhuǎn)換。最大轉(zhuǎn)換速率:100KSPS,輸入電壓范圍:0-2.5V輸入帶寬:0-100Hz(無(wú)采樣和保持電路),低的電源消耗。在本實(shí)驗(yàn)系統(tǒng)中,模擬輸入信號(hào)經(jīng)過(guò)降壓、偏置處理后輸入A/D轉(zhuǎn)換器,然后轉(zhuǎn)換的數(shù)字量給S3C2410處理。如圖1-5。圖1-5模數(shù)單元原理框圖模數(shù)轉(zhuǎn)換單元撥碼開(kāi)關(guān)說(shuō)明見(jiàn)表1-13:SW3:撥碼開(kāi)關(guān)碼位備注1ON,采集的模擬信號(hào)從A/D轉(zhuǎn)換器的第1路輸入;OFF,A/D的第1路輸入懸空,缺省設(shè)置;2ON,采集的模擬信號(hào)從A/D轉(zhuǎn)換器的第2路輸入;OFF,A/D的第2路輸入懸空,缺省設(shè)置;3ON,采集的模擬信號(hào)從A/D轉(zhuǎn)換器的第3路輸入;OFF,A/D的第3路輸入懸空,缺省設(shè)置;4ON,采集的模擬信號(hào)從A/D轉(zhuǎn)換器的第4路輸入;OFF,A/D的第4路輸入懸空,缺省設(shè)置;5ON,采集的模擬信號(hào)從A/D轉(zhuǎn)換器的第5路輸入;OFF,A/D的第5路輸入懸空,缺省設(shè)置;6ON,采集的模擬信號(hào)從A/D轉(zhuǎn)換器的第6路輸入;OFF,A/D的第6路輸入懸空,缺省設(shè)置;7ON,采集的模擬信號(hào)從A/D轉(zhuǎn)換器的第7路輸入;OFF,A/D的第7路輸入懸空,缺省設(shè)置;8ON,采集的模擬信號(hào)從A/D轉(zhuǎn)換器的第8路輸入;OFF,A/D的第8路輸入懸空,缺省設(shè)置;表1-1310)信號(hào)源單元信號(hào)源單元使用TI公司的TLC2272,是雙通道運(yùn)算放大器,可以產(chǎn)生方波。11)PS2單元PS2單元中S5為復(fù)位鍵,U5_1接口為鍵盤(pán)接口,U4_2為鼠標(biāo)接口。D1為數(shù)據(jù)傳輸指示燈。控制芯片為AT2051。12)CPLD單元 由于實(shí)驗(yàn)箱上的資源眾多,幾乎每一個(gè)設(shè)備資源都要使用片選信號(hào)或中斷信號(hào)或一些串口的信號(hào),以及一些寄存器的地址等等,這樣一來(lái),S3C2410的I/O資源是不能滿(mǎn)足的,因此該實(shí)驗(yàn)箱通過(guò)加入了一片CPLD芯片,用來(lái)完成各資源所需的地址譯碼,片選信號(hào),以及一些高低電平的模擬。CPLD單元使用S3C2410的片選是NGCS4,地址是0x20000000—0x28000000;由于底板上大多的資源都通過(guò)CPLD的地址譯碼,進(jìn)行片選電平的產(chǎn)生,以及模擬高低電平的產(chǎn)生,所以,應(yīng)給CPLD的地址里寫(xiě)入相應(yīng)的數(shù)據(jù)以產(chǎn)生相應(yīng)的信號(hào)。表1-21列出了底板中所需信號(hào)的地址。 #defineclrcs1(*(volatileunsigned*)0x20000000)=0x01; #definesetcs1(*(volatileunsigned*)0x20000004)=0x02;利用宏定義來(lái)代替置高、置低;給相應(yīng)的地址里寫(xiě)1,表示該CPLD的相應(yīng)引腳輸出低電平,給相應(yīng)的地址里寫(xiě)2,表示該CPLD的相應(yīng)引腳輸出高電平。有的地址需要寫(xiě)入8位數(shù)據(jù)。模塊名稱(chēng)相應(yīng)說(shuō)明HD7279:0x20000004=0x05->HD7279的DATAPIN方向?yàn)檩斎?x20000004=0x06->HD7279的DATAPIN方向?yàn)檩敵?x20000004=0x01->HD7279的CS有效,選擇HD7279。0x20000004=0x02->HD7279的CS無(wú)效,釋放HD7279SDCard:#definerCMD_PIPE_REG(*(volatileunsignedshort*)0x20000006)#definerSTA_REG (*(volatileunsignedshort*)0x20000008)#definerCON_REG (*(volatileunsignedshort*)0x20000008)#definerRCE_DAT_BUF (*(volatileunsignedshort*)0x2000000a#definerTRA_DAT_BUF (*(volatileunsignedshort*)0x2000000a#definerINT_STA_REG (*(volatileunsignedshort*)0x2000000c#definerINT_ENA_REG (*(volatileunsignedshort*)0x2000000c#definerGPIO_DAT_REG (*(volatileunsignedshort*)0x2000000e)#definerGPIO_CON_REG (*(volatileunsignedshort*)0x2000000e)#definerGPIO_INT_STA_REG (*(volatileunsignedshort*)0x20000010)#definerGPIO_INT_ENA_REG (*(volatileunsignedshort*)0x20000010)#definerIND_ADD_REG (*(volatileunsignedshort*)0x20000012)#definerIND_DAT_REG (*(volatileunsignedshort*)0x20000014)模擬輸入輸出:74ls244地址:0x2000001674ls273地址:0x20000000UDA1341:0x20000028=0x03->L3MODE置00x20000028=0x04->L3MODE置10x20000018=0x01->L3CLOCK置00x20000018=0x02->L3CLOCK置1表1-21具體的應(yīng)用,請(qǐng)?jiān)斠?jiàn)源碼程序。12)其它接口說(shuō)明電源單元:為系統(tǒng)提供+5V、+12V、-12V、+3.3V電源,其中標(biāo)號(hào)名稱(chēng)功能LED15LED燈+3.3V電源指示LED16LED燈+5V電源指示LED17LED燈+12V電源指示LED18LED燈-12V電源指示表1-22SW2:撥碼開(kāi)關(guān),擴(kuò)展中斷選擇碼位功能1ONEXT中斷2引出2ON未定義3ONEXT中斷3引出4ONEXT中斷3用于PS2鍵盤(pán)鼠標(biāo)的中斷請(qǐng)求表1-23在底板上,留出了兩列插孔,它們是供外部擴(kuò)展所用。具體功能見(jiàn)表1-23。標(biāo)號(hào)功能IICSCLS3C2410的IIC控制時(shí)鐘引出IICSDAS3C2410的IIC數(shù)據(jù)線(xiàn)引出CS1CPLD的第100管腳的引出CS2CPLD的第77管腳的引出EXINT2S3C2410的外部中斷請(qǐng)求2管腳引出EXINT3S3C2410的外部中斷請(qǐng)求3管腳引出IO-1CPLD的第52管腳的引出IO-2CPLD的第97管腳的引出IOC-3S3C2410的TOUT1管腳引出,J4的13IOC-4S3C2410的TOUT3管腳引出,J4的45AIN3采集的模擬信號(hào)從第3路輸出AIN2采集的模擬信號(hào)從第2路輸出表1-24在信號(hào)擴(kuò)展單元處,又?jǐn)U展了PS2鍵盤(pán)鼠標(biāo)接口,還有IDE硬盤(pán)接口。在此對(duì)底板上的設(shè)備所使用的中斷作一總結(jié)。見(jiàn)表1-25。設(shè)備使用的中斷網(wǎng)卡外部中斷EXINT1PS2外部中斷EXINT3USB設(shè)備外部中斷EXINT44X4鍵盤(pán)外部中斷EXINT5SD(MMC)卡外部中斷EXINT6觸摸屏外部中斷EXINT7IDE硬盤(pán)外部中斷EXINT7表1-25 SW4:撥碼開(kāi)關(guān),ARM系列的CPU板卡選擇。功能12ARM7offoffARM9OnoffARM10OffonARM11Onon1.4Tech_V總線(xiàn)的介紹在實(shí)驗(yàn)箱的左中部,有兩條擴(kuò)展接口,J3和J5,在深入掌握了ARM的系統(tǒng)之后,可以進(jìn)一步開(kāi)發(fā)屬于自己的具體的開(kāi)發(fā)板,例如,在此總線(xiàn)上,我公司已經(jīng)研制開(kāi)發(fā)了GPS/GPRS模塊卡,高精度的A/D,D/A采集卡,靜態(tài)圖像處理卡等等?,F(xiàn)就Tech_V總線(xiàn)的接口定義說(shuō)明見(jiàn)表1-26,1-27。J3:J3擴(kuò)展信號(hào)是地址、數(shù)據(jù)總線(xiàn)和讀寫(xiě)、片選信號(hào):見(jiàn)表1-26序號(hào)代號(hào)含義IO備注1+5V+5V電源2+5V+5V電源3ADDR19地址線(xiàn)O與CPU板的ADDR19相連4ADDR18地址線(xiàn)O與CPU板的ADDR18相連5ADDR17地址線(xiàn)O與CPU板的ADDR17相連6ADDR16地址線(xiàn)O與CPU板的ADDR16相連7ADDR15地址線(xiàn)O與CPU板的A15相連8ADDR14地址線(xiàn)O與CPU板的A14相連9ADDR13地址線(xiàn)O與CPU板的A13相連10ADDR12地址線(xiàn)O與CPU板的A12相連11GND地12GND地13ADDR11地址線(xiàn)O與CPU板的A11相連14ADDR10地址線(xiàn)O與CPU板的A10相連15ADDR9地址線(xiàn)O與CPU板的A9相連16ADDR8地址線(xiàn)O與CPU板的A8相連17ADDR7地址線(xiàn)O與CPU板的A7相連18ADDR6地址線(xiàn)O與CPU板的A6相連19ADDR5地址線(xiàn)O與CPU板的A5相連20ADDR4地址線(xiàn)O與CPU板的A4相連21+5V+5V電源22+5V+5V電源23ADDR3地址線(xiàn)O與CPU板的A3相連序號(hào)代號(hào)含義IO備注24ADDR2地址線(xiàn)O與CPU板的A2相連25ADDR1地址線(xiàn)O與CPU板的A1相連26ADDR0地址線(xiàn)O與CPU板的A0相連27ADDR21地址線(xiàn)O28ADDR20地址線(xiàn)O29GND地30GND地31GND地32GND地33NC空腳空34NC空腳空35NC空腳空36NC空腳空37NC空腳空38NC空腳空39NC空腳空40NC空腳空41+3.3V+3.3V電源42+3.3V+3.3V電源43NC空腳空44NC空腳空45NC空腳空46NC空腳空47NC空腳空48NC空腳空49NC空腳空50NC空腳空51GND地52GND地53DATA15數(shù)據(jù)線(xiàn)IO與CPU板的D15相連54DATA14數(shù)據(jù)線(xiàn)IO與CPU板的D14相連55DATA13數(shù)據(jù)線(xiàn)IO與CPU板的D13相連56DATA12數(shù)據(jù)線(xiàn)IO與CPU板的D12相連57DATA11數(shù)據(jù)線(xiàn)IO與CPU板的D11相連58DATA10數(shù)據(jù)線(xiàn)IO與CPU板的D10相連59DATA9數(shù)據(jù)線(xiàn)IO與CPU板的D9相連序號(hào)代號(hào)含義IO備注60DATA8數(shù)據(jù)線(xiàn)IO與CPU板的D8相連61GND地62GND地63DATA7數(shù)據(jù)線(xiàn)IO與CPU板的D7相連64DATA6數(shù)據(jù)線(xiàn)IO與CPU板的D6相連65DATA5數(shù)據(jù)線(xiàn)IO與CPU板的D5相連66DATA4數(shù)據(jù)線(xiàn)IO與CPU板的D4相連67DATA3數(shù)據(jù)線(xiàn)IO與CPU板的D3相連68DATA2數(shù)據(jù)線(xiàn)IO與CPU板的D2相連69DATA1數(shù)據(jù)線(xiàn)IO與CPU板的D1相連70DATA0數(shù)據(jù)線(xiàn)IO與CPU板的D0相連71GND地72GND地73RD讀信號(hào)O74NWE寫(xiě)信號(hào)O75NOE使能信號(hào)O76NWIT等待信號(hào)I77MSTRB存儲(chǔ)器選通單元O78NGCS4片選信號(hào)4O79GND地80GND地表1-26J5:J5擴(kuò)展信號(hào)外設(shè)信號(hào)接口:見(jiàn)表1-27。序號(hào)代號(hào)含義IO備注1+12V電源2-12V電源3DGND地4DGND地5+5V+5V電源6+5V+5V電源7GND地8GND地9+5V+5V電源10+5V+5V電源11NC空腳空序號(hào)代號(hào)含義IO備注12NC空腳空13NC空腳空14NC空腳空15NC空腳空16NC空腳空17NC空腳空18NC空腳空19+3.3V+3.3V電源20+3.3V+3.3V電源21SIOCLKSIO輸出位時(shí)鐘O實(shí)際使用的是GPIO口22空空空23SIORDYSIO就緒I實(shí)際使用的是GPIO口。24SIOTXDSIO發(fā)送數(shù)據(jù)O實(shí)際使用的是GPIO口。25GND地26GND地27NC空腳空28NC空腳空29NC空腳空30SIORXDSIO接收數(shù)據(jù)I實(shí)際使用的是GPIO口。31GND地32GND地33NC空腳空34NC空腳空35IISLRCLKIIS左右聲道時(shí)鐘O36IISDOIIS數(shù)據(jù)輸出O37GND地38GND地39IISCLKIIS輸出時(shí)鐘O40NC空腳空41NC空腳空42IISDIIIS數(shù)據(jù)輸入I43GND地44GND地45TOUT0定時(shí)器輸出0O46NC空腳空序號(hào)代號(hào)含義IO備注47NC空腳空48EINT1中斷1I外部輸入的中斷信號(hào),連接到CPU的中斷349XFGPIO空該CPU板上為空引腳50NC空腳空51GND地52GND地53EINT2中斷2I外部輸入的中斷信號(hào),連接到CPU的中斷254NC空腳空55NC空腳空56NGCS2片選信號(hào)5O57NC空腳空58NC空腳空59RESET復(fù)位信號(hào)O60NC空腳空61GND地62GND地63NC空腳空64NC空腳空65NC空腳空66NC空腳空67NC空腳空68NC空腳空69NGCS5片選信號(hào)5O70NGCS4片選信號(hào)4O71NC空腳空72NC空腳空73NC空腳空74NC空腳空75CPUDET子板檢測(cè)信號(hào)I子板輸入給CPU板的信號(hào),低有效。該信號(hào)用來(lái)檢測(cè)是否有子板插在CPU板上76GND地77GND地78NC空腳空79GND地序號(hào)代號(hào)含義IO備注80GND地表1-271.5E_Lab總線(xiàn)的介紹在實(shí)驗(yàn)箱的左下部,有一對(duì)擴(kuò)展接口,JP3和JP4,稱(chēng)為E_Lab總線(xiàn)接口。在深入掌握了ARM的系統(tǒng)之后,可以進(jìn)一步開(kāi)發(fā)屬于自己的具體的開(kāi)發(fā)板,現(xiàn)就E_Lab總線(xiàn)的接口定義說(shuō)明見(jiàn)表1-28,1-29。值得注意的是E_Lab總線(xiàn)接口使用雙排插座,每個(gè)插座并列的兩個(gè)引腳的信號(hào)定義是相同的。JP1:JP1擴(kuò)展信號(hào)是地址總線(xiàn)和讀寫(xiě)、片選信號(hào):見(jiàn)表1-28序號(hào)代號(hào)含義IO備注1,2MCCS0O片選信號(hào)3,4MCCS1O片選信號(hào)5,6MCCS2O片選信號(hào)7,8MCCS3O片選信號(hào)9,10A4地址線(xiàn)O與CPU的ADDR4相連接11,12A5地址線(xiàn)O與CPU的ADDR5相連接13,14A6地址線(xiàn)O與CPU的ADDR6相連接15,16A7地址線(xiàn)O與CPU的ADDR7相連接17,18A8地址線(xiàn)O與CPU的ADDR8相連接19,20A9地址線(xiàn)O與CPU的ADDR9相連接21,22A10地址線(xiàn)O與CPU的ADDR10相連接23,24A11地址線(xiàn)O與CPU的ADDR11相連接25,26ACS0O片選信號(hào)27,28ACS1O片選信號(hào)29,30ACS2O片選信號(hào)31,32ACS3O片選信號(hào)表1-28底板JP1插座引腳信號(hào)JP2:JP2擴(kuò)展信號(hào)是外設(shè)信號(hào)(數(shù)據(jù))接口:見(jiàn)表1-29。序號(hào)代號(hào)含義IO備注1,2,3,4+5V電源5,6,7,8GND地9,10A0地址線(xiàn)O與CPU的ADDR0相連接11,12A1地址線(xiàn)O與CPU的ADDR1相連接13,14A2地址線(xiàn)O與CPU的ADDR2相連接15,16A3地址線(xiàn)O與CPU的ADDR3相連接17,18D0數(shù)據(jù)線(xiàn)IO序號(hào)代號(hào)含義IO備注19,20D1數(shù)據(jù)線(xiàn)IO21,22D2數(shù)據(jù)線(xiàn)IO23,24D3數(shù)據(jù)線(xiàn)IO25,26D4數(shù)據(jù)線(xiàn)IO27,28D5數(shù)據(jù)線(xiàn)IO29,30D6數(shù)據(jù)線(xiàn)IO31,32D7數(shù)據(jù)線(xiàn)IO33,34ALEO地址鎖定使能35,36R/WO讀寫(xiě)使能37,38BREOBusy/Ready信號(hào)39,40ACS4O片選信號(hào)41,42,43,44+12V電源45,46,47,48-12V電源表1-29底板JP2插座引腳信號(hào)綜上所述,本章介紹了該系統(tǒng)的硬件資源,看完本章內(nèi)容,應(yīng)該對(duì)實(shí)驗(yàn)系統(tǒng)有一個(gè)基本的了解,在后面的幾章中將會(huì)結(jié)合光盤(pán)資料給出的實(shí)驗(yàn)程序詳細(xì)介紹每個(gè)單元在實(shí)驗(yàn)中的具體應(yīng)用。第2章基于ARM系統(tǒng)資源的實(shí)驗(yàn)當(dāng)進(jìn)行嵌入式系統(tǒng)開(kāi)發(fā)時(shí),選擇合適的開(kāi)發(fā)工具可以加快開(kāi)發(fā)進(jìn)度、節(jié)省開(kāi)發(fā)成本。因此一套含有編輯軟件、編譯軟件、匯編軟件、連接軟件、調(diào)試軟件、工程管理及函數(shù)庫(kù)的集成開(kāi)發(fā)環(huán)境(IDE)是必不可少的。當(dāng)今在ARM領(lǐng)域,被多數(shù)嵌入式開(kāi)發(fā)人員使用的集成開(kāi)發(fā)環(huán)境有SDT2.5和ADS,其中ADS為ARM公司推出的新一代ARM集成開(kāi)發(fā)工具,最新版本為ADS1.2。這兩種開(kāi)發(fā)工具都是ARM公司為了方便用戶(hù)開(kāi)發(fā)使用ARM內(nèi)核芯片而推出的,目前被廣泛應(yīng)用。ADS調(diào)試時(shí)在不需要仿真器的情況下,需要一根JTAG調(diào)試電纜就可以了,但它在調(diào)試的時(shí)候占用CPU的資源,調(diào)試的穩(wěn)定性稍差,成本低,比較適合學(xué)生實(shí)驗(yàn)使用。ADS調(diào)試時(shí)使用外接仿真器的情況下,其在調(diào)試時(shí)不占用CPU的資源,穩(wěn)定性好,但是成本高,適合用于科研教學(xué)和嵌入式的產(chǎn)品開(kāi)發(fā)。在本章中主要是針對(duì)ARM的實(shí)驗(yàn)開(kāi)發(fā)環(huán)境、ARM的匯編、高級(jí)語(yǔ)言的使用,以及針對(duì)三星的S3C2410的硬件資源進(jìn)行一系列的HARDWARE。這其中包括ADS1.2開(kāi)發(fā)環(huán)境創(chuàng)建與簡(jiǎn)要介紹、基于ARM匯編語(yǔ)言程序設(shè)計(jì)、基于ARM的C語(yǔ)言程序設(shè)計(jì)基于ARM的硬件boot程序設(shè)計(jì)、ARM的I/O接口實(shí)驗(yàn)、ARM的中斷實(shí)驗(yàn)ARM的DMA實(shí)驗(yàn)、ARM的UART實(shí)驗(yàn)、ARM的A/D接口實(shí)驗(yàn)、七段數(shù)碼管和鍵盤(pán)的控制實(shí)驗(yàn)、LCD的顯示實(shí)驗(yàn)、觸摸屏實(shí)驗(yàn)、音頻錄放實(shí)驗(yàn)、USB設(shè)備收發(fā)數(shù)據(jù)實(shí)驗(yàn)、以太網(wǎng)傳輸實(shí)驗(yàn)、SD卡檢測(cè)實(shí)驗(yàn),PS2鍵盤(pán)鼠標(biāo)實(shí)驗(yàn)。這些實(shí)驗(yàn)是脫離操作系統(tǒng)的HARDWARE,通過(guò)此類(lèi)實(shí)驗(yàn)可以了解和學(xué)習(xí)ARM硬件的架構(gòu)和軟件的啟動(dòng)過(guò)程、運(yùn)行過(guò)程,真正理解ARM芯片的應(yīng)用。實(shí)驗(yàn)一ADS1.2開(kāi)發(fā)環(huán)境創(chuàng)建與簡(jiǎn)要介紹一、實(shí)驗(yàn)?zāi)康?.熟悉ADS1.2開(kāi)發(fā)環(huán)境,正確使用仿真調(diào)試電纜進(jìn)行編譯、下載、調(diào)試。二、實(shí)驗(yàn)內(nèi)容1.學(xué)習(xí)ADS1.2開(kāi)發(fā)環(huán)境三、實(shí)驗(yàn)設(shè)備1.EL-ARM-830教學(xué)實(shí)驗(yàn)箱,PentiumII以上的PC機(jī),仿真調(diào)試電纜。PC操作系統(tǒng)WIN98或WIN2000或WINXP,ADS1.2集成開(kāi)發(fā)環(huán)境,仿真調(diào)試電纜驅(qū)動(dòng)程序四、實(shí)驗(yàn)步驟ADS1.2下建立工程1.運(yùn)行ADS1.2集成開(kāi)發(fā)環(huán)境(CodeWarriorforARMDeveloperSuite),點(diǎn)擊File|New,在New對(duì)話(huà)框中,選擇Project欄,其中共有7項(xiàng),ARMExecutableImage是ARM的通用模板。選中它即可生成ARM的執(zhí)行文件。同時(shí),如圖2-1-1圖2-1-1還要在,Projectname欄中輸入項(xiàng)目的名稱(chēng),以及在Location中輸入其存放的位置。按確定保存項(xiàng)目。2.在新建的工程中,選擇Debug版本,如圖2-1-2,使用Edit|DebugSettings菜單對(duì)Debug版本進(jìn)行參數(shù)設(shè)置。圖2-1-23.在如圖2-1-3中,點(diǎn)擊DebugSetting按鈕,彈出2-1-4圖,選中TargetSetting圖2-1-3圖2-1-4項(xiàng),在Post-linker欄中選中ARMfromELF項(xiàng)。按OK確定。這是為生成可執(zhí)行的代碼的初始開(kāi)關(guān)。4.在如圖2-1-5中,點(diǎn)擊ARMAssembler,在ArchitectureorProcesser圖2-1-5欄中選ARM920T。這是要編譯的CPU核。5.在如圖2-1-6中,點(diǎn)擊ARMCCompliler,在ArchitectureorProcesser欄中選ARM920T。這是要編譯的CPU核。圖2-1-6 6.在如圖2-1-7中,點(diǎn)擊ARMlinker,在outpur欄中設(shè)定程序的代碼段地址,以及數(shù)據(jù)使用的地址。圖中的ROBase欄中填寫(xiě)程序代碼存放的起始地址,RWBase欄中填寫(xiě)程序數(shù)據(jù)存放的起始地址。該地址是屬于SDRAM的地址。圖2-1-7圖2-1-8在options欄中,如圖2-1-8,Imageentrypoint要填寫(xiě)程序代碼的入口地址,其他保持不變,如果是在SDRAM中運(yùn)行,則可在0x30000000—0x33ffffff中選值,這是64MSDRAM的地址,但是這里用的是起始地址,所以必須把你的程序空間給留出來(lái),并且還要留出足夠的程序使用的數(shù)據(jù)空間,而且還必須是4字節(jié)對(duì)齊的地址(ARM狀態(tài))。通常入口點(diǎn)Imageentrypoint為0x30000000,ro_base也為0x30000000。 在Layout欄中,如圖2-1-9,在Placeatbeginningofimage框內(nèi),需要填寫(xiě)項(xiàng)目的入口程序的目標(biāo)文件名,如,整個(gè)工程項(xiàng)目的入口程序是2410init.s,那么應(yīng)在Object/Symbol處填寫(xiě)其目標(biāo)文件名2410init.o,在Section處填寫(xiě)程序入口的起始段標(biāo)號(hào)。它的作用是通知編譯器,整個(gè)項(xiàng)目的開(kāi)始運(yùn)行,是從該段開(kāi)始的。圖2-1-9 7.在如圖2-1-10中,即在DebugSetting對(duì)話(huà)框中點(diǎn)擊左欄的ARMfromELF項(xiàng),在Outputfilename欄中設(shè)置輸出文件名*.bin,前綴名可以自己取,在Outputformat欄中選擇Plainbinary,這是設(shè)置要下載到flash中的二進(jìn)制文件。圖2-1-10中使用的是test.bin.圖2-1-10 8.到此,在ADS1.2中的基本設(shè)置已經(jīng)完成,可以將該新建的空的項(xiàng)目文件作為模板保存起來(lái)。首先,要將該項(xiàng)目工程文件改一個(gè)合適的名字,如S3C2410ARM.mcp等,然后,在ADS1.2軟件安裝的目錄下的Stationary目錄下新建一個(gè)合適的模板目錄名,如,S3C2410ARMExecutableImage,再將剛剛設(shè)置完的S3c2410ARM.mcp項(xiàng)目文件存放到該目錄下即可。這樣,就能在圖2-1-10中看到該模板。 9.新建項(xiàng)目工程后,就可以執(zhí)行菜單Project|AddFiles把和工程所有相關(guān)的文件加入,ADS1.2不能自動(dòng)進(jìn)行文件分類(lèi),用戶(hù)必須通過(guò)Project|CreateGroup來(lái)創(chuàng)建文件夾,然后把加入的文件選中,移入文件夾?;蛘呤髽?biāo)放在文件填加區(qū),右鍵點(diǎn)擊,即出!如圖2-1-11 圖2-1-11 先選AddFiles,加入文件,再選CreateGroup,創(chuàng)建文件夾,然后把文件移入文件夾內(nèi)。讀者可根據(jù)自己習(xí)慣,更改Edit|Preference窗口內(nèi)關(guān)于文本編輯的顏色、字體大小,形狀,變量、函數(shù)的顏色等等設(shè)置。如圖2-1-12。圖2-1-122.ADS1.2下仿真、調(diào)試 在ADS1.2下進(jìn)行仿真調(diào)試,首先需要一根仿真調(diào)試電纜。其驅(qū)動(dòng)程序的安裝和使用在光盤(pán)中的\實(shí)驗(yàn)軟件\ARM9_RDI中,里面有相關(guān)的文檔。在連上調(diào)試電纜后,給實(shí)驗(yàn)箱上電, 打開(kāi)調(diào)試軟件AXDDebugger。點(diǎn)擊File|loadimage加載文件ADS.axf(\實(shí)驗(yàn)程序\HARDWARE\ADS\實(shí)驗(yàn)一\ADS\ADS_data目錄下)。打開(kāi)超級(jí)終端,設(shè)置其參數(shù)為:波特率為115200,數(shù)據(jù)位數(shù)8,奇偶校驗(yàn)無(wú),停止位無(wú)1,數(shù)據(jù)流控?zé)o。點(diǎn)擊全速運(yùn)行,出現(xiàn)圖2-1-13的界面:圖2-1-13在最后介紹調(diào)試按鈕,上圖,左起第一個(gè)是全速運(yùn)行,第二個(gè)是停止運(yùn)行,第三個(gè)跳入函數(shù)內(nèi)部,第四個(gè)單步執(zhí)行,第五個(gè)跳出函數(shù)。到此,開(kāi)發(fā)環(huán)境就全部介紹完了,這是ARM的開(kāi)發(fā)基礎(chǔ),希望你有所收獲。實(shí)驗(yàn)二基于ARM的匯編語(yǔ)言程序設(shè)計(jì)簡(jiǎn)介一、實(shí)驗(yàn)?zāi)康?.了解ARM匯編語(yǔ)言的基本框架,學(xué)會(huì)使用ARM的匯編語(yǔ)言編程二、實(shí)驗(yàn)內(nèi)容1.用匯編語(yǔ)言編寫(xiě)一個(gè)簡(jiǎn)單的應(yīng)用程序三、實(shí)驗(yàn)設(shè)備1.EL-ARM-830教學(xué)實(shí)驗(yàn)箱,PentiumII以上的PC機(jī),仿真調(diào)試電纜,串口電纜。PC操作系統(tǒng)WIN98或WIN2000或WINXP,ADS1.2集成開(kāi)發(fā)環(huán)境,仿真調(diào)試驅(qū)動(dòng)程序四、匯編語(yǔ)言簡(jiǎn)介ARM匯編的一些簡(jiǎn)要的書(shū)寫(xiě)規(guī)范ARM匯編中,所有標(biāo)號(hào)必須在一行的頂格書(shū)寫(xiě),其后面不要添加“:”,而所有指令均不能頂格書(shū)寫(xiě)。ARM匯編對(duì)標(biāo)識(shí)符的大小寫(xiě)敏感,書(shū)寫(xiě)標(biāo)號(hào)及指令時(shí)字母大小寫(xiě)要一致。在ARM匯編中,ARM指令、偽指令、寄存器名等可以全部大寫(xiě)或者全部小寫(xiě),但不要大小寫(xiě)混合使用。注釋使用“;”號(hào),注釋的內(nèi)容由“;”號(hào)起到此行結(jié)束,注釋可以在一行的頂格書(shū)寫(xiě)。詳細(xì)的匯編語(yǔ)句及規(guī)范請(qǐng)參照ARM匯編的相關(guān)書(shū)籍、文檔,也可參照我們提供的文檔。ARM匯編語(yǔ)言程序的基本結(jié)構(gòu)在ARM匯編語(yǔ)言程序中,是以程序段為單位來(lái)組織代碼。段是相對(duì)獨(dú)立的指令或數(shù)據(jù)序列,具有特定的名稱(chēng)。段可以分為代碼段的和數(shù)據(jù)段,代碼段的內(nèi)容為執(zhí)行代碼,數(shù)據(jù)段存放代碼運(yùn)行時(shí)所需的數(shù)據(jù)。一個(gè)匯編程序至少應(yīng)該有一個(gè)代碼段,當(dāng)程序較長(zhǎng)時(shí),可以分割為多個(gè)代碼段和數(shù)據(jù)段,多個(gè)段在程序編譯鏈接時(shí)最終形成一個(gè)可執(zhí)行文件??蓤?zhí)行映像文件通常由以下幾部分構(gòu)成:◆一個(gè)或多個(gè)代碼段,代碼段為只讀屬性?!袅銈€(gè)或多個(gè)包含初始化數(shù)據(jù)的數(shù)據(jù)段,數(shù)據(jù)段的屬性為可讀寫(xiě)。◆零個(gè)或多個(gè)不包含初始化數(shù)據(jù)的數(shù)據(jù)段,數(shù)據(jù)段的屬性為可讀寫(xiě)。鏈接器根據(jù)系統(tǒng)默認(rèn)或用戶(hù)設(shè)定的規(guī)則,將各個(gè)段安排在存儲(chǔ)器中的相應(yīng)位置。源程序中段之間的相鄰關(guān)系與執(zhí)行的映象文件中的段之間的相鄰關(guān)系不一定相同。簡(jiǎn)單的小例子下面是一個(gè)代碼段的小例子AREAInit,CODE,READONLYENTRYLDRR0,=0x3FF5000LDRR1,0x0fSTRR1,[R0]LDRR0,=0x3F50008LDRR1,0x1STRR1,[R0]……END在匯編程序中,用AREA指令定義一個(gè)段,并說(shuō)明定義段的相關(guān)屬性,本例中定義了一個(gè)名為Init的代碼段,屬性為只讀。ENTRY偽指令標(biāo)識(shí)程序的入口,程序的末尾為END指令,該偽指令告訴編譯器源文件的結(jié)束,每一個(gè)匯編文件都要以END結(jié)束。下面是一個(gè)數(shù)據(jù)段的小例子AREADataArea,DATA,NOINIT,ALIGN=2DISPBUF SPACE 200RCVBUF SPACE 200……DATA為數(shù)據(jù)段的標(biāo)識(shí)。五、實(shí)驗(yàn)步驟1.本實(shí)驗(yàn)僅使用實(shí)驗(yàn)教學(xué)系統(tǒng)的CPU板,串口。在進(jìn)行本實(shí)驗(yàn)時(shí),LCD電源開(kāi)關(guān)、音頻的左右聲道開(kāi)關(guān)、AD通道選擇開(kāi)關(guān)、觸摸屏中斷選擇開(kāi)關(guān)等均應(yīng)處在關(guān)閉狀態(tài)。2.在PC機(jī)并口和實(shí)驗(yàn)箱的CPU板上的JTAG接口之間,連接仿真調(diào)試電纜,以及串口間連接公/母接頭串口線(xiàn)。3.檢查連接是否可靠,可靠后,接入電源線(xiàn),系統(tǒng)上電。4.打開(kāi)ADS1.2開(kāi)發(fā)環(huán)境,從里面打開(kāi)\實(shí)驗(yàn)程序\HARDWARE\ADS\實(shí)驗(yàn)二\asm.mcp項(xiàng)目文件,進(jìn)行編譯。5.編譯通過(guò)后,進(jìn)入ADS1.2調(diào)試界面,加載\實(shí)驗(yàn)程序\HARDWARE\ADS\實(shí)驗(yàn)二\asm_Data\Debug中的映象文件程序映像asm.axf。6.打開(kāi)超級(jí)終端,配置波特率為115200,校驗(yàn)位無(wú),數(shù)據(jù)位為8,停止位為1。之后,在ADS調(diào)試環(huán)境下全速運(yùn)行映象文件,應(yīng)出現(xiàn)圖2-2-1界面:圖2-2-1本程序連續(xù)發(fā)送了128個(gè)字節(jié)的ASCII字符。下面分析一下程序的源碼。在UART前的部分為系統(tǒng)的初始化,這在后邊BOOTLOADER的章節(jié)里,要詳細(xì)介紹。UART后的程序?yàn)橹鞒绦?,在程序中找到下面這部分的代碼,……;//呼叫主應(yīng)用程序 bUARTUARTldrr0,=GPHCON;//設(shè)置GPIO(RxD0,TxD0引腳)ldrr1,=0x2afaaastrr1,[r0]ldrr0,=GPHUPldrr1,=0x7ffstrr1,[r0];//GPH[10:0]禁止上拉ldrr0,=UFCON0;//禁用FIFOldrr1,=0x0strr1,[r0]ldrr0,=UMCON0;//禁用AFCldrr1,=0x0strr1,[r0]ldrr0,=ULCON0;//設(shè)置線(xiàn)寄存器ldrr1,=0x3;//正常模式,無(wú)奇偶校驗(yàn),一個(gè)停止位,8個(gè)數(shù)據(jù)位strr1,[r0]ldrr0,=UCON0;//設(shè)置Uart0控制器ldrr1,=0x245;//RX邊沿觸發(fā),TX電平觸發(fā),禁用延時(shí)中斷,使用RX錯(cuò)誤中斷,正常操作模式,中斷請(qǐng)求或表決模式strr1,[r0]ldrr0,=UBRDIV0;//設(shè)置波特率為115200ldrr1,=0x1a;//int(50700000/16/115200)-1=26strr1,[r0]movr1,#100Delaysubr1,r1,#0x1bneDelay;//開(kāi)中斷l(xiāng)drr0,=INTMSKldrr1,[r0]andr1,r1,#0xefffffffstrr1,[r0]MOVR5,#127;//設(shè)置要打印的字符的個(gè)數(shù)MOVR1,#0x0;//設(shè)置要打印的字符LOOPLDRR3,=UTRSTAT0LDRR2,[R3]TSTR2,#0x04;//判斷發(fā)送緩沖區(qū)是否為空BEQLOOP;//為空則執(zhí)行下邊的語(yǔ)句,不為空則跳轉(zhuǎn)到LOOPLDRR0,=UTXH0STRR1,[R0];//向數(shù)據(jù)緩沖區(qū)放置要發(fā)送的數(shù)據(jù)ADDR1,R1,#1SUBR5,R5,#0x01;//計(jì)數(shù)器減一CMPR5,#0x0BNELOOPLOOP2BLOOP2分析清楚之后,我們改變R1的數(shù)據(jù),換成其他的數(shù)據(jù),然后保存、編譯、調(diào)試。觀察結(jié)果,比如0xaa,0x01等等。實(shí)驗(yàn)三基于ARM的C語(yǔ)言程序設(shè)計(jì)簡(jiǎn)介一、實(shí)驗(yàn)?zāi)康?.了解ARMC語(yǔ)言的基本框架,學(xué)會(huì)使用ARM的C語(yǔ)言編程二、實(shí)驗(yàn)內(nèi)容1.用C語(yǔ)言編寫(xiě)一個(gè)簡(jiǎn)單的應(yīng)用程序三、實(shí)驗(yàn)設(shè)備1.EL-ARM-830教學(xué)實(shí)驗(yàn)箱,PentiumII以上的PC機(jī),仿真調(diào)試電纜,串口電纜。2.PC操作系統(tǒng)WIN98或WIN2000或WINXP,ADS1.2集成開(kāi)發(fā)環(huán)境,仿真調(diào)試驅(qū)動(dòng)程序四、ARMC語(yǔ)言簡(jiǎn)介與使用規(guī)則1.ARM使用C語(yǔ)言編程是大勢(shì)所趨在應(yīng)用系統(tǒng)的程序設(shè)計(jì)中,若所有的編程任務(wù)均由匯編語(yǔ)言來(lái)完成,其工作量巨大,并且不易移植。由于ARM的程序執(zhí)行速度較高,存儲(chǔ)器的存儲(chǔ)速度和存儲(chǔ)量也很高,因此,C語(yǔ)言的特點(diǎn)充分發(fā)揮,使得應(yīng)用程序的開(kāi)發(fā)時(shí)間大為縮短,代碼的移植十分方便,程序的重復(fù)使用率提高,程序架構(gòu)清晰易懂,管理較為容易等等。因此,C語(yǔ)言的在ARM編程中具有重要地位。2.ARMC語(yǔ)言程序的基本規(guī)則在ARM程序的開(kāi)發(fā)中,需要大量讀寫(xiě)硬件寄存器,并且盡量縮短程序的執(zhí)行時(shí)間的代碼一般使用匯編語(yǔ)言來(lái)編寫(xiě),比如ARM的啟動(dòng)代碼,ARM的操作系統(tǒng)的移植代碼等,除此之外,絕大多數(shù)代碼可以使用C語(yǔ)言來(lái)完成。C語(yǔ)言使用的是標(biāo)準(zhǔn)的C語(yǔ)言,ARM的開(kāi)發(fā)環(huán)境實(shí)際上就是嵌入了一個(gè)C語(yǔ)言的集成開(kāi)發(fā)環(huán)境,只不過(guò)這個(gè)開(kāi)發(fā)環(huán)境和ARM的硬件緊密相關(guān)。在使用C語(yǔ)言時(shí),要用到和匯編語(yǔ)言的混合編程。當(dāng)匯編代碼較為簡(jiǎn)潔,則可使用直接內(nèi)嵌匯編的方法,否則,使用將匯編文件以文件的形式加入項(xiàng)目當(dāng)中,通過(guò)ATPCS的規(guī)定與C程序相互調(diào)用與訪問(wèn)。ATPCS,就是ARM、Thumb的過(guò)程調(diào)用標(biāo)準(zhǔn)(ARM/ThumbProcedureCallStandard),它規(guī)定了一些子程序間調(diào)用的基本規(guī)則。如寄存器的使用規(guī)則,堆棧的使用規(guī)則,參數(shù)的傳遞規(guī)則等。在C程序和ARM的匯編程序之間相互調(diào)用必須遵守ATPCS。而使用ADS的C語(yǔ)言編譯器編譯的C語(yǔ)言子程序滿(mǎn)足用戶(hù)指定的ATPCS的規(guī)則。但是,對(duì)于匯編語(yǔ)言來(lái)說(shuō),完全要依賴(lài)用戶(hù)保證各個(gè)子程序遵循ATPCS的規(guī)則。具體來(lái)說(shuō),匯編語(yǔ)言的子程序應(yīng)滿(mǎn)足下面3個(gè)條件:●在子程序編寫(xiě)時(shí),必須遵守相應(yīng)的ATPCS規(guī)則;●堆棧的使用要遵守相應(yīng)的ATPCS規(guī)則;●在匯編編譯器中使用-atpcs選項(xiàng)?;镜腁TPCS規(guī)定,請(qǐng)?jiān)斠?jiàn)提供的相關(guān)PDF文檔。匯編程序調(diào)用C程序匯編程序的設(shè)置要遵循ATPCS規(guī)則,保證程序調(diào)用時(shí)參數(shù)正確傳遞。在匯編程序中使用IMPORT偽指令聲明將要調(diào)用的C程序函數(shù)。在調(diào)用C程序時(shí),要正確設(shè)置入口參數(shù),然后使用BL調(diào)用。C程序調(diào)用匯編程序匯編程序的設(shè)置要遵循ATPCS規(guī)則,保證程序調(diào)用時(shí)參數(shù)正確傳遞。在匯編程序中使用EXPORT偽指令聲明本子程序,使其他程序可以調(diào)用此子程序。在C語(yǔ)言中使用extern關(guān)鍵字聲明外部函數(shù)(聲明要調(diào)用的匯編子程序)。在C語(yǔ)言的環(huán)境內(nèi)開(kāi)發(fā)應(yīng)用程序,一般需要一個(gè)匯編的啟動(dòng)程序,從匯編的啟動(dòng)程序,跳到C語(yǔ)言下的主程序,然后,執(zhí)行C程序,在C環(huán)境下讀寫(xiě)硬件的寄存器,一般是通過(guò)宏調(diào)用,在每個(gè)項(xiàng)目文件的Startup2410/INC目錄下都有一個(gè)2410addr.h的頭文件,那里面定義了所有關(guān)于2410的硬件寄存器的宏,對(duì)宏的讀寫(xiě),就能操作2410的硬件。具體的編程規(guī)則同標(biāo)準(zhǔn)C語(yǔ)言。3.簡(jiǎn)單的小例子下面是一個(gè)簡(jiǎn)單的小例子IMPORTMainAREAInit,CODE,READONLY;ENTRYLDRR0,=0x01d00000LDRR1,=0x245STRR1,[R0];把0x245放到地址0X01D00000BLMain;跳轉(zhuǎn)到Main()函數(shù)處的C/C++程序END;標(biāo)識(shí)匯編程序結(jié)束以上是一個(gè)簡(jiǎn)單的程序,先寄存器初始化,然后跳轉(zhuǎn)到Main()函數(shù)標(biāo)識(shí)的C/C++代碼處,執(zhí)行主要任務(wù),此處的Main是聲明的C語(yǔ)言中的Main()函數(shù)。對(duì)宏的預(yù)定義,在2410addr.h中已定義,如:#definerGPGCON(*(volatileunsigned*)0x56000060)//PortGcontrol#definerGPGDAT(*(volatileunsigned*)0x56000064)//PortGdata#definerGPGUP(*(volatileunsigned*)0x56000068)//Pull-upcontrolG在程序中實(shí)現(xiàn),for(;;){ if(flag==0) { for(i=0;i<100000;i++);//延時(shí) rGPGCON=rGPGCON&0xfff0ffff|0x00050000; rGPGDAT=rGPGDAT&0xeff|0x200; for(i=0;i<100000;i++);//延時(shí) flag=1; }else{ for(i=0;i<100000;i++);//延時(shí) rGPGCON=rGPGCON&0xfff0ffff|0x00050000; rGPGDAT=rGPGDAT&0xdff|0x100; for(i=0;i<100000;i++);//延時(shí) flag=0; }}完成對(duì)GPIO的G口的操作,該程序可以交替點(diǎn)亮CPU板左下角的兩個(gè)LED燈。五、實(shí)驗(yàn)步驟1.本實(shí)驗(yàn)僅使用實(shí)驗(yàn)教學(xué)系統(tǒng)的CPU板,串口。在進(jìn)行本實(shí)驗(yàn)時(shí),LCD電源開(kāi)關(guān)、音頻的左右聲道開(kāi)關(guān)、AD通道選擇開(kāi)關(guān)、觸摸屏中斷選擇開(kāi)關(guān)等均應(yīng)處在關(guān)閉狀態(tài)。2.在PC機(jī)并口和實(shí)驗(yàn)箱的CPU板上的JTAG接口之間,連接仿真調(diào)試電纜,以及串口間連接公/母接頭串口線(xiàn)。3.檢查連接是否可靠,可靠后,接入電源線(xiàn),系統(tǒng)上電。4.打開(kāi)ADS1.2開(kāi)發(fā)環(huán)境,從里面打開(kāi)\實(shí)驗(yàn)程序\HARDWARE\ADS\實(shí)驗(yàn)三\C.mcp項(xiàng)目文件,進(jìn)行編譯。5.編譯通過(guò)后,進(jìn)入ADS1.2調(diào)試界面,加載\實(shí)驗(yàn)程序\HARDWARE\ADS\實(shí)驗(yàn)三\C_Data\Debug中的映象文件程序映像C.axf。6.打開(kāi)/實(shí)驗(yàn)軟件/tools/目錄下的串口調(diào)試助手工具,配置為波特率為115200,校驗(yàn)位無(wú),數(shù)據(jù)位為8,停止位為1。不要選十六進(jìn)制顯示。之后,在ADS調(diào)試環(huán)境下全速運(yùn)行映象文件,應(yīng)出現(xiàn)圖2-3-1界面。本程序連續(xù)發(fā)送55。圖2-3-1下邊分析一下主程序的源碼。在C程序前的部分為系統(tǒng)的初始化,這在后邊BOOTLOADER的章節(jié)里,要詳細(xì)介紹。#include"..\inc\config.h"http://嵌入包括硬件的頭文件unsignedchardata;//定義全局變量voidMain(void){ Target_Init();//目標(biāo)板初始化,定義串口的硬件初始化在//target.c中定義Delay(10);//延時(shí)data=0x55;//給全局變量賦值while(1){Uart_Printf("%x",data);//串口0輸出Delay(10);} }把data=0x55;語(yǔ)句中的0x55,換成其他8位數(shù),重新編譯,下載,看看串口工具上輸出是什么內(nèi)容。實(shí)驗(yàn)四基于ARM的硬件BOOT程序的基本設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?.掌握ARM啟動(dòng)的基本知識(shí)和流程二、實(shí)驗(yàn)內(nèi)容1.認(rèn)真學(xué)習(xí)ARM啟動(dòng)的流程,單步執(zhí)行程序,查看各寄存器的變化。三、實(shí)驗(yàn)設(shè)備EL-ARM-830教學(xué)實(shí)驗(yàn)箱,PentiumII以上的PC機(jī)。PC操作系統(tǒng)WIN98或WIN2000或WINXP,ADS1.2集成開(kāi)發(fā)環(huán)境。四、實(shí)驗(yàn)步驟本實(shí)驗(yàn)僅使用實(shí)驗(yàn)教學(xué)系統(tǒng)的CPU板。在進(jìn)行本實(shí)驗(yàn)時(shí),LCD電源開(kāi)關(guān)、音頻的左右聲道開(kāi)關(guān)、AD通道選擇開(kāi)關(guān)、觸摸屏中斷選擇開(kāi)關(guān)等均應(yīng)處在關(guān)閉狀態(tài)。ARM的啟動(dòng)。該實(shí)驗(yàn)不是演示實(shí)驗(yàn),是學(xué)習(xí)啟動(dòng)流程的實(shí)驗(yàn)基于ARM芯片的應(yīng)用系統(tǒng),多數(shù)為復(fù)雜的片上系統(tǒng),該復(fù)雜系統(tǒng)里,多數(shù)硬件模塊都是可配置的,需要由軟件來(lái)預(yù)先設(shè)置其需要的工作狀態(tài),因此在用戶(hù)的應(yīng)用程序之前,需要由專(zhuān)門(mén)的一段代碼來(lái)完成對(duì)系統(tǒng)基本的初始化工作。由于此類(lèi)代碼直接面對(duì)處理器內(nèi)核和硬件控制器進(jìn)行編程,故一般均用匯編語(yǔ)言實(shí)現(xiàn)。系統(tǒng)的基本初始化內(nèi)容一般包括:1.分配中斷向量表2.初始化存儲(chǔ)器系統(tǒng)3.初始化各工作模式的堆棧4.初始化有特殊要求的硬件模塊5.初始化用戶(hù)程序的執(zhí)行環(huán)境6.切換處理器的工作模式7.呼叫主應(yīng)用程序ARM要求中斷向量表必須放置在從0x00000000地址開(kāi)始,連續(xù)32個(gè)字節(jié)的空間內(nèi)。每當(dāng)一個(gè)中斷發(fā)生后,ARM處理器便強(qiáng)制把PC指針指向?qū)?yīng)中斷類(lèi)型的向量表中的地址。因?yàn)槊總€(gè)中斷只占據(jù)向量表中4個(gè)字節(jié)的存儲(chǔ)空間,只能放置一條ARM指令,所以,通常放一條跳轉(zhuǎn)指令讓程序跳轉(zhuǎn)到存儲(chǔ)器的其他地方,再執(zhí)行中斷處理。1.分配中斷向量表中斷向量表的程序通常如下表示:AREAInit,CODE,READONLYENTRYBResetHandlerBUndefHandlerBSWIHandlerBPreAbortHandlerBDataAbortHandlerB.BIRQHandlerBFIQHandler其中關(guān)鍵字ENTRY是指定編譯器保留這段代碼,鏈接的時(shí)候要確保這段代碼被鏈接在整個(gè)程序的入口地址,該地址也就是RO的連接地址。當(dāng)ARM啟動(dòng)時(shí),PC指針會(huì)自動(dòng)尋找該關(guān)鍵字從該關(guān)鍵字處執(zhí)行,該關(guān)鍵字的地址應(yīng)滿(mǎn)足4字節(jié)對(duì)齊的地址。當(dāng)中斷控制器使能外設(shè)模塊為向量中斷時(shí),如定時(shí)器向量中斷,ADC向量中斷,外部中斷向量中斷等等,外設(shè)中斷向量表同理需要相應(yīng)的跳轉(zhuǎn)指令,以發(fā)生相應(yīng)中斷時(shí)從對(duì)應(yīng)的中斷向量表跳到存儲(chǔ)器的某個(gè)地方,一般可選擇讓其跳到SDRAM的高端地址,然后,再跳入中斷服務(wù)程序的地址,往下執(zhí)行。2.初始化存儲(chǔ)器系統(tǒng)存儲(chǔ)器類(lèi)型,存儲(chǔ)的容量以及時(shí)序配置、總線(xiàn)寬度等等。通常Flash和SRAM同屬于靜態(tài)存儲(chǔ)器類(lèi)型,可以合用同一個(gè)存儲(chǔ)器端口;而DRAM因?yàn)橛袆?dòng)態(tài)刷新和地址線(xiàn)復(fù)用等特性,通常配有專(zhuān)用的存儲(chǔ)器端口。除存儲(chǔ)器外,網(wǎng)絡(luò)芯片的存儲(chǔ)器相關(guān)配置,外接大容量的存儲(chǔ)卡的配置均在此處實(shí)現(xiàn)。存儲(chǔ)器端口的接口時(shí)序優(yōu)化是非常重要的,這會(huì)影響到整個(gè)系統(tǒng)的性能。因?yàn)橐话阆到y(tǒng)運(yùn)行的速度瓶頸都存在于存儲(chǔ)器訪問(wèn),所以存儲(chǔ)器訪問(wèn)時(shí)序應(yīng)盡可能的快;而同時(shí)又要考慮到由此帶來(lái)的穩(wěn)定性問(wèn)題。3.初始化堆棧因?yàn)锳RM有7種執(zhí)行狀態(tài),每一種狀態(tài)的堆棧指針寄存器(SP)都是獨(dú)立的。所以,對(duì)程序中需要用到的每一種模式都要給SP定義一個(gè)堆棧地址。方法是改變狀態(tài)寄存器內(nèi)的狀態(tài)位,使處理器切換到不同的狀態(tài),然后給SP賦值。注意:不要切換到User模式進(jìn)行User模式的堆棧設(shè)置,因?yàn)檫M(jìn)入U(xiǎn)ser模式后就不能再操作CPSR回到別的模式了,可能會(huì)對(duì)接下去的程序執(zhí)行造成影響。這是一段堆棧初始化的代碼示例:;//預(yù)定義處理器模式常量USERMODEEQU 0x10FIQMODE EQU 0x11IRQMODE EQU 0x12SVCMODE EQU 0x13ABORTMODEEQU 0x17UNDEFMODEEQU 0x1bSYSMODEEQU 0x1fNOINT EQU 0xc0//屏蔽中斷位InitStacks mrs

溫馨提示

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