嵌入式復習知識點_第1頁
嵌入式復習知識點_第2頁
嵌入式復習知識點_第3頁
嵌入式復習知識點_第4頁
嵌入式復習知識點_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

XEQU9;定義X的值為9nEQU8;定義n的值為8AREAExample4,CODE,READONLY;聲明代碼段Example4ENTRY;標識程序入口CODE32;聲明32位ARM指令STARTLDRSP,=0x40003F00 ;設置堆棧(滿遞減堆棧,使用STMFD/LMDFD指令)LDRLDRBLHALT BR0,=XR1,=nPOWHALT;調用子程序POW,返回值為R0;名稱:POW;功能:整數乘方運算。;入口參數:R0 底數; R1 指數;出口參數:R0 運算結果;說明:本子程序不考慮溢出問題POWSTMFDSP!,{R1-R12,LR};寄存器入棧保護MOVSR2,R1 ;將指數值復制到R2,并影響條件碼標志MOVEQR0,#1;若指數為0,則設置R0=1BEQPOW_END;若指數為0,則返回CMPBEQR2,#1POW_END;若指數為1,則返回。(此時R0沒有被更改)MOVR1,R0;設置DO_MUL子程序的入口參數R0和R1SUBR2,R2,#1;計數器R2=指數值減1POW_L1BLDO_MUL;調用DO_MUL子程序,R0=R1*R0SUBSR2,R2,#1;每循環一次,計數器R2減1BNEPOW_L1;若計數器R2不為0,跳轉到POW_L1POW_ENDLDMFDSP!,{R1-R12,PC} ;寄存器出棧,返回;名稱:DO_MUL;功能:32位乘法運算。;入口參數:R0 乘數; R1被乘數;出口參數:R0 計算結果;說明:本子程序不會破壞R1DO_MULMULR0,R1,R0 ;R0=R1*R0MOVPC,LR ;返回END3、采用如圖所示的硬件電路對蜂鳴器B進行控制,采用軟件延時方法,控制蜂鳴器發出周期性的蜂鳴聲。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,低電平蜂鳴//設置管腳連接GPIO//設置I/O為輸出//BEEPCON=1//BEEPCON=04、電路如下圖所示,用處理器的GPIO直接驅動LED;當IO口輸出高電平時LED熄滅,輸出低電平時LED點亮。請編寫相應的程序,控制4個LED產生流水燈效果,即LED1,LED2,LED3,LED4依次點亮。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顯示數據DelayNS(10); //延時IO0SET=0xffffffff;}}return(0);}5、某系統的鍵盤硬件電路如圖所示,采用的處理器為LPC2000系列處理器,請編寫該系統的鍵盤服務程序。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); //設置P0.19,P0.20,P0.21,P0.22為GPIO模式FIO0DIR&=~(0x0f<<19); //設置P0.19,P0.20,P0.21,P0.22為GPIO輸入模式PINMODE1&=~(0xff<<6); //設置P0.19,P0.20,P0.21,P0.22為片內上拉電阻}uint32ReadKeyValue(void){return(~(FIO0PIN>>19)&0x0000000f);}voidCsyKeyServer(uint32KeyValue) //按鍵處理程序實體代碼{uint32InputKey

溫馨提示

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

評論

0/150

提交評論