嵌入式系統(tǒng)的復(fù)習(xí)_第1頁
嵌入式系統(tǒng)的復(fù)習(xí)_第2頁
嵌入式系統(tǒng)的復(fù)習(xí)_第3頁
嵌入式系統(tǒng)的復(fù)習(xí)_第4頁
嵌入式系統(tǒng)的復(fù)習(xí)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、嵌入式系統(tǒng)的概述 1定義“以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),軟件、硬件可裁減,功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機(jī)系統(tǒng)。 嵌入式系統(tǒng)采用“量體裁衣”的方式把所需的功能嵌入到各種應(yīng)用系統(tǒng)中。2.應(yīng)用領(lǐng)域(1)工業(yè)控制 【 工控設(shè)備,智能儀表,汽車電子 】(2)軍事國防 【 軍事電子 】(3)消費(fèi)電子 【 信息家電 智能玩具 通信設(shè)備 移動存貯 】(4)網(wǎng)絡(luò) 【網(wǎng)絡(luò)設(shè)備 電子商務(wù) 】3組成嵌入式系統(tǒng)的基本組成軟件結(jié)構(gòu) 【應(yīng)用程序 操作系統(tǒng)】 注:MiniGUI不是操作系統(tǒng)硬件結(jié)構(gòu) 【存儲器 處理器】【 硬件系統(tǒng)】 嵌入式系統(tǒng)的硬件是以嵌入式處理器為核心,配置必要的外圍接口部件。在嵌入

2、式系統(tǒng)設(shè)計中,應(yīng)以最少的外圍部件構(gòu)成一個應(yīng)用系統(tǒng),滿足嵌入式系統(tǒng)的特殊要求。 一般包括有 :嵌入式處理器; 存儲器; I/O系統(tǒng)和外設(shè)?!拒浖到y(tǒng)】 嵌入式系統(tǒng)的軟件包括 : 操作系統(tǒng)、應(yīng)用軟件、驅(qū)動層軟件。 (1)操作系統(tǒng)功能簡介 操作系統(tǒng)層包含嵌入式內(nèi)核、嵌入式TCP/IP網(wǎng)絡(luò)系統(tǒng)、嵌入式文件系統(tǒng)、嵌入式GUI系統(tǒng)和電源管理等部分。其中嵌入式內(nèi)核是基礎(chǔ)和必備的部分,其他部分要根據(jù)嵌入式系統(tǒng)的需要來確定。4.嵌入式系統(tǒng)的特點(diǎn)!性能方面:采用32位RISC結(jié)構(gòu)微處理器,主頻從30MHz到1200MHz以上,接近PC機(jī)的水平,但體積更小,能夠真正地“嵌入”到設(shè)備中。 !實(shí)時性方面:嵌入式控制器內(nèi)

3、嵌實(shí)時操作系統(tǒng),能夠完全保證控制系統(tǒng)的實(shí)時性。!人機(jī)交互方面:嵌入式控制器可支持大屏幕的液晶顯示器,提供功能強(qiáng)大的圖形用戶界面,這些方面的性能也接近于PC,優(yōu)于單片機(jī)。!系統(tǒng)升級方面:嵌入式控制器可為控制系統(tǒng)專門設(shè)計,其功能專一,成本較低,而且開放的用戶程序接口(API)保證了系統(tǒng)能夠快速升級和更新。嵌入式系統(tǒng)與單片機(jī)的區(qū)別 嵌入式系統(tǒng) ¹ 單片機(jī)系統(tǒng) 目前嵌入式系統(tǒng)的主流是以32位嵌入式微處理器為核心的硬件設(shè)計和基于實(shí)時操作系統(tǒng)的軟件設(shè)計。由于有了OS可以執(zhí)行多任務(wù)調(diào)度,支持網(wǎng)絡(luò)協(xié)議TCP/IP,所以嵌入式系統(tǒng)可以比普通單片機(jī)系統(tǒng)更適合完成復(fù)雜的任務(wù)。 嵌入式系統(tǒng)與PC之間的區(qū)別l

4、 嵌入式系統(tǒng)一般是專用系統(tǒng),而PC是通用計算平臺;l 嵌入式系統(tǒng)的資源比PC少得多;軟件故障帶來的后果比PC機(jī)大得多;l 嵌入式系統(tǒng)一般采用實(shí)時操作系統(tǒng);有成本、功耗的要求;得到多種微處理體系的支持并需要專用的開發(fā)工具。嵌入式系統(tǒng)的開發(fā)模式 【交叉開發(fā)重點(diǎn)掌握,結(jié)合書本】 交叉開發(fā)定義:嵌入式系統(tǒng)開發(fā)的代碼生成是在PC機(jī)上完成,但由于嵌入式目標(biāo)平臺的不同,就要求在開發(fā)機(jī)上的編譯器能支持交叉編譯(ARM-LINUX-GCC) 、鏈接,然后將程序的代碼下載到目標(biāo)機(jī)上指定位置,然后還要交叉調(diào)試。主要流程為:編寫-交叉編譯、鏈接-定位和下載-調(diào)試。嵌入式系統(tǒng)開發(fā)的流程嵌入式軟件的開發(fā)流程與通用軟件的開

5、發(fā)流程大同小異,但開發(fā)所使用的設(shè)計方法具有嵌入式開發(fā)的特點(diǎn)。整個開發(fā)流程可分為:§ 需求分析階段§ 設(shè)計階段§ 生成代碼階段§ 固化階段需求分析階段 嵌入式系統(tǒng)應(yīng)用需求中最為突出的是注重應(yīng)用的時效性,需求分析階段的主要任務(wù)是: (1)對問題的識別和分析 (2)制訂規(guī)格說明文檔 (3)需求評審設(shè)計階段 系統(tǒng)的設(shè)計階段包括系統(tǒng)設(shè)計、任務(wù)設(shè)計和任務(wù)的詳細(xì)設(shè)計。 (1)數(shù)據(jù)流分析 (2)劃分任務(wù) (3)定義任務(wù)間的接口 生成代碼階段 生成代碼階段需要完成的工作包括代碼編程、交叉編譯和鏈接、交叉調(diào)試和測試等。 代碼編程 在嵌入式系統(tǒng)的開發(fā)過程中,一般采用的方法是先

6、在通用PC上編程,然后通過交叉編譯鏈接,將程序做成目標(biāo)平臺上可以運(yùn)行的二進(jìn)制代碼格式。最后將程序下載到目標(biāo)平臺上的特定位置,在目標(biāo)板上啟動運(yùn)行這段二進(jìn)制代碼。 交叉編譯和鏈接 嵌入式軟件開發(fā)編碼完成后,要進(jìn)行編譯和鏈接以生成可執(zhí)行代碼。 嵌入式集成開發(fā)環(huán)境都支持交叉編譯、鏈接,如WindRiver公司的Tornado以及GNU套件等。交叉編譯鏈接生成兩種類型的可執(zhí)行文件:調(diào)試用的可執(zhí)行文件和固化的可執(zhí)行文件。 固化階段 嵌入式系統(tǒng)的應(yīng)用軟件是針對特定的實(shí)際專業(yè)領(lǐng)域的,基于相應(yīng)的嵌入式硬件平臺,并能完成用戶預(yù)期任務(wù)的計算機(jī)軟件。 (1)軟件要求固態(tài)化存儲。(2)軟件代碼要求高質(zhì)量、高可靠性。(3

7、)系統(tǒng)軟件的高實(shí)時性是基本要求。4)多任務(wù)實(shí)時操作系統(tǒng)成為嵌入式應(yīng)用軟件的必需。 嵌入式系統(tǒng)的調(diào)試§ 嵌入式系統(tǒng)的調(diào)試方法:1源程序模擬器方式2監(jiān)控器方式3仿真器方式RAM的定義 ARM即Advanced RISC Machines的縮寫。ARM公司1990年成立,是設(shè)計公司。ARM是知識產(chǎn)權(quán)(IP)供應(yīng)商,本身不生產(chǎn)芯片,靠轉(zhuǎn)讓設(shè)計許可,由合作伙伴公司來生產(chǎn)各具特色的芯片。 ARM處理器的3大特點(diǎn)是:§ 耗電少、成本低、功能強(qiáng);§ 16位/32位雙指令集;§ 全球眾多合作伙伴保證供應(yīng)。 寄存器ARM內(nèi)含37個寄存器,其中:§ 31個通用32位

8、寄存器§ 6個狀態(tài)寄存器 指令執(zhí)行階段計算機(jī)中的1條指令的執(zhí)行可以分若干個階段: 取指,從存儲器中取出指令(fetch); 譯碼,指令譯碼(dec): 取操作數(shù),假定操作數(shù)從寄存器組中取(reg); 執(zhí)行運(yùn)算(ALU); 存儲器訪問,操作數(shù)與存儲器有關(guān)(mem); 結(jié)果寫回寄存器(res)。 ARM7體系結(jié)構(gòu)采用了3級流水線,分為取指,譯碼和執(zhí)行。下圖是單周期3級流水線的操作示意圖。 ARM9 5級流水線分為:取指、指令譯碼、執(zhí)行、數(shù)據(jù)緩存和寫回。 TDMIT 16位壓縮指令集Thumb;D 在片調(diào)試(Debug)支持,允許處理器響應(yīng)調(diào) 試請求暫停;M 增強(qiáng)型乘法器,與以前處理器 相

9、比性能更高,產(chǎn)生全64位結(jié)果;I 嵌入式ICE硬件提供片上斷點(diǎn)和調(diào)試點(diǎn)支持。數(shù)據(jù)類型 ARM處理器支持下列數(shù)據(jù)類型:ü Byte 字節(jié), 8位;ü Halfword 半字, 16位(半字必須與2字節(jié)邊界對準(zhǔn));ü Word 字,32 位(字必須與4字節(jié)邊界對準(zhǔn))。ARM體系結(jié)構(gòu)支持7種處理器模式處理器模 式說 明用戶usr正常程序執(zhí)行模式FIQfiq支持高速數(shù)據(jù)傳送或通道處理IRQirq用于通用中斷處理管理svc操作系統(tǒng)保護(hù)模式中止abt實(shí)現(xiàn)虛擬存儲器和/或存儲器保護(hù)未定義und支持硬件協(xié)處理器的軟件仿真系統(tǒng)sys運(yùn)行特權(quán)操作系統(tǒng)任務(wù)處理器的工作狀態(tài) ARM處理器

10、有兩種工作狀態(tài):§ ARM: 32位,這種狀態(tài)下執(zhí)行字對準(zhǔn)的ARM指令;§ Thumb:16位,這種狀態(tài)下執(zhí)行半字對準(zhǔn)的Thumb指令。ARM處理器在兩種工作狀態(tài)之間可以切換。ARM和Thumb之間狀態(tài)的切換不影響處理器的模式或寄存器的內(nèi)容。(1)進(jìn)入Thumb狀態(tài)。當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時,執(zhí)行BX指令進(jìn)入Thumb狀態(tài)。(2)進(jìn)入ARM狀態(tài)。當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為0時,執(zhí)行BX指令進(jìn)入ARM狀態(tài)。 寄存器R13通常用作堆棧指針,稱作SP。 寄存器R14用作子程序鏈接寄存器,也稱為鏈接寄存器LR。 § 程序計數(shù)器R15:異常定義 :異常由內(nèi)

11、部或外部源產(chǎn)生并引起處理器處理一個事件異常類型模 式正常地址高向量地址復(fù)位管理0x000000000xFFFF0000未定義指令 未定義0x000000040xFFFF0004軟件中斷(SWI)管理0x000000080xFFFF0008預(yù)取中止(取指令存儲器中止)中止0x0000000C0xFFFF000C數(shù)據(jù)中止(數(shù)據(jù)訪問存儲器中止)中止0x000000100xFFFF0010IRQ(中斷)IRQ0x000000180xFFFF0018FIQ(快速中斷)FIQ0x0000001C0xFFFF001C§ 當(dāng)異常出現(xiàn)時,異常模式分組的R14和SPSR用于保存狀態(tài)。§ 當(dāng)處理

12、異常返回時,把SPSR傳送到CPSR,R14傳送到PC。這可用兩種方法自動完成,即ü 使用帶“S”的數(shù)據(jù)處理指令,將PC作為目的寄存器;ü 使用帶恢復(fù)CPSR的多加載指令。優(yōu)先級復(fù)位(最高)-數(shù)據(jù)中止-FIQ-IRQ 預(yù)取中止 未定義指令·SWI基本尋址方式看書v ARM存儲器訪問指令 【看例題】轉(zhuǎn)移指令(1)B和BL§ B(Branch)指令引起處理器轉(zhuǎn)移到label。 句法: B cond label § BL(Branch and Link)指令將下一條指令的地址拷貝到R14(LR,鏈接寄存器),并引起轉(zhuǎn)移到label。 句法: BL c

13、ond label (2)BX :引起處理器轉(zhuǎn)移到Rm中的地址。若Rm的位0為1,則指令集變換到Thumb。 句法: BX cond Rm (3)BLX:帶鏈接轉(zhuǎn)移并可選地交換指令集。 句法: BLX cond Rm BLX label雜項ARM指令(1)SWI,引起軟件中斷。這意味著處理器模式變換為管理模式,CPSR保存到管理模式的SPSR中,執(zhí)行轉(zhuǎn)移到SWI向量。句法: SWI cond immed_24其中:immed_24為表達(dá)式,其值為0224-1范圍內(nèi)的整數(shù)。(2)MRS,將CPSR或SPSR的內(nèi)容傳送到通用寄存器。句法: MRS cond Rd,psr其中:Rd 目標(biāo)寄存器。Rd

14、不允許為R15。 psr CPSR或SPSR。(3)MSR,用立即數(shù)或通用寄存器的內(nèi)容加載CPSR或SPSR的指定區(qū)域。句法: MSR cond <psr>_<fields>,#immed_8r MSR cond <psr>_<fields>,Rm其中:<psr> CPSR或SPSR。 <fields> 指定傳送的區(qū)域。 immed_8r 值為數(shù)字常量的表達(dá)式。常量必須對應(yīng)于8位位圖在32位字中循環(huán)移位偶數(shù)位后的值。 Rm 源寄存器。Thumb 指令集Thumb在32位體系結(jié)構(gòu)上實(shí)現(xiàn)了16位指令集,以提供:§ 比

15、16位體系結(jié)構(gòu)更高的性能;§ 比32位體系結(jié)構(gòu)更高的代碼密度。Thumb 與ARM的區(qū)別§ 轉(zhuǎn)移指令;§ 數(shù)據(jù)傳送指令;§ 單寄存器加載和存儲指令;§ 多寄存器加載和存儲指令。 ARM匯編器支持的偽指令包括:符號定義偽指令、數(shù)據(jù)定義偽指令、匯編控制偽指令、宏指令以及其他偽指令。 ARM匯編器支持的偽指令分類指令舉例符號定義偽指令GBLA/GBLL/GBLS/LCLA/LCLL/LCLS/SETA/SETL/SETS/RLISTGBLA Test1;定義一個名為Test1的全局?jǐn)?shù)值字變量數(shù)據(jù)定義偽指令DCB/DCW/DCD/ DCFD/DCFS/

16、DCQ/ SPACE/MAP/ FIELDstr DCB “This is a test”;分配起始地址為str的一段連續(xù)字節(jié)存儲單元存放字符串匯編控制偽指令I(lǐng)F/ELSE/ENDIF/ WHILE/WEND/IF TestTRUE ;如果條件成立 指令序列1 ;執(zhí)行指令序列1ELSE ;否則執(zhí)行指令序列2 指令序列2ENDIF宏指令MACRO/MEND/ MEXITMACRO Seg指令序列MEND;定義一個名為Seg的宏指令其他偽指令A(yù)REA/ALIGN/CODE16/CODE32/ENTRY/END/EQU/EXPORT/GLOBAL/IMPORT/EXTERN/GET/INCLUDE/

17、INCBINAREA Init,CODE,READONLY,ALIGN=3;定義了一個代碼段,段名為Init,屬性為只讀,并指定其后的指令為8(23)字節(jié)對齊。例子AREA Init,CODE,READONLYENTRYLDR R0, =0x3FF5000LDR R1, 0x0fSTR R1, R0LDR R0, =0x3F50008LDR R1, 0x1STR R1, R0BL PROC ;子程序調(diào)用PROC ;子程序開始MOV PC,LR ;從子程序返回END例:編寫一具有完整匯編格式的程序,實(shí)現(xiàn)冒泡法排序功能。設(shè)無符號字?jǐn)?shù)據(jù)存放在從0x400004開始的區(qū)域,字?jǐn)?shù)據(jù)的數(shù)目字存放在0x400000中。AREA SORT,CODE,READONLYENTRYSTARTMOV R1,#0x400000LPSUBS R1,R1,#1BEQ EXITMOV R7,R1LDR R0,=0x400004LP1LDR R2,R0,#4LDR R3,R0CMP R2,R3STRLO R3,R0, # -4STRLO R2,R0SUBS R7,R7,#1BNE LP1B LPEXITEND舉例:一個向串口不斷發(fā)送0x55的例子IMPORT MainAREA Init ,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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論