嵌入式復(fù)習(xí)知識(shí)點(diǎn)_第1頁(yè)
嵌入式復(fù)習(xí)知識(shí)點(diǎn)_第2頁(yè)
嵌入式復(fù)習(xí)知識(shí)點(diǎn)_第3頁(yè)
嵌入式復(fù)習(xí)知識(shí)點(diǎn)_第4頁(yè)
嵌入式復(fù)習(xí)知識(shí)點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

J、基本概念1、 嵌入式系統(tǒng)是以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。2、 嵌入式處理器可以分為以下幾大類:嵌入式微處理器;嵌入式微控制器;嵌入式DSP處理器;嵌入式片上系統(tǒng)(SOC)。3、 對(duì)基于芯片的開(kāi)發(fā)來(lái)說(shuō),應(yīng)用程序一般是一個(gè)無(wú)限的循環(huán),可稱為前后臺(tái)系統(tǒng)或超循環(huán)系統(tǒng)。循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成后臺(tái)行為,后臺(tái)也可以叫做任務(wù)級(jí)。中斷服務(wù)程序處理異步事件,這部分可以看成前臺(tái)行為,前臺(tái)也叫中斷級(jí)。4、 實(shí)時(shí)操作系統(tǒng)是一段在嵌入式系統(tǒng)啟動(dòng)后首先執(zhí)行的背景程序,用戶的應(yīng)用程序是運(yùn)行于RTOS之上的各個(gè)任務(wù),RTOS根據(jù)各個(gè)任務(wù)的要求,進(jìn)行資源(包括存儲(chǔ)器、外設(shè)等)管理、消息管理、任務(wù)調(diào)度、異常處理等工作。5、 常見(jiàn)的嵌入式操作系統(tǒng)有:嵌入式Linux;WindowsCE;VxWorks;OSE;Nucleus;eCos;mC/OS-II;uITRON。6、 可以把嵌入式系統(tǒng)的開(kāi)發(fā)看作對(duì)一個(gè)項(xiàng)目的實(shí)施。項(xiàng)目的生命周期一般分為識(shí)別需求、提出解決方案、執(zhí)行項(xiàng)目和結(jié)束項(xiàng)目4個(gè)階段。7、 ARM7TDMI處理器使用流水線來(lái)增加處理器指令流的速度。這樣可使幾個(gè)操作同時(shí)進(jìn)行,并使處理和存儲(chǔ)器系統(tǒng)連續(xù)操作,ARM7TDMI的流水線分3級(jí),分別為:取指;譯碼;執(zhí)行。8、 ARM7TDMI處理器內(nèi)核使用V4T版本的ARM結(jié)構(gòu),該結(jié)構(gòu)包含32位ARM指令集和16位Thumb指令集。9、 ARM體系結(jié)構(gòu)支持7種處理器模式,分別為:用戶模式、快中斷模式、中斷模式、管理模式、中止模式、未定義模式和系統(tǒng)模式。10、 在ARM7TDMI處理器內(nèi)部有37個(gè)用戶可見(jiàn)的寄存器。在不同的工作模式和處理器狀態(tài)下,程序員可以訪問(wèn)的寄存器也不盡相同。11、 寄存器CPSR為程序狀態(tài)寄存器,在異常模式中,另外一個(gè)寄存器“程序狀態(tài)保存寄存器(SPSR)”可以被訪問(wèn)。每種異常都有自己的SPSR,在進(jìn)入異常時(shí)它保存CPSR的當(dāng)前值,異常退出時(shí)可通過(guò)它恢復(fù)CPSR。12、在異常發(fā)生后,ARM7TDMI內(nèi)核會(huì)作以下工作:①在適當(dāng)?shù)腖R中保存下一條指令的地址;②將CPSR復(fù)制到適當(dāng)?shù)腟PSR中;③將CPSR模式位強(qiáng)制設(shè)置為與異常類型相對(duì)應(yīng)的值;④強(qiáng)制PC從相關(guān)的異常向量處取指。12、13、 當(dāng)異常結(jié)束時(shí),異常處理程序必須:①將LR中的值減去偏移量后存入PC,偏移量根據(jù)異常的類型而有所不同;②將SPSR的值復(fù)制回CPSR;③清零在入口置位的中斷禁止標(biāo)志;④恢復(fù)CPSR的動(dòng)作會(huì)將T、F和I位自動(dòng)恢復(fù)為異常發(fā)生前的值。14、 當(dāng)nRESET信號(hào)被拉低時(shí),ARM7TDMI處理器復(fù)位;當(dāng)nRESET信號(hào)再次變?yōu)楦唠娖綍r(shí),ARM處理器執(zhí)行下列操作:①?gòu)?qiáng)制M[4:0]變?yōu)閎10011(管理模式);②置位CPSR中的I和F位;③清零CPSR中的T位;④強(qiáng)制PC從地址0x00開(kāi)始對(duì)下一條指令進(jìn)行取指;⑤返回到ARM狀態(tài)并恢復(fù)執(zhí)行。15、 基于ARM內(nèi)核的芯片具有許多的外設(shè),這些外設(shè)訪問(wèn)的標(biāo)準(zhǔn)方法是使用存儲(chǔ)器映射的I/O,為外設(shè)的每個(gè)寄存器都分配一個(gè)地址。通常,從這些地址裝載數(shù)據(jù)用于讀入,向這些地址保存數(shù)據(jù)用于輸出。16、 ARM7TDMI(-S)具有32位ARM指令集和16位Thumb指令集,ARM指令集效率高,但是代碼密度低;而Thumb指令集具有較高的代碼密度,卻仍然保持ARM的大多數(shù)性能上的優(yōu)勢(shì),它是ARM指令集的子集。17、 ARM處理器具有9種基本尋址方式。寄存器尋址;立即尋址;寄存器移位尋址;寄存器間接尋址;基址尋址;多寄存器尋址;堆棧尋址;塊拷貝尋址;相對(duì)尋址。18、 LPC2000系列微控制器包含四大部分:ARM7TDMI-SCPU;ARM7局部總線及相關(guān)部件;AHB高性能總線及相關(guān)部件;VLSI外設(shè)總線及相關(guān)部件19、 LPC2000系列微控制器將ARM7TDMI-S配置為小端模式(Little-endian)。20、 AHB外設(shè)分配了2M字節(jié)的地址范圍,它位于4G字節(jié)ARM尋址空間的最頂端。每個(gè)AHB外設(shè)都分配了16KB的地址空間。21、 LPC2000系列微控制器的外設(shè)功能(除中斷控制器)都連接到VPB總線。AHB到VPB的橋?qū)PB總線與AHB總線相連。VPB外設(shè)也分配了2M字節(jié)的地址范圍,從3.5GB地址點(diǎn)開(kāi)始。每個(gè)VPB外設(shè)都分配了16KB的地址空間。22、 LPC2000系列微控制器的向量中斷控制器(VIC)可以減少中斷的響應(yīng)時(shí)間,最多可以管理32各中斷請(qǐng)求;外部存儲(chǔ)器控制器(EMC)支持4個(gè)BANK的外部SRAM或Flash,每個(gè)BANK最多16MB;23、 LPC2000系列微控制器片內(nèi)Flash編程方法:通過(guò)內(nèi)置JTAG接口;使用UART0通信,通過(guò)在系統(tǒng)編程(ISP);通過(guò)在應(yīng)用編程(IAP);24、 對(duì)于Philips的LPC系列ARM微控制器,存儲(chǔ)器重新映射區(qū)域一共為64字節(jié),分別為異常向量區(qū)(32字節(jié))和緊隨其后的32字節(jié)。存儲(chǔ)器重新映射的方法允許在不同模式下處理中斷,重新映射 的存儲(chǔ)器區(qū)域在地址0x00000000?0X0000003F處。25、 CPU正常工作需要有合適的時(shí)鐘信號(hào),包括ARM7內(nèi)核使用的CCLK時(shí)鐘,和芯片外設(shè)使用的PCLK時(shí)鐘。26、 芯片上電后,品體振蕩器開(kāi)始振蕩。因?yàn)檎袷帍拈_(kāi)始到穩(wěn)定需要一過(guò)程,所以外部復(fù)位信號(hào)至少要保持10ms;在晶體振蕩器保持穩(wěn)定振蕩,或者使用有源鐘振時(shí),外部復(fù)位信號(hào)可以縮短到不小于300ns;27、 EMC模塊支持4個(gè)獨(dú)立配置的存儲(chǔ)器組,每個(gè)存儲(chǔ)器組的總線寬度可設(shè)置為8、16或者32位,但是同一個(gè)存儲(chǔ)器組的器件必須寬度相同。每個(gè)存儲(chǔ)器組最大支持16MB尋址空間。28、 LPC2000系列作為“微控制器”,其GPIO特性就顯得很重要。它具有如下的特性:可以獨(dú)立控制每個(gè)GPIO口的方向(輸入/輸出模式);可以獨(dú)立設(shè)置每個(gè)GPIO的輸出狀態(tài)(高/低電平);所有GPIO口在復(fù)位后默認(rèn)為輸入狀態(tài)。29、 SPI(SerialPeripheralInterface 串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,一般使用4條線:串行時(shí)鐘線SCK、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線SSEL。30、 FLASH存儲(chǔ)器主要分為兩種,一種為NOR型FLASH,另一種為NAND型FLASH;NOR主要應(yīng)用在代碼存儲(chǔ)介質(zhì)中,NAND適合于數(shù)據(jù)存儲(chǔ),31、 pC/OS-II是一個(gè)完整的、可移植、可固化、可剪裁的占先式實(shí)時(shí)多任務(wù)內(nèi)核。32、 pC/OS-II可以管理64個(gè)任務(wù),然而,pC/OS-II的作者建議用戶保留8個(gè)給pC/OS-II。這樣,留給用戶的應(yīng)用程序最多可有56個(gè)任務(wù)。

33、 根據(jù)pC/OS-II的要求,移植pC/OS-II到一個(gè)新的體系結(jié)構(gòu)上需要提供2個(gè)或3個(gè)文件:它們是:OS_CPU.H(C語(yǔ)言頭文件);OS_CPU_C.C(C程序源文件);OS_CPU_A.ASM(匯編程序源文件)二、硬件設(shè)計(jì)1、請(qǐng)用結(jié)構(gòu)框圖的形式描述出LPC2000系列ARM微處理器內(nèi)部的各組成部分及它們之間的相互關(guān)系。2、用圖描述出LPC2000系列微處理器存器存儲(chǔ)器地址空間分布圖。4G 3.5G4G 3.5G2G ?1G 0xFFFFFFFF0xF00000000xE00000000x800000000x400000000x000200000x000000003、圖為L(zhǎng)PC2000系列處理器鎖相環(huán)的內(nèi)部結(jié)構(gòu),若系統(tǒng)要求:FOSC=10MHz、CCLK=60MHz;FCCO范圍:156MHz?320MHz,請(qǐng)確定回路鎖定后,PLL配置寄存器(PLLCFG)的MSEL位和PSEL位。答:回路鎖定后,由反饋控制理論知識(shí)可推導(dǎo)出:FOSC=FCCO/(2PXM)FCLK=FOSCXM計(jì)算M值:M=CCLK/FOSC=6;設(shè)置MSEL位:寫入值為(M—1)=5;設(shè)置PSEL位:P=FCCO/(CCLKX2)=(156?320)/120=1.3?2.67所以P取整數(shù)2,PSEL寫入值為2。4、嵌入式最小系統(tǒng)由哪幾部分構(gòu)成?請(qǐng)畫出最小系統(tǒng)結(jié)構(gòu)框圖。5、LPC2000系列處理器的外部存儲(chǔ)器控制器包含4個(gè)寄存器BCFG0、BCFG1、BCFG2和BCFG3,它們分別對(duì)應(yīng)一個(gè)存儲(chǔ)器組,請(qǐng)寫出每個(gè)寄存器組的地址范圍。Bank地址范圍配置寄存器00x80000000?0x80FFFFFFBCFG010x81000000?0x81FFFFFFBCFG120x82000000?0x82FFFFFFBCFG230x83000000?0x83FFFFFFBCFG3

三、軟件設(shè)計(jì)1、在ARM模式下,請(qǐng)編寫一個(gè)完整的匯編語(yǔ)言程序,要求:實(shí)現(xiàn)地址0x40003100中的內(nèi)容從0開(kāi)始,進(jìn)行遞增加1操作,當(dāng)其內(nèi)容大于100時(shí),又重新為0,開(kāi)始下一次循環(huán)。COUNTEQU0x40003100;定義一個(gè)變量,地址為0x40003100AREAExample,CODE,READONLY;聲明代碼段ExampleENTRY;標(biāo)識(shí)程序入口CODE32;聲明32位ARM指令STARTLDRR1,=COUNT;R1<=COUNTMOVR0,#0 ;R0<=0STRR0,[R1] ;[R1]<=R0,即設(shè)置COUNT為0LOOP LDRR1,=COUNTLDRR0,[R1];R0<=[R1]ADDR0,R0,#1;R0<=R0+1CMPR0,#100;R0與10比較,影響條件碼標(biāo)志MOVHSR0,#0;若R0大于等于10,則此指令執(zhí)行,R0<=0STRR0,[R1];[R1]<=R0,即保存COUNTBLOOPEND2、X和n均為無(wú)符號(hào)整數(shù),計(jì)算X的n次方的值,要求采用ARM匯編語(yǔ)言和子函數(shù)調(diào)用的模塊化結(jié)構(gòu)形式編寫一個(gè)完整的匯編程序。功能:計(jì)算X的n次方的值說(shuō)明:X和n均為無(wú)符號(hào)整數(shù)

XEQU9;定義X的值為9nEQU8;定義n的值為8AREAExample4,CODE,READONLY;聲明代碼段Example4ENTRY;標(biāo)識(shí)程序入口CODE32;聲明32位ARM指令STARTLDRSP,=0x40003F00 ;設(shè)置堆棧(滿遞減堆棧,使用STMFD/LMDFD指令)LDRLDRBLHALT BR0,=XR1,=nPOWHALT;調(diào)用子程序POW,返回值為R0;名稱:POW;功能:整數(shù)乘方運(yùn)算。;入口參數(shù):R0 底數(shù); R1 指數(shù);出口參數(shù):R0 運(yùn)算結(jié)果;說(shuō)明:本子程序不考慮溢出問(wèn)題POWSTMFDSP!,{R1-R12,LR};寄存器入棧保護(hù)MOVSR2,R1 ;將指數(shù)值復(fù)制到R2,并影響條件碼標(biāo)志MOVEQR0,#1;若指數(shù)為0,則設(shè)置R0=1BEQPOW_END;若指數(shù)為0,則返回CMPBEQR2,#1POW_END;若指數(shù)為1,則返回。(此時(shí)R0沒(méi)有被更改)MOVR1,R0;設(shè)置DO_MUL子程序的入口參數(shù)R0和R1SUBR2,R2,#1;計(jì)數(shù)器R2=指數(shù)值減1POW_L1BLDO_MUL;調(diào)用DO_MUL子程序,R0=R1*R0SUBSR2,R2,#1;每循環(huán)一次,計(jì)數(shù)器R2減1BNEPOW_L1;若計(jì)數(shù)器R2不為0,跳轉(zhuǎn)到POW_L1POW_ENDLDMFDSP!,{R1-R12,PC} ;寄存器出棧,返回;名稱:DO_MUL;功能:32位乘法運(yùn)算。;入口參數(shù):R0 乘數(shù); R1被乘數(shù);出口參數(shù):R0 計(jì)算結(jié)果;說(shuō)明:本子程序不會(huì)破壞R1DO_MULMULR0,R1,R0 ;R0=R1*R0MOVPC,LR ;返回END3、采用如圖所示的硬件電路對(duì)蜂鳴器B進(jìn)行控制,采用軟件延時(shí)方法,控制蜂鳴器發(fā)出周期性的蜂鳴聲。MJD3.3

#includeconfig.h#defineBEEPCON0x00000080voidDelayNS(uint32dly)(uint32i;for(;dly>0;dly--)(for(i=0;i<5000;i++);}}intmain(void)(PINSEL0=0x00000000;IO0DIR=BEEPCON;while(1)(IO0SET=BEEPCON;DelayNS(10);IO0CLR=BEEPCON;DelayNS(10);}//P0.7引腳控制B1,//P0.7引腳控制B1,低電平蜂鳴//設(shè)置管腳連接GPIO//設(shè)置I/O為輸出//BEEPCON=1//BEEPCON=04、電路如下圖所示,用處理器的GPIO直接驅(qū)動(dòng)LED;當(dāng)IO口輸出高電平時(shí)LED熄滅,輸出低電平時(shí)LED點(diǎn)亮。請(qǐng)編寫相應(yīng)的程序,控制4個(gè)LED產(chǎn)生流水燈效果,即LED1,LED2,LED3,LED4依次點(diǎn)亮。P0.。P0.1#includeconfig.h#defineLEDCON0x0000000fconstuint32DISP_TAB[8]=(0xfffffff1,0xfffffff2,0xfffffff4,0xfffffff8);voidDelayNS(uint32dly)(uint32i;for(;dly>0;dly--)(for(i=0;i<5000;i++);intmain(void)(uint8i;PINSEL0&=0xffffff00;//配置P0.0,P0.1,P0.2,P0.3為GPIOIO0DIR|=LEDCON;//配置LED控制I/O方向while(1)(i=0;for(i=0;i<4;i++)(IO0CLR=DISP_TAB[i];//輸出LED顯示數(shù)據(jù)DelayNS(10); //延時(shí)IO0SET=0xffffffff;}}return(0);}5、某系統(tǒng)的鍵盤硬件電路如圖所示,采用的處理器為L(zhǎng)PC2000系列處理器,請(qǐng)編寫該系統(tǒng)的鍵盤服務(wù)程序。KEY3R1P0.19/KEY3KEY4C O OKEY?<' KEY3R1P0.19/KEY3KEY4C O OKEY?<' O OKEY6220RR2220RR3P0.20/KEY4P0.21/KEY5220RR4<■ O。 1=220RP0.22/KEY6V>GNDvoidKeylnit(void){PINSEL1&=~(0xff<<6); //設(shè)置P0.19,P0.20,P0.21,P0.22為GPIO模式FIO0DIR&=~(0x0f<<19); //設(shè)置P0.19,P0.20,P0.21,P0.22為GPIO輸入模式PINMODE1&=~(0xff<<6); //設(shè)置P0.19,P0.20,P0.21,P0.22為片內(nèi)上拉電阻}uint32ReadKeyValue(void){return(~(FIO0PIN>>19)&0x0000000f);}voidCsyKeyServer(uint32KeyValue) //按鍵處理程序?qū)嶓w代碼{uint32InputKey

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論