




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1嵌入式系統(tǒng)原理及應用嵌入式系統(tǒng)原理及應用第二講第二講 嵌入式系統(tǒng)的基礎(chǔ)知識嵌入式系統(tǒng)的基礎(chǔ)知識2本章提要本章提要嵌入式系統(tǒng)總體結(jié)構(gòu)嵌入式系統(tǒng)總體結(jié)構(gòu)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)中斷管理與系統(tǒng)啟動嵌入式系統(tǒng)中斷管理與系統(tǒng)啟動嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)軟件基礎(chǔ)3嵌入式系統(tǒng)組成嵌入式系統(tǒng)組成機械裝置機械裝置嵌入式嵌入式微處理微處理器器SDRAMROMI/OA/DD/A人機交互接口人機交互接口通用接口通用接口實時操作系統(tǒng)實時操作系統(tǒng)( ( RTOSRTOS ) )圖形用戶圖形用戶接口接口BSPBSP / / HAL HAL (板極支持包板極支持包/ /硬件抽象層硬件抽象層)任務管
2、理任務管理文件系統(tǒng)文件系統(tǒng)應用程序應用程序嵌入式計算機系統(tǒng)嵌入式計算機系統(tǒng)傳感器傳感器 1傳感器傳感器 2傳感器傳感器 N.驅(qū)動器驅(qū)動器 1驅(qū)動器驅(qū)動器 2驅(qū)動器驅(qū)動器 N.硬件層硬件層軟件層軟件層中間層中間層功能層功能層被控對象被控對象42.1 嵌入式系統(tǒng)的總體結(jié)構(gòu)嵌入式系統(tǒng)的總體結(jié)構(gòu)l目前所提及的嵌入式系統(tǒng)一般指嵌入式計算機系統(tǒng),目前所提及的嵌入式系統(tǒng)一般指嵌入式計算機系統(tǒng),主要包括:硬件層、中間層、系統(tǒng)軟件層和應用層主要包括:硬件層、中間層、系統(tǒng)軟件層和應用層4個部分。個部分。l嵌入式硬件主要包括提供嵌入式計算機正常運行的最嵌入式硬件主要包括提供嵌入式計算機正常運行的最小系統(tǒng)(如電源、系
3、統(tǒng)時鐘、復位電路、存儲器等)小系統(tǒng)(如電源、系統(tǒng)時鐘、復位電路、存儲器等)、通用、通用I/O口和一些外設(shè)及其它設(shè)備。嵌入式系統(tǒng)中口和一些外設(shè)及其它設(shè)備。嵌入式系統(tǒng)中間層又稱嵌入式硬件抽象層,如硬件驅(qū)動程序、系統(tǒng)間層又稱嵌入式硬件抽象層,如硬件驅(qū)動程序、系統(tǒng)啟動軟件等;嵌入式系統(tǒng)軟件層為應用層提供系統(tǒng)服啟動軟件等;嵌入式系統(tǒng)軟件層為應用層提供系統(tǒng)服務,如操作系統(tǒng)、文件系統(tǒng)、圖形用戶接口等;而應務,如操作系統(tǒng)、文件系統(tǒng)、圖形用戶接口等;而應用層主要是用戶應用程序。用層主要是用戶應用程序。 52.1.1 硬件層硬件層 嵌入式系統(tǒng)硬件通常指除被控對象之外的嵌入式嵌入式系統(tǒng)硬件通常指除被控對象之外的嵌入
4、式系統(tǒng)要完成其功能所具備的各種設(shè)備,由嵌入式處理系統(tǒng)要完成其功能所具備的各種設(shè)備,由嵌入式處理器、存儲器系統(tǒng)、通用設(shè)備接口(器、存儲器系統(tǒng)、通用設(shè)備接口(A/D、D/A、I/O等等)和一些擴展外設(shè)組成。)和一些擴展外設(shè)組成。l 嵌入式系統(tǒng)的硬件層是以嵌入式處理器為核心的嵌入式系統(tǒng)的硬件層是以嵌入式處理器為核心的l嵌入式系統(tǒng)外設(shè)是指為了實現(xiàn)系統(tǒng)功能而設(shè)計或提供的嵌入式系統(tǒng)外設(shè)是指為了實現(xiàn)系統(tǒng)功能而設(shè)計或提供的接口或設(shè)備接口或設(shè)備 62.1 嵌入式系統(tǒng)的總體結(jié)構(gòu)嵌入式系統(tǒng)的總體結(jié)構(gòu)2.1.2 中間層中間層 介于硬件層與系統(tǒng)軟件層之間,將硬件的細節(jié)進行屏蔽,介于硬件層與系統(tǒng)軟件層之間,將硬件的細節(jié)進
5、行屏蔽,便于操作系統(tǒng)調(diào)用,因此稱為為中間層,也稱硬件抽象層(便于操作系統(tǒng)調(diào)用,因此稱為為中間層,也稱硬件抽象層(Hardware Abstract Layer,HAL)或板級支持包()或板級支持包(Board Support Package)。具有硬件相關(guān)性和操作系統(tǒng)相關(guān)性特)。具有硬件相關(guān)性和操作系統(tǒng)相關(guān)性特點。點。7主要包括系統(tǒng)初始化和設(shè)備驅(qū)動程序主要包括系統(tǒng)初始化和設(shè)備驅(qū)動程序l系統(tǒng)初始化系統(tǒng)初始化(1)片級初始化:主要完成)片級初始化:主要完成CPU的初始化,包括設(shè)置的初始化,包括設(shè)置CPU的核的核心寄存器和控制寄存器,心寄存器和控制寄存器,CPU核心工作模式以及核心工作模式以及CPU
6、的局部總的局部總線模式等。線模式等。(2)板級初始化:完成)板級初始化:完成CPU以外的其它硬件設(shè)備的初始化。除以外的其它硬件設(shè)備的初始化。除此之外,還要設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù),為隨后的系統(tǒng)此之外,還要設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù),為隨后的系統(tǒng)級初始化和應用程序的運行建立硬件和軟件環(huán)境。級初始化和應用程序的運行建立硬件和軟件環(huán)境。(3)系統(tǒng)級初始化:這是一個以軟件初始化為主的過程,主要)系統(tǒng)級初始化:這是一個以軟件初始化為主的過程,主要是進行操作系統(tǒng)初始化。是進行操作系統(tǒng)初始化。8l硬件相關(guān)的設(shè)備驅(qū)動程序硬件相關(guān)的設(shè)備驅(qū)動程序 與初始化過程相反,硬件相關(guān)的設(shè)備驅(qū)動程序的初始與初始化過程相
7、反,硬件相關(guān)的設(shè)備驅(qū)動程序的初始化和使用通常是一個從高層到底層的過程?;褪褂猛ǔJ且粋€從高層到底層的過程。 BSP不直接使用設(shè)備驅(qū)動程序通常不直接使用設(shè)備驅(qū)動程序通常 與操作系統(tǒng)中通用的設(shè)備驅(qū)動程序關(guān)聯(lián)起來,在應用與操作系統(tǒng)中通用的設(shè)備驅(qū)動程序關(guān)聯(lián)起來,在應用中由通用的設(shè)備驅(qū)動程序調(diào)用,實現(xiàn)對硬件設(shè)備的操作中由通用的設(shè)備驅(qū)動程序調(diào)用,實現(xiàn)對硬件設(shè)備的操作92.1.3 系統(tǒng)軟件層系統(tǒng)軟件層 系統(tǒng)軟件由操作系統(tǒng)(系統(tǒng)軟件由操作系統(tǒng)(OS)、文件系統(tǒng)()、文件系統(tǒng)(FS)、圖)、圖形用戶接口(形用戶接口(GUI)、網(wǎng)絡(luò)系統(tǒng)()、網(wǎng)絡(luò)系統(tǒng)(NM)及通用組件)及通用組件模塊(如模塊(如TCP/IP協(xié)議
8、包)等組成。協(xié)議包)等組成。1RTOS是嵌入式應用軟件的基礎(chǔ)和開發(fā)平臺是嵌入式應用軟件的基礎(chǔ)和開發(fā)平臺2FS是操作系統(tǒng)用于明確磁盤或分區(qū)上的文件的方法是操作系統(tǒng)用于明確磁盤或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu);即在磁盤上組織文件的方法。和數(shù)據(jù)結(jié)構(gòu);即在磁盤上組織文件的方法。3GUI 是是 Graphical User Interface 的簡稱,即圖形的簡稱,即圖形用戶接口,準確來說用戶接口,準確來說 GUI 就是屏幕產(chǎn)品的視覺體驗和就是屏幕產(chǎn)品的視覺體驗和互動操作部分?;硬僮鞑糠?。4TCP/IP協(xié)議包簡稱協(xié)議包簡稱Ip Pack,IP Pack是是TCP/IP網(wǎng)絡(luò)網(wǎng)絡(luò)協(xié)議軟件,通常作為操作系統(tǒng)的
9、一個重要組成部分。協(xié)議軟件,通常作為操作系統(tǒng)的一個重要組成部分。102.1.4 功能層功能層 功能層又基于系統(tǒng)軟件開發(fā)的應用軟件程序組成,功能層又基于系統(tǒng)軟件開發(fā)的應用軟件程序組成,用來完成對被控對象的控制功能。直接與最終用戶交用來完成對被控對象的控制功能。直接與最終用戶交互,決定整個產(chǎn)品的成敗,是嵌入式軟件的核心部分互,決定整個產(chǎn)品的成敗,是嵌入式軟件的核心部分,根據(jù)用戶需求定做的。,根據(jù)用戶需求定做的。11本章提要本章提要嵌入式系統(tǒng)總體結(jié)構(gòu)嵌入式系統(tǒng)總體結(jié)構(gòu)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)中斷管理與系統(tǒng)啟動嵌入式系統(tǒng)中斷管理與系統(tǒng)啟動12主
10、要從處理器和存儲器進行介紹主要從處理器和存儲器進行介紹l馮馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)lCISCCISC與與RISCRISCl影響影響CPUCPU性能的因素性能的因素l存儲器系統(tǒng)存儲器系統(tǒng)2.2 嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)硬件基礎(chǔ)13典型嵌入式系統(tǒng)基本組成硬件典型嵌入式系統(tǒng)基本組成硬件MPUMPU微處理器微處理器電源電源模塊模塊時鐘時鐘復位復位FlashFlashRAMRAMROMROMUSBUSBLCDLCDKeyboardKeyboard外圍電路外圍電路OtherOther外設(shè)外設(shè)141. 微處理器結(jié)構(gòu)微處理器結(jié)構(gòu) 處理器處理器控制單元控制單元指令寄存器指令
11、寄存器IR程序計數(shù)器程序計數(shù)器PC控制器控制器 存儲器存儲器I/O控制控制/狀態(tài)狀態(tài)程序存儲器程序存儲器數(shù)據(jù)存儲器數(shù)據(jù)存儲器數(shù)據(jù)通道數(shù)據(jù)通道數(shù)字邏輯單元數(shù)字邏輯單元寄存器寄存器R0R1數(shù)據(jù)通道數(shù)據(jù)通道數(shù)字邏輯單元數(shù)字邏輯單元寄存器寄存器R0Rn。典型的微處理器由控制單元、程序計數(shù)器(典型的微處理器由控制單元、程序計數(shù)器(PC)、)、指令寄存器(指令寄存器(IR)、數(shù)據(jù)通道、存儲器等組成)、數(shù)據(jù)通道、存儲器等組成 15指令執(zhí)行過程一般分為:指令執(zhí)行過程一般分為:l取指取指從存儲器中獲得下一條執(zhí)行的指令讀入指令寄存器從存儲器中獲得下一條執(zhí)行的指令讀入指令寄存器PC: 程序計數(shù)器程序計數(shù)器, 總是指
12、向下一條將要執(zhí)行的指令總是指向下一條將要執(zhí)行的指令I(lǐng)R: 指令寄存器,用于保持已取得指令指令寄存器,用于保持已取得指令l譯碼譯碼 解釋指令,決定指令的執(zhí)行意義解釋指令,決定指令的執(zhí)行意義l執(zhí)行執(zhí)行從存儲器向數(shù)據(jù)通道寄存器移動數(shù)據(jù)從存儲器向數(shù)據(jù)通道寄存器移動數(shù)據(jù)通過算術(shù)邏輯單元通過算術(shù)邏輯單元ALU進行數(shù)據(jù)操作進行數(shù)據(jù)操作l存儲存儲 從寄存器向存儲器寫數(shù)據(jù)從寄存器向存儲器寫數(shù)據(jù)2. 處理器指令執(zhí)行過程處理器指令執(zhí)行過程16(1)取指)取指l處理器從程序存儲器中取出指令處理器從程序存儲器中取出指令 處理器處理器控制單元控制單元IRload R0, M500 PC100控制器控制器 存儲器存儲器I/
13、O控制控制/狀態(tài)狀態(tài)load R0, M500100inc R1, R0101store M501, R110210.500501數(shù)據(jù)通道數(shù)據(jù)通道數(shù)字邏輯單元數(shù)字邏輯單元寄存器寄存器R0R117(2)譯碼)譯碼l解釋指令,決定指令的執(zhí)行意義解釋指令,決定指令的執(zhí)行意義 存儲器存儲器 處理器處理器控制單元控制單元IRload R0, M500 PC100控制器控制器I/O控制控制/狀態(tài)狀態(tài)load R0, M500100inc R1, R0101store M501, R110210.500501數(shù)據(jù)通道數(shù)據(jù)通道數(shù)字邏輯單元數(shù)字邏輯單元寄存器寄存器R0R118執(zhí)行執(zhí)行l(wèi)從存儲器向數(shù)據(jù)通道寄存器移
14、動數(shù)據(jù)從存儲器向數(shù)據(jù)通道寄存器移動數(shù)據(jù) 處理器處理器控制單元控制單元IRload R0, M500 PC100控制器控制器 存儲器存儲器I/O控制控制/狀態(tài)狀態(tài)load R0, M500100inc R1, R0101store M501, R110210.500501數(shù)據(jù)通道數(shù)據(jù)通道數(shù)字邏輯單元數(shù)字邏輯單元寄存器寄存器R0R119存儲存儲l將指令執(zhí)行結(jié)構(gòu)保存到存儲器中將指令執(zhí)行結(jié)構(gòu)保存到存儲器中 處理器處理器控制單元控制單元IRload R0, M500 PC100控制器控制器 存儲器存儲器I/O控制控制/狀態(tài)狀態(tài)load R0, M500100inc R1, R0101store M501
15、, R110210.500501數(shù)據(jù)通道數(shù)據(jù)通道數(shù)字邏輯單元數(shù)字邏輯單元寄存器寄存器R0R120l在一些微處理器上,如在一些微處理器上,如ARM系列處理器、系列處理器、DSP等,等,指令實現(xiàn)流水線作業(yè),指令過程按流水線的數(shù)目來指令實現(xiàn)流水線作業(yè),指令過程按流水線的數(shù)目來進行劃分。如進行劃分。如5級流水線的處理器將指令分級流水線的處理器將指令分5個階段個階段執(zhí)行。執(zhí)行。 213.3.微處理器的結(jié)構(gòu)體系微處理器的結(jié)構(gòu)體系 指令寄存器指令寄存器控制器控制器數(shù)據(jù)通道數(shù)據(jù)通道輸輸入入輸輸出出中央處理器中央處理器存儲器存儲器程序程序指令指令0 0指令指令1 1指令指令2 2指令指令3 3指令指令4 4數(shù)據(jù)
16、數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)0 0數(shù)據(jù)數(shù)據(jù)1 1數(shù)據(jù)數(shù)據(jù)2 2地址地址/數(shù)據(jù)數(shù)據(jù)馮馮諾依曼體系結(jié)構(gòu)模型諾依曼體系結(jié)構(gòu)模型(1)按存儲結(jié)構(gòu)分:馮)按存儲結(jié)構(gòu)分:馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu) 馮馮諾伊曼結(jié)構(gòu)也稱普諾伊曼結(jié)構(gòu)也稱普林斯頓結(jié)構(gòu),是一種將程林斯頓結(jié)構(gòu),是一種將程序指令存儲器和數(shù)據(jù)存儲序指令存儲器和數(shù)據(jù)存儲器合并在一起的存儲器結(jié)器合并在一起的存儲器結(jié)構(gòu)。處理器,經(jīng)由同一個構(gòu)。處理器,經(jīng)由同一個總線傳輸來訪問程序和數(shù)總線傳輸來訪問程序和數(shù)據(jù)存儲器,程序指令和數(shù)據(jù)存儲器,程序指令和數(shù)據(jù)的寬度相同。據(jù)的寬度相同。 如如X86X86系列、系列、ARM7ARM7等等 223.3.微處理
17、器的結(jié)構(gòu)體系微處理器的結(jié)構(gòu)體系指令寄存指令寄存器器控制器控制器數(shù)據(jù)數(shù)據(jù)通道通道輸輸入入輸輸出出中央處中央處理器理器程序存程序存儲器儲器指令指令0指令指令1指令指令2數(shù)據(jù)存儲數(shù)據(jù)存儲器器數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)數(shù)據(jù)1數(shù)據(jù)數(shù)據(jù)2地地址址指指令令地地址址數(shù)數(shù)據(jù)據(jù)哈佛體系結(jié)構(gòu)哈佛體系結(jié)構(gòu) 哈佛結(jié)構(gòu)是一種將程哈佛結(jié)構(gòu)是一種將程序指令存儲和數(shù)據(jù)存儲分序指令存儲和數(shù)據(jù)存儲分開的存儲器結(jié)構(gòu),目的是開的存儲器結(jié)構(gòu),目的是為了減輕程序運行時的訪為了減輕程序運行時的訪存瓶頸。哈佛結(jié)構(gòu)的微處存瓶頸。哈佛結(jié)構(gòu)的微處理器通常具有較高的執(zhí)行理器通常具有較高的執(zhí)行效率。效率。 如如ARM9ARM9、TITI的的DSPDSP等等 233
18、.3.微處理器的結(jié)構(gòu)體系微處理器的結(jié)構(gòu)體系按指令類型可分為:復雜指令集(按指令類型可分為:復雜指令集(CISC)處理器和精簡)處理器和精簡指令集(指令集(RISC)處理器)處理器 CISCCISC:復雜指令集(:復雜指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)l具有大量的指令和尋址方式,那么就需要更多的解釋器。具有大量的指令和尋址方式,那么就需要更多的解釋器。l8/28/2原則:原則:80%80%的程序只使用的程序只使用20%20%的指令的指令l大多數(shù)程序只使用少量的指令就能夠運行。大多數(shù)程序只使用少
19、量的指令就能夠運行。CISCCISC具有如下顯著特點:具有如下顯著特點:(1)(1) 指令格式不固定,指令長度不一致,操作數(shù)可多可少;指令格式不固定,指令長度不一致,操作數(shù)可多可少;(2)(2) 尋址方式復雜多樣,以利于程序的編寫;尋址方式復雜多樣,以利于程序的編寫;(3)(3) 采用微程序結(jié)構(gòu),執(zhí)行每條指令均需完成一個微指令序列;采用微程序結(jié)構(gòu),執(zhí)行每條指令均需完成一個微指令序列;(4)(4) 每條指令需要若干個機器周期才能完成,指令越復雜,花費每條指令需要若干個機器周期才能完成,指令越復雜,花費的機器周期越多的機器周期越多。24lRISC:精簡指令集(:精簡指令集(Reduced Inst
20、ruction Set Computer)l指令數(shù)目少,在通道中只包含最有用的指令指令數(shù)目少,在通道中只包含最有用的指令l執(zhí)行時間短,確保數(shù)據(jù)通道快速執(zhí)行每一條指令執(zhí)行時間短,確保數(shù)據(jù)通道快速執(zhí)行每一條指令l使使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單硬件結(jié)構(gòu)設(shè)計變得更為簡單l每條指令都采用標準字長每條指令都采用標準字長25CISC與與RISC的區(qū)別的區(qū)別 l從硬件角度來看從硬件角度來看CISC處理的是不等長指令集,它必處理的是不等長指令集,它必須對不等長指令進行分割,因此在執(zhí)行單一指令的時須對不等長指令進行分割,因此在執(zhí)行單一指令的時候需要進行較多的處理工作。而候需要進行較多的處理工作。而RISC執(zhí)行
21、的是等長執(zhí)行的是等長精簡指令集,精簡指令集,CPU在執(zhí)行指令的時候速度較快且性能在執(zhí)行指令的時候速度較快且性能穩(wěn)定。穩(wěn)定。 l從軟件角度來看,大型操作系統(tǒng)較適合運行在支持從軟件角度來看,大型操作系統(tǒng)較適合運行在支持CISC的處理器上。是我們所熟識的的處理器上。是我們所熟識的DOS、Windows操作系統(tǒng)。而實時操作系統(tǒng)大多運行在支持操作系統(tǒng)。而實時操作系統(tǒng)大多運行在支持RISC的的處理器上。處理器上。 264 提高提高CPU性能的方法性能的方法 影響影響CPU性能的因素:流水線、超標量、緩存和總性能的因素:流水線、超標量、緩存和總線。對于任何處理器來說,要提高其效率,在設(shè)計上線。對于任何處理器
22、來說,要提高其效率,在設(shè)計上都是要減少數(shù)據(jù)的等待時間,并且努力減少處理單元都是要減少數(shù)據(jù)的等待時間,并且努力減少處理單元的空閑時間。的空閑時間。27(1 1)流水線技術(shù))流水線技術(shù)流水線技術(shù):也就是將一個任務分解成為多個連續(xù)的流水線技術(shù):也就是將一個任務分解成為多個連續(xù)的子任務,在處理前一個子任務的同時就開始準備下一子任務,在處理前一個子任務的同時就開始準備下一個子任務的數(shù)據(jù)并進行子處理器單元的初始化。個子任務的數(shù)據(jù)并進行子處理器單元的初始化。譯碼譯碼取指取指執(zhí)行執(zhí)行addadd譯碼譯碼取指取指執(zhí)行執(zhí)行subsub譯碼譯碼取指取指執(zhí)行執(zhí)行cmpcmp時間時間AddAddSubSubCmpCmp
23、28(2) 超標量執(zhí)行超標量執(zhí)行超標量執(zhí)行:超標量執(zhí)行:就是在處理器內(nèi)部設(shè)置多個平行的處理就是在處理器內(nèi)部設(shè)置多個平行的處理單元,將多個相互無關(guān)的任務在這些處理部件中分別單元,將多個相互無關(guān)的任務在這些處理部件中分別進行獨立處理。進行獨立處理。執(zhí)行執(zhí)行1預取預取指令指令CACHE譯碼譯碼2譯碼譯碼1執(zhí)行執(zhí)行2執(zhí)行執(zhí)行1預取預取譯碼譯碼2譯碼譯碼1執(zhí)行執(zhí)行2流水流水線線1流水流水線線2數(shù)據(jù)數(shù)據(jù)29(3) 高速緩存(高速緩存(CACHE)1 1、為什么采用高速緩存、為什么采用高速緩存 微處理器的時鐘頻率比內(nèi)存速度提高快得多,高微處理器的時鐘頻率比內(nèi)存速度提高快得多,高速緩存可以提高內(nèi)存的平均性能。
24、速緩存可以提高內(nèi)存的平均性能。2 2、高速緩存的工作原理、高速緩存的工作原理 高速緩存是一種小型、快速的存儲器,它保存部高速緩存是一種小型、快速的存儲器,它保存部分主存內(nèi)容的拷貝。分主存內(nèi)容的拷貝。 CPU高高速速緩緩存存控控制制器器CACHE主存主存數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)地址地址30l通常用靜態(tài)通常用靜態(tài)RAMRAM來設(shè)計來設(shè)計l因此,速度快但比較貴因此,速度快但比較貴l通常和處理器同在一個芯片上通常和處理器同在一個芯片上l高速緩存的操作方式高速緩存的操作方式: :l要求對主存儲器進行訪問要求對主存儲器進行訪問 ( (讀或?qū)懽x或?qū)? )l首先,檢查高速緩存是否有相應的拷貝首先,檢查高速緩存是否有相
25、應的拷貝l如果有,稱為高速緩存命中如果有,稱為高速緩存命中拷貝在緩存中,可拷貝在緩存中,可以快速訪問以快速訪問l如果沒有,稱為高速緩存失誤如果沒有,稱為高速緩存失誤拷貝沒在緩存中拷貝沒在緩存中,需要將該地址及其相鄰的多個地址的數(shù)據(jù)讀入高,需要將該地址及其相鄰的多個地址的數(shù)據(jù)讀入高速緩存速緩存31(4) 高速總線和總線橋高速總線和總線橋CPU低速設(shè)備低速設(shè)備橋橋數(shù)據(jù)數(shù)據(jù)高速總線高速總線存儲器存儲器高速設(shè)備高速設(shè)備低速設(shè)備低速設(shè)備低速總線低速總線325. 處理器信息存儲的字節(jié)順序處理器信息存儲的字節(jié)順序處理器信息存儲的字節(jié)順序主要分為大端存儲法和處理器信息存儲的字節(jié)順序主要分為大端存儲法和小端存儲
26、法小端存儲法 l大端模式大端模式u字數(shù)據(jù)的高位字節(jié)存儲在低地址中字數(shù)據(jù)的高位字節(jié)存儲在低地址中u字數(shù)據(jù)的低字節(jié)則存放在高地址中字數(shù)據(jù)的低字節(jié)則存放在高地址中u舉例:舉例:雙字節(jié)數(shù)雙字節(jié)數(shù)0 x1234以以big-endian的方式存在起始地址的方式存在起始地址0 x00002000中:中: | data |- address | 0 x12 |- 0 x00002000 | 0 x34 |- 0 x000020013124 2316 158 70 字地址字地址89101184567401230 低地址低地址 高地址高地址33l小端模式小端模式u低地址中存放字數(shù)據(jù)的低字節(jié)低地址中存放字數(shù)據(jù)的低字
27、節(jié)u高地址中存放字數(shù)據(jù)的高字節(jié)高地址中存放字數(shù)據(jù)的高字節(jié)l舉例,雙字節(jié)數(shù)舉例,雙字節(jié)數(shù)0 x12340 x1234以以little-endianlittle-endian的方式存在起始地的方式存在起始地址址0 x000020000 x00002000中:中:| data |- address| data |- address| 0 x34 |- 0 x00002000| 0 x34 |- 0 x00002000| 0 x12 |- 0 x00002001| 0 x12 |- 0 x000020013124 2316 158 70字地址字地址11109887654432100 低地址低地址 高地
28、址高地址342.2.2 存儲器系統(tǒng)存儲器系統(tǒng)1存儲器的分類存儲器的分類l按存儲介質(zhì)分類按存儲介質(zhì)分類半導體存儲器、磁表面存儲器、光表面存儲器半導體存儲器、磁表面存儲器、光表面存儲器l按存儲器的讀寫功能分類按存儲器的讀寫功能分類只讀存儲器(只讀存儲器(ROM)、隨機存儲器)、隨機存儲器(RAM)l按在微機系統(tǒng)中的作用分類按在微機系統(tǒng)中的作用分類主存儲器、輔助存儲器、高速緩沖存儲器主存儲器、輔助存儲器、高速緩沖存儲器35CPU內(nèi)部寄存器內(nèi)部寄存器高速緩存高速緩存片外高速存儲器片外高速存儲器(SRAM、SDRAM、DRAM)主存儲器主存儲器(FLASH、EEPROM、硬磁盤)、硬磁盤)外部存儲器外部
29、存儲器(磁盤、光盤、磁盤、光盤、CF卡、卡、SD卡卡)遠程二級存儲器遠程二級存儲器(分布式文件系統(tǒng)、分布式文件系統(tǒng)、WEB服務器服務器)2. 存儲器系統(tǒng)的層次結(jié)構(gòu)存儲器系統(tǒng)的層次結(jié)構(gòu)36為了解決為了解決CPU與主存儲器速度差所采取的措施有:與主存儲器速度差所采取的措施有:(1)CPU內(nèi)部設(shè)置多個通用寄存器內(nèi)部設(shè)置多個通用寄存器(2)采用多存儲模塊交叉存?。┎捎枚啻鎯δK交叉存?。?)采用高速緩沖存儲器()采用高速緩沖存儲器(Cache)37半導體存儲器半導體存儲器 半導體存儲器主要包括隨機存儲器半導體存儲器主要包括隨機存儲器RAM和只讀存和只讀存儲器兩類儲器兩類ROM38RAMRAM:隨機存取
30、存儲器,:隨機存取存儲器, SRAMSRAM:靜態(tài)隨機存儲器,:靜態(tài)隨機存儲器, DRAMDRAM:動態(tài)隨機存儲器:動態(tài)隨機存儲器 1 1)SRAMSRAM比比DRAMDRAM快快 2 2)SRAMSRAM比比DRAMDRAM耗電多耗電多 3 3)DRAMDRAM存儲密度比存儲密度比SRAMSRAM高得多高得多 4 4)DRAMDRAM需要周期性刷新需要周期性刷新ROMROM:只讀存儲器:只讀存儲器FLASHFLASH:閃存:閃存39(1 1)隨機存儲器)隨機存儲器RAMRAMl靜態(tài)靜態(tài)RAMRAMSRAM: Static RAMSRAM: Static RAMl存儲單元用觸發(fā)器來存儲數(shù)據(jù)位存
31、儲單元用觸發(fā)器來存儲數(shù)據(jù)位l要求要求6 6個晶體管個晶體管l需要電源保持數(shù)據(jù)需要電源保持數(shù)據(jù)l動態(tài)動態(tài)RAMRAMDRAM: Dynamic RAMDRAM: Dynamic RAMl存儲單元用存儲單元用MOSMOS晶體管來存儲數(shù)據(jù)晶體管來存儲數(shù)據(jù)位比位比SRAMSRAM更緊湊更緊湊l由于電容的泄漏,需要更新來保由于電容的泄漏,需要更新來保持數(shù)據(jù)持數(shù)據(jù)l典型的刷新頻率是典型的刷新頻率是15.625 us.15.625 us.l比比SRAMSRAM訪問更慢訪問更慢存儲器內(nèi)部結(jié)構(gòu)存儲器內(nèi)部結(jié)構(gòu)DataWDataSRAM刷刷 新新放放 大大 器器數(shù)數(shù) 據(jù)據(jù) 輸輸 入入 /輸輸 入入 線線C行行 選選
32、 擇擇 信信 號號列列 選選 擇擇 信信 號號T 40(2 2)只讀存儲器)只讀存儲器ROMROMEPROM: EPROM: 可擦除的可編程可擦除的可編程ROMROM 可編程部分是一個可編程部分是一個MOSMOS晶體管晶體管l晶體管有一個絕緣體包圍的晶體管有一個絕緣體包圍的“浮柵浮柵”l(a)(a)負電荷在源極和漏極之間負電荷在源極和漏極之間形成一個隧道形成一個隧道l(b) (b) 較大的正電壓在柵極使負較大的正電壓在柵極使負電荷移出隧道進入柵極形成邏電荷移出隧道進入柵極形成邏輯輯0 0l(c) (c) 擦除擦除紫外線在柵極表紫外線在柵極表面的照射使負電荷從柵極回到面的照射使負電荷從柵極回到隧
33、道保持邏輯隧道保持邏輯1 1l(d) EPROM(d) EPROM有一個有一個紫外線紫外線可以可以通過的石英窗通過的石英窗(d)(a)(b)源極源極漏極漏極+15V 源極源極 漏極漏極0V(c)源極源極漏極漏極浮柵浮柵5-30 min41EEPROM:EEPROM:電擦除的可編程電擦除的可編程ROMROMl電可編程和擦除電可編程和擦除(Programmed and erased (Programmed and erased electronically)electronically)l使用電壓比正常的高使用電壓比正常的高l能單個字進行擦除和編程能單個字進行擦除和編程l較好的寫入能力較好的寫入能
34、力(Better write ability)(Better write ability)l通過內(nèi)部電路提供較高電壓能在系統(tǒng)內(nèi)編程通過內(nèi)部電路提供較高電壓能在系統(tǒng)內(nèi)編程l由于寫入需經(jīng)過擦除和編程兩個步驟,因此寫入較慢由于寫入需經(jīng)過擦除和編程兩個步驟,因此寫入較慢l可重復擦除和編程數(shù)萬次可重復擦除和編程數(shù)萬次l存儲永久性和存儲永久性和EPROMEPROM相近相近( (大約大約1010年年) )l比比EPROMEPROM方便得多,但更貴方便得多,但更貴42快閃存儲器快閃存儲器(Flash Memory)(Flash Memory)lEEPROM的擴展的擴展l同樣利用浮柵原理同樣利用浮柵原理l具有和
35、具有和EEPROM的寫入能力和保存永久性的寫入能力和保存永久性l擦除更快擦除更快l每次可以擦除存儲器一塊區(qū)域,但每次可以擦除存儲器一塊區(qū)域,但EEPROM每次只能擦除每次只能擦除一個字一個字l每個塊通常幾千個字節(jié)每個塊通常幾千個字節(jié)l進行單字寫入時可能更慢進行單字寫入時可能更慢l必須先進行整塊讀取后,對需修改的字修改更新后再整塊必須先進行整塊讀取后,對需修改的字修改更新后再整塊寫入寫入l用在需要大量存儲數(shù)據(jù)在非易失性存儲器的嵌入式系用在需要大量存儲數(shù)據(jù)在非易失性存儲器的嵌入式系統(tǒng)統(tǒng)l如數(shù)碼相機,機頂盒,移動電話等如數(shù)碼相機,機頂盒,移動電話等l兩種主要的兩種主要的Flash Memory技術(shù)是
36、技術(shù)是NOR和和NAND結(jié)構(gòu)結(jié)構(gòu)432.2.3 處理器輸入輸出接口處理器輸入輸出接口 輸入輸出接口又稱輸入輸出接口又稱I/O接口,它是主機與外圍設(shè)接口,它是主機與外圍設(shè)備之間交互信息的連接口,它在主機和外圍設(shè)備備之間交互信息的連接口,它在主機和外圍設(shè)備之間的信息交換中起著橋梁和紐帶作用。之間的信息交換中起著橋梁和紐帶作用。1I/O接口與接口與CPU交換的信息類型交換的信息類型 輸入輸出通道與輸入輸出通道與CPU交換的信息類型有三種:交換的信息類型有三種:(1)數(shù)據(jù)信息:反映生產(chǎn)現(xiàn)場的參數(shù)及狀態(tài)的信息,)數(shù)據(jù)信息:反映生產(chǎn)現(xiàn)場的參數(shù)及狀態(tài)的信息,它包括數(shù)字量、開關(guān)量和模擬量。它包括數(shù)字量、開關(guān)量
37、和模擬量。(2)狀態(tài)信息:又叫做應答信息、握手信息,它反)狀態(tài)信息:又叫做應答信息、握手信息,它反映過程通道的狀態(tài),如準備就緒信號等。映過程通道的狀態(tài),如準備就緒信號等。(3)控制信息:用來控制過程通道的啟動和停止等)控制信息:用來控制過程通道的啟動和停止等信息,如三態(tài)門的打開和關(guān)閉、觸發(fā)器的啟動信息,如三態(tài)門的打開和關(guān)閉、觸發(fā)器的啟動等。等。442I/O的編址方式的編址方式 由于計算機系統(tǒng)一般都有多個過程輸入輸出通道,因此需由于計算機系統(tǒng)一般都有多個過程輸入輸出通道,因此需對每一個輸入輸出通道安排地址。對每一個輸入輸出通道安排地址。I/O口編址方式有兩種:口編址方式有兩種:(1)I/O與存儲
38、器統(tǒng)一編址方式與存儲器統(tǒng)一編址方式 這種編址方式又稱存儲器映像方式,它從存貯器空間劃出這種編址方式又稱存儲器映像方式,它從存貯器空間劃出一部分地址空間給過程通道,把過程通道的端口當作存貯單元一部分地址空間給過程通道,把過程通道的端口當作存貯單元一樣進行訪問,對一樣進行訪問,對I/O端口進行輸入輸出操作跟對存儲單元進端口進行輸入輸出操作跟對存儲單元進行讀寫操作方式相同,只是地址不同。行讀寫操作方式相同,只是地址不同。(2)I/O與存儲器獨立編址方式與存儲器獨立編址方式 這種編址方式將過程通道的端口地址單獨編址,有自己獨這種編址方式將過程通道的端口地址單獨編址,有自己獨立的過程通道地址空間,而不占
39、用存儲器地址空間。立的過程通道地址空間,而不占用存儲器地址空間。45本章提要本章提要嵌入式系統(tǒng)總體結(jié)構(gòu)嵌入式系統(tǒng)總體結(jié)構(gòu)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)設(shè)計方法嵌入式系統(tǒng)設(shè)計方法嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)軟件基礎(chǔ)462.3 嵌入式軟件基礎(chǔ)嵌入式軟件基礎(chǔ) 嵌入式系統(tǒng)軟件根據(jù)嵌入式開發(fā)的模式分為:底層軟件、操嵌入式系統(tǒng)軟件根據(jù)嵌入式開發(fā)的模式分為:底層軟件、操作系統(tǒng)和應用軟件。作系統(tǒng)和應用軟件。1. 底層軟件底層軟件l底層軟件是指直接和硬件打交道的程序,具體地講是對處理器的共有寄底層軟件是指直接和硬件打交道的程序,具體地講是對處理器的共有寄存器和外設(shè)寄存器進行操作的程序,如系統(tǒng)啟動
40、代碼,硬件初始化代碼存器和外設(shè)寄存器進行操作的程序,如系統(tǒng)啟動代碼,硬件初始化代碼,設(shè)備驅(qū)動程序等。,設(shè)備驅(qū)動程序等。2. 嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)l嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)EOS(Embedded Operating System)是一種用途廣)是一種用途廣泛的系統(tǒng)軟件,過去它主要應用于工業(yè)控制和國防系統(tǒng)領(lǐng)域。泛的系統(tǒng)軟件,過去它主要應用于工業(yè)控制和國防系統(tǒng)領(lǐng)域。EOS負責負責嵌入系統(tǒng)的全部軟、硬件資源的分配、調(diào)度工作,控制、協(xié)調(diào)并發(fā)活動嵌入系統(tǒng)的全部軟、硬件資源的分配、調(diào)度工作,控制、協(xié)調(diào)并發(fā)活動3. 嵌入式應用軟件嵌入式應用軟件l嵌入式應用軟件是針對特定應用領(lǐng)域,基于某一固定的硬
41、件平臺,用來嵌入式應用軟件是針對特定應用領(lǐng)域,基于某一固定的硬件平臺,用來達到用戶預期目標的計算機軟件。由于用戶任務可能有時間和精度上的達到用戶預期目標的計算機軟件。由于用戶任務可能有時間和精度上的要求,因此有些嵌入式應用軟件需要特定嵌入式操作系統(tǒng)的支持。要求,因此有些嵌入式應用軟件需要特定嵌入式操作系統(tǒng)的支持。47嵌入式軟件的特點嵌入式軟件的特點1. 嵌入式軟件具有獨特的實用性嵌入式軟件具有獨特的實用性 嵌入式軟件是為嵌入式系統(tǒng)服務的,這就要求它與外部硬嵌入式軟件是為嵌入式系統(tǒng)服務的,這就要求它與外部硬件和設(shè)備聯(lián)系緊密。件和設(shè)備聯(lián)系緊密。 2. 嵌入式軟件應有靈活的適用性嵌入式軟件應有靈活的
42、適用性 嵌入式軟件通??梢哉J為是一種模塊化軟件,它應該能非常嵌入式軟件通??梢哉J為是一種模塊化軟件,它應該能非常方便靈活的運用到各種嵌入式系統(tǒng)中,而不能破壞或更改原有的方便靈活的運用到各種嵌入式系統(tǒng)中,而不能破壞或更改原有的系統(tǒng)特性和功能。系統(tǒng)特性和功能。3. 程序代碼精簡程序代碼精簡 由于嵌入式系統(tǒng)本身的應用特點,具有小體積、存儲空間較由于嵌入式系統(tǒng)本身的應用特點,具有小體積、存儲空間較小、成本、功耗等要求限制,嵌入式軟件和大型機上的軟件相比小、成本、功耗等要求限制,嵌入式軟件和大型機上的軟件相比,具有代碼精簡、代碼量少、執(zhí)行效率高等特點。,具有代碼精簡、代碼量少、執(zhí)行效率高等特點。482.
43、3.2嵌入式軟件體系結(jié)構(gòu)嵌入式軟件體系結(jié)構(gòu) 本節(jié)將討論四種軟件結(jié)構(gòu):輪轉(zhuǎn)結(jié)構(gòu)(本節(jié)將討論四種軟件結(jié)構(gòu):輪轉(zhuǎn)結(jié)構(gòu)(round-robin)、帶中斷的輪轉(zhuǎn)結(jié)構(gòu)、函數(shù)隊列調(diào)度(、帶中斷的輪轉(zhuǎn)結(jié)構(gòu)、函數(shù)隊列調(diào)度(function-queue scheduling)結(jié)構(gòu)和實時操作系統(tǒng)()結(jié)構(gòu)和實時操作系統(tǒng)(real-time operating system)結(jié)構(gòu)。)結(jié)構(gòu)。 491. 輪詢結(jié)構(gòu)輪詢結(jié)構(gòu)l輪詢結(jié)構(gòu)是能想象得到的、最簡單的一種結(jié)構(gòu)。該結(jié)構(gòu)中不存輪詢結(jié)構(gòu)是能想象得到的、最簡單的一種結(jié)構(gòu)。該結(jié)構(gòu)中不存在中斷,主循環(huán)只是簡單地依次執(zhí)行函數(shù)調(diào)用。在中斷,主循環(huán)只是簡單地依次執(zhí)行函數(shù)調(diào)用。void m
44、ain() while(1) function1(); function2(); 優(yōu)點:簡單,它沒有中斷,沒有共享數(shù)據(jù),無須考慮延遲時間優(yōu)點:簡單,它沒有中斷,沒有共享數(shù)據(jù),無須考慮延遲時間 50缺點:缺點:l如果一個設(shè)備需要比微處理器在最壞情況下完成一個循如果一個設(shè)備需要比微處理器在最壞情況下完成一個循環(huán)的時間更短的響應時間,那么這個系統(tǒng)將無法工作。環(huán)的時間更短的響應時間,那么這個系統(tǒng)將無法工作。l即使所要求的響應時間不是絕對的截止時間,當有冗長即使所要求的響應時間不是絕對的截止時間,當有冗長的處理時系統(tǒng)也會工作得不好。的處理時系統(tǒng)也會工作得不好。l這種結(jié)構(gòu)很脆弱。即使能夠設(shè)法提高系統(tǒng)的性能
45、,從而這種結(jié)構(gòu)很脆弱。即使能夠設(shè)法提高系統(tǒng)的性能,從而因為處理循環(huán)的速度足夠快而是微處理器滿足了所有的因為處理循環(huán)的速度足夠快而是微處理器滿足了所有的需要,但是一旦增加一個額外的設(shè)備或者提出一個新的需要,但是一旦增加一個額外的設(shè)備或者提出一個新的中斷請求,就可能讓一切都崩潰。中斷請求,就可能讓一切都崩潰。主要應用場合:主要應用場合:l基于上述缺點,輪轉(zhuǎn)結(jié)構(gòu)可能僅僅適用于非常簡單的裝基于上述缺點,輪轉(zhuǎn)結(jié)構(gòu)可能僅僅適用于非常簡單的裝置,如數(shù)字手表和微波爐等。置,如數(shù)字手表和微波爐等。 512帶中斷的輪轉(zhuǎn)結(jié)構(gòu)帶中斷的輪轉(zhuǎn)結(jié)構(gòu) l在這種結(jié)構(gòu)中,中斷程序處理硬件特別緊急的需求,然后設(shè)置在這種結(jié)構(gòu)中,中斷
46、程序處理硬件特別緊急的需求,然后設(shè)置標志,主循環(huán)輪詢這些標志,然后根據(jù)這些需求進行后續(xù)的處標志,主循環(huán)輪詢這些標志,然后根據(jù)這些需求進行后續(xù)的處理。理。 BOOL fDeviceA=FALSE;BOOL fDeviceB=FALSE;BOOL fDeviceZ=FALSE;void interrupt vHandleDeviceA(void) fDeviceA=TRUE;void interrupt vHandleDeviceB(void) fDeviceB=TRUE;void interrupt vHandleDeviceB(void) fDeviceZ=TRUE;void main() w
47、hile (TRUE)if (fDeviceA) fDeviceA=FALSE;if (fDeviceB) fDeviceB=FALSE;if (fDeviceZ) fDeviceZ=FALSE; 52l與輪詢結(jié)構(gòu)相比這種結(jié)構(gòu)可對優(yōu)先級進行更多的控制與輪詢結(jié)構(gòu)相比這種結(jié)構(gòu)可對優(yōu)先級進行更多的控制。中斷程序可以獲得很快的響應,因為硬件的中斷信。中斷程序可以獲得很快的響應,因為硬件的中斷信號會使微處理器停止正在號會使微處理器停止正在main函數(shù)中執(zhí)行的任何操函數(shù)中執(zhí)行的任何操作,而轉(zhuǎn)去執(zhí)行中斷程序。作,而轉(zhuǎn)去執(zhí)行中斷程序。 輪詢結(jié)構(gòu)中的中斷優(yōu)先級別輪詢結(jié)構(gòu)中的中斷優(yōu)先級別 53l缺點:缺點: 中斷
48、程序與主程序中的數(shù)據(jù)共享問題,當正在執(zhí)行中斷程序與主程序中的數(shù)據(jù)共享問題,當正在執(zhí)行的主程序正在處理共享數(shù)據(jù)時,被中斷程序中斷,進而的主程序正在處理共享數(shù)據(jù)時,被中斷程序中斷,進而處理中斷程序,在中斷程序中有可能又對共享數(shù)據(jù)進行處理中斷程序,在中斷程序中有可能又對共享數(shù)據(jù)進行了相應的操作,從而導致回到主程序時,共享數(shù)據(jù)的值了相應的操作,從而導致回到主程序時,共享數(shù)據(jù)的值已經(jīng)發(fā)生了改變,導致意想不到的結(jié)果。已經(jīng)發(fā)生了改變,導致意想不到的結(jié)果。 543函數(shù)隊列調(diào)度函數(shù)隊列調(diào)度 l在這種結(jié)構(gòu)中,中斷程序在一個函數(shù)指針中添加一個函數(shù)指針在這種結(jié)構(gòu)中,中斷程序在一個函數(shù)指針中添加一個函數(shù)指針,以供,以供
49、main函數(shù)調(diào)用。主程序僅需要從該隊列中讀取相應的函數(shù)調(diào)用。主程序僅需要從該隊列中讀取相應的指針并且調(diào)用相關(guān)的函數(shù)。指針并且調(diào)用相關(guān)的函數(shù)。void interrupt vHandleDeviceA(void)/將functionA放入函數(shù)指針隊列中;void interrupt vHandleDeviceB(void)/將functionB放入函數(shù)指針隊列中;void functionA()void functionB()void main() while (TRUE) while(/函數(shù)指針隊列為空) /調(diào)用隊列中另一個函數(shù) 55l優(yōu)點優(yōu)點:main可以根據(jù)任何可以達到目標的優(yōu)先級方案來調(diào)
50、用函數(shù)可以根據(jù)任何可以達到目標的優(yōu)先級方案來調(diào)用函數(shù),這樣任何需要更快響應的任務代碼都可以被更早執(zhí)行。,這樣任何需要更快響應的任務代碼都可以被更早執(zhí)行。為了做到這一點,只需要在對函數(shù)指針進行排隊的程序中為了做到這一點,只需要在對函數(shù)指針進行排隊的程序中對代碼進行一點技巧性設(shè)計。對代碼進行一點技巧性設(shè)計。l缺點:缺點:具有較低優(yōu)先級任務代碼的函數(shù)可能會有更差的響應。具有較低優(yōu)先級任務代碼的函數(shù)可能會有更差的響應。如果某個較低優(yōu)先級任務的代碼函數(shù)過長,就有可能影響如果某個較低優(yōu)先級任務的代碼函數(shù)過長,就有可能影響較高優(yōu)先級函數(shù)的響應時間。較高優(yōu)先級函數(shù)的響應時間。 564實時操作系統(tǒng)實時操作系統(tǒng)v
51、oid interrupt vHandleDeviceA(void)/設(shè)置信號設(shè)置信號X;void interrupt vHandleDeviceB(void)/設(shè)置信號設(shè)置信號Y;void Task1()void Task1() while (TRUE) void Task2() while (TRUE) 是在函數(shù)隊列調(diào)度結(jié)構(gòu)基礎(chǔ)上發(fā)展而來的一種結(jié)構(gòu)是在函數(shù)隊列調(diào)度結(jié)構(gòu)基礎(chǔ)上發(fā)展而來的一種結(jié)構(gòu)57l這種結(jié)構(gòu)和以前那些結(jié)構(gòu)的不同之處在于:這種結(jié)構(gòu)和以前那些結(jié)構(gòu)的不同之處在于:中斷程序和任務代碼之間的必要信號發(fā)送是由實時中斷程序和任務代碼之間的必要信號發(fā)送是由實時操作系統(tǒng)處理的,而并不需要使用共
52、享變量來達到操作系統(tǒng)處理的,而并不需要使用共享變量來達到這個目標。這個目標。在代碼中并沒有用循環(huán)來決定下一步要做什么。實在代碼中并沒有用循環(huán)來決定下一步要做什么。實時操作系統(tǒng)內(nèi)部的代碼可以決定什么任務代碼函數(shù)時操作系統(tǒng)內(nèi)部的代碼可以決定什么任務代碼函數(shù)可以運行。可以運行。實時操作系統(tǒng)可以在一個任務代碼程序運行期間將實時操作系統(tǒng)可以在一個任務代碼程序運行期間將其掛起,以便運行另一個子程序。其掛起,以便運行另一個子程序。 前兩點主要針對編程的方便性;而最后一點前兩點主要針對編程的方便性;而最后一點是實質(zhì)性的:使用實時操作系統(tǒng)結(jié)構(gòu)的系統(tǒng)不僅是實質(zhì)性的:使用實時操作系統(tǒng)結(jié)構(gòu)的系統(tǒng)不僅可以控制任務代碼的
53、響應時間,還可以控制中斷可以控制任務代碼的響應時間,還可以控制中斷程序的響應時間。程序的響應時間。 58不同軟件結(jié)構(gòu)的特點不同軟件結(jié)構(gòu)的特點 l在輪詢機構(gòu)和函數(shù)隊列調(diào)度結(jié)構(gòu)中,一個任務代碼函數(shù)的響應在輪詢機構(gòu)和函數(shù)隊列調(diào)度結(jié)構(gòu)中,一個任務代碼函數(shù)的響應時間,取決于包括低優(yōu)先級任務子程序在內(nèi)的各個任務代碼子時間,取決于包括低優(yōu)先級任務子程序在內(nèi)的各個任務代碼子程序的長度。當改變?nèi)我庖粋€子程序的時候,就有可能改變了程序的長度。當改變?nèi)我庖粋€子程序的時候,就有可能改變了整個系統(tǒng)的響應時間。而在實時操作系統(tǒng)結(jié)構(gòu)中,對于較低優(yōu)整個系統(tǒng)的響應時間。而在實時操作系統(tǒng)結(jié)構(gòu)中,對于較低優(yōu)先級函數(shù)的改變通常不會影
54、響較高優(yōu)先級函數(shù)的響應時間。先級函數(shù)的改變通常不會影響較高優(yōu)先級函數(shù)的響應時間。 59軟件結(jié)構(gòu)的選擇軟件結(jié)構(gòu)的選擇 當要為嵌入式系統(tǒng)選擇一種軟件結(jié)構(gòu)時,一般按照當要為嵌入式系統(tǒng)選擇一種軟件結(jié)構(gòu)時,一般按照以下原則進行:以下原則進行:l選擇可以滿足響應時間需求的最簡單的結(jié)構(gòu)。即使沒選擇可以滿足響應時間需求的最簡單的結(jié)構(gòu)。即使沒有選擇一個復雜的軟件結(jié)構(gòu),僅僅是編寫嵌入式系統(tǒng)有選擇一個復雜的軟件結(jié)構(gòu),僅僅是編寫嵌入式系統(tǒng)軟件就很復雜了。軟件就很復雜了。l如果系統(tǒng)對于響應時間的要求很高使得一個實時操作如果系統(tǒng)對于響應時間的要求很高使得一個實時操作系統(tǒng)成為必須的,那就應該使用實時操作系統(tǒng)結(jié)構(gòu)。系統(tǒng)成為必
55、須的,那就應該使用實時操作系統(tǒng)結(jié)構(gòu)。大多數(shù)商業(yè)系統(tǒng)都提供相應的工具集,方便編程人員大多數(shù)商業(yè)系統(tǒng)都提供相應的工具集,方便編程人員對應用程序的開發(fā)和調(diào)試。對應用程序的開發(fā)和調(diào)試。l如果對一個系統(tǒng)有意義的話,可以將這幾種結(jié)構(gòu)結(jié)合如果對一個系統(tǒng)有意義的話,可以將這幾種結(jié)構(gòu)結(jié)合起來使用。起來使用。60本章提要本章提要嵌入式系統(tǒng)總體結(jié)構(gòu)嵌入式系統(tǒng)總體結(jié)構(gòu)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)中斷管理與系統(tǒng)啟動嵌入式系統(tǒng)中斷管理與系統(tǒng)啟動612.4 中斷管理與系統(tǒng)啟動中斷管理與系統(tǒng)啟動2.4.1中斷基礎(chǔ)知識中斷基礎(chǔ)知識 中斷和輪詢方式不一樣,在中斷執(zhí)行完成后需要
56、恢中斷和輪詢方式不一樣,在中斷執(zhí)行完成后需要恢復被中斷的程序。復被中斷的程序。 1保存上下文和恢復上下文保存上下文和恢復上下文 在中斷處理的前后需要對處理器被中斷中止的現(xiàn)場在中斷處理的前后需要對處理器被中斷中止的現(xiàn)場進行保護和恢復,通常稱為壓棧和出棧。保護現(xiàn)場的目進行保護和恢復,通常稱為壓棧和出棧。保護現(xiàn)場的目的就是將當前程序處理的數(shù)據(jù)、程序執(zhí)行被中斷的位置的就是將當前程序處理的數(shù)據(jù)、程序執(zhí)行被中斷的位置、工作狀態(tài)等保存起來以便于中斷返回能繼續(xù)正常執(zhí)行、工作狀態(tài)等保存起來以便于中斷返回能繼續(xù)正常執(zhí)行 622數(shù)據(jù)共享問題數(shù)據(jù)共享問題 在使用中斷中都會遇到這樣一個問題:中斷程序可在使用中斷中都會遇
57、到這樣一個問題:中斷程序可能會與用戶所寫的其他任務代碼通信。能會與用戶所寫的其他任務代碼通信。 通常來講,要保證微處理器的實時性和中斷的及時通常來講,要保證微處理器的實時性和中斷的及時響應,必須要求中斷服務程序所占時間盡可能短。如果響應,必須要求中斷服務程序所占時間盡可能短。如果把微處理器所做的工作全部放到中斷程序中去做既不可把微處理器所做的工作全部放到中斷程序中去做既不可能也不合算。因此,中斷程序需要通知任務代碼來做后能也不合算。因此,中斷程序需要通知任務代碼來做后續(xù)工作處理。在這種情況下,中斷程序和任務代碼就必續(xù)工作處理。在這種情況下,中斷程序和任務代碼就必須共享一個或多個變量來實現(xiàn)它們之
58、間的通信。須共享一個或多個變量來實現(xiàn)它們之間的通信。 63經(jīng)典的共享數(shù)據(jù)問題經(jīng)典的共享數(shù)據(jù)問題 static int iTemperatures2;void interrupt vReadTemperatures(void)iTemperatures0=/從硬件中讀出溫度值iTemperatures1=/從硬件中讀出溫度值void main()int iTemp0, iTemp1;while (TURE) iTemp0= iTemperatures0; iTemp1= iTemperatures1; if(iTemp0!=iTemp1) /發(fā)出報警;MOVE R1, (iTemperature
59、0)MOVE R2, (iTemperature1)SUBTRACT R1,R2JCOND ZERO, TEMPRATURES_OK;發(fā)出警報TEMPRATURES_OK:64禁止中斷來解決圖禁止中斷來解決圖4-3中的共享數(shù)據(jù)問題中的共享數(shù)據(jù)問題 static int iTemperatures2;void interrupt vReadTemperatures(void)iTemperatures0=/從硬件中讀出溫度值iTemperatures1=/從硬件中讀出溫度值void main()int iTemp0, iTemp1;while (TURE) disable(); iTemp0=
60、iTemperatures0; iTemp1= iTemperatures1; enable(); if(iTemp0!=iTemp1) /發(fā)出報警;.DIMOV R1, (iTemperature0)MOV R2, (iTemperature1)EISUBTRACT R1,R2J C O N D Z E R O , TEMPRATURES_OK;發(fā)出警報TEMPRATURES_OK:653“原子區(qū)原子區(qū)”和和“臨界區(qū)臨界區(qū)”l程序中不能被中斷的部分代碼成為程序中不能被中斷的部分代碼成為“原子的原子的”。任務是。任務是用用“原子的原子的” 指不能被任何可能擾亂正在使用數(shù)據(jù)的指不能被任何可能擾亂
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南農(nóng)、林、牧、漁服務業(yè)市場前景及投資研究報告
- 商用航電芯片項目可行性研究報告技術(shù)工藝+設(shè)備選型+財務概算+廠區(qū)規(guī)劃
- 氯哌拉米行業(yè)深度研究報告
- 甲醇行業(yè)分析研究報告
- 中國日化用品市場競爭格局分析及投資方向研究報告
- 精密合金冷軋鋼帶行業(yè)深度研究報告
- 2025年浸漬、涂布或包覆處理紡織物項目深度研究分析報告
- 2024-2027年中國研磨材料行業(yè)市場調(diào)研及投資戰(zhàn)略規(guī)劃建議報告
- 中國乳房攝影術(shù)行業(yè)市場全景評估及發(fā)展戰(zhàn)略規(guī)劃報告
- 木作包工合同范本
- 醫(yī)學課件:介入放射學(全套課件328張)
- 高速公路改擴建工程路基標準化
- 水泥攪拌樁記錄表格范本
- DL∕T 458-2020 板框式旋轉(zhuǎn)濾網(wǎng)
- GB∕T 8163-2018 輸送流體用無縫鋼管
- 短視頻:策劃制作與運營課件
- T∕ASC 17-2021 電動汽車充換電設(shè)施系統(tǒng)設(shè)計標準
- 水閘設(shè)計步驟計算書(多表)
- PowerPoint使用技巧培訓課件(共35張)
- SMA瀝青路面的設(shè)計與施工
- 腎內(nèi)科相關(guān)基礎(chǔ)知識學習教案
評論
0/150
提交評論