二、嵌入式基本概念_第1頁(yè)
二、嵌入式基本概念_第2頁(yè)
二、嵌入式基本概念_第3頁(yè)
二、嵌入式基本概念_第4頁(yè)
二、嵌入式基本概念_第5頁(yè)
已閱讀5頁(yè),還剩60頁(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)介

1、1嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā)嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā)ARMARM與與 C/OS-C/OS-第二講第二講 嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)的基本概念21、什么是嵌入式系統(tǒng)、什么是嵌入式系統(tǒng)2、硬件基礎(chǔ)、硬件基礎(chǔ)3、嵌入式操作系統(tǒng)、嵌入式操作系統(tǒng)嵌入式系統(tǒng)的基本概念嵌入式系統(tǒng)的基本概念3IEEEIEEE定義定義根據(jù)根據(jù)IEEE(國(guó)際電氣和電子工程師協(xié)會(huì))的定義:(國(guó)際電氣和電子工程師協(xié)會(huì))的定義:嵌入式系統(tǒng)是嵌入式系統(tǒng)是“用于控制、監(jiān)視或者輔助操作用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置機(jī)器和設(shè)備的裝置”(原文為(原文為devices used to control, monitor, or ass

2、ist the operation of equipment, machinery or plants)。)??梢钥闯龃硕x是從應(yīng)用上考慮的,嵌入式系可以看出此定義是從應(yīng)用上考慮的,嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)電等附屬統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)電等附屬裝置。裝置。 4嵌入式系統(tǒng)的幾個(gè)重要特征嵌入式系統(tǒng)的幾個(gè)重要特征(1)系統(tǒng)內(nèi)核?。┫到y(tǒng)內(nèi)核小由于嵌入式系統(tǒng)一般是應(yīng)用于小型電子裝置的,由于嵌入式系統(tǒng)一般是應(yīng)用于小型電子裝置的,系統(tǒng)資源相對(duì)有限,所以內(nèi)核較之傳統(tǒng)的操作系統(tǒng)要小系統(tǒng)資源相對(duì)有限,所以內(nèi)核較之傳統(tǒng)的操作系統(tǒng)要小得多。得多。比如比如ENEA公司的公司的OSE分布

3、式系統(tǒng),內(nèi)核只有分布式系統(tǒng),內(nèi)核只有5K,而,而Windows的內(nèi)核則要大得多。的內(nèi)核則要大得多。5()專(zhuān)用性強(qiáng)()專(zhuān)用性強(qiáng)嵌入式系統(tǒng)的個(gè)性化很強(qiáng),其中的軟件系統(tǒng)和硬件嵌入式系統(tǒng)的個(gè)性化很強(qiáng),其中的軟件系統(tǒng)和硬件的結(jié)合非常緊密,一般要針對(duì)硬件進(jìn)行系統(tǒng)的移植。的結(jié)合非常緊密,一般要針對(duì)硬件進(jìn)行系統(tǒng)的移植。即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)系即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)系統(tǒng)硬件的變化和增減不斷進(jìn)行修改。統(tǒng)硬件的變化和增減不斷進(jìn)行修改。同時(shí)針對(duì)不同的任務(wù),往往需要對(duì)系統(tǒng)進(jìn)行較大更同時(shí)針對(duì)不同的任務(wù),往往需要對(duì)系統(tǒng)進(jìn)行較大更改,程序的編譯下載要和系統(tǒng)相結(jié)合,這種修改和通用改,程序

4、的編譯下載要和系統(tǒng)相結(jié)合,這種修改和通用軟件的軟件的“升級(jí)升級(jí)”是完全不同的概念。是完全不同的概念。 6()系統(tǒng)精簡(jiǎn)()系統(tǒng)精簡(jiǎn)嵌入式系統(tǒng)一般沒(méi)有系統(tǒng)軟件和應(yīng)用軟件的明顯嵌入式系統(tǒng)一般沒(méi)有系統(tǒng)軟件和應(yīng)用軟件的明顯區(qū)分,不要求其功能設(shè)計(jì)及實(shí)現(xiàn)上過(guò)于復(fù)雜,這樣一區(qū)分,不要求其功能設(shè)計(jì)及實(shí)現(xiàn)上過(guò)于復(fù)雜,這樣一方面利于控制系統(tǒng)成本,同時(shí)也利于實(shí)現(xiàn)系統(tǒng)安全。方面利于控制系統(tǒng)成本,同時(shí)也利于實(shí)現(xiàn)系統(tǒng)安全。()高實(shí)時(shí)性()高實(shí)時(shí)性O(shè)S這是這是嵌入式軟件的基本要求,而且軟件要求固態(tài)嵌入式軟件的基本要求,而且軟件要求固態(tài)存儲(chǔ),以提高速度。軟件代碼要求高質(zhì)量和高可靠性存儲(chǔ),以提高速度。軟件代碼要求高質(zhì)量和高可靠性

5、、實(shí)時(shí)性。、實(shí)時(shí)性。 7(5)嵌入式軟件開(kāi)發(fā)走向標(biāo)準(zhǔn)化)嵌入式軟件開(kāi)發(fā)走向標(biāo)準(zhǔn)化嵌入式系統(tǒng)的應(yīng)用程序可以沒(méi)有操作系統(tǒng)直接在嵌入式系統(tǒng)的應(yīng)用程序可以沒(méi)有操作系統(tǒng)直接在芯片上運(yùn)行。芯片上運(yùn)行。為了合理地調(diào)度多任務(wù)、利用系統(tǒng)資源、系統(tǒng)函為了合理地調(diào)度多任務(wù)、利用系統(tǒng)資源、系統(tǒng)函數(shù)以及和專(zhuān)家?guī)旌瘮?shù)接口,用戶必須自行選配數(shù)以及和專(zhuān)家?guī)旌瘮?shù)接口,用戶必須自行選配RTOS(RealTime Operating System)開(kāi)發(fā)平臺(tái),這樣才)開(kāi)發(fā)平臺(tái),這樣才能保證程序執(zhí)行的實(shí)時(shí)性、可靠性,并減少開(kāi)發(fā)時(shí)間能保證程序執(zhí)行的實(shí)時(shí)性、可靠性,并減少開(kāi)發(fā)時(shí)間,保障軟件質(zhì)量。,保障軟件質(zhì)量。8(6)嵌入式系統(tǒng)開(kāi)發(fā)需要開(kāi)

6、發(fā)工具和環(huán)境)嵌入式系統(tǒng)開(kāi)發(fā)需要開(kāi)發(fā)工具和環(huán)境由于其本身不具備自主開(kāi)發(fā)能力,即使設(shè)計(jì)完成以后,用戶通由于其本身不具備自主開(kāi)發(fā)能力,即使設(shè)計(jì)完成以后,用戶通常也是不能對(duì)其中的程序功能進(jìn)行修改,必須有一套開(kāi)發(fā)工具和環(huán)常也是不能對(duì)其中的程序功能進(jìn)行修改,必須有一套開(kāi)發(fā)工具和環(huán)境才能進(jìn)行開(kāi)發(fā)。境才能進(jìn)行開(kāi)發(fā)。這些工具和環(huán)境一般是基于通用計(jì)算機(jī)上的軟硬件設(shè)備以及各這些工具和環(huán)境一般是基于通用計(jì)算機(jī)上的軟硬件設(shè)備以及各種邏輯分析儀、混合信號(hào)示波器等。種邏輯分析儀、混合信號(hào)示波器等。開(kāi)發(fā)時(shí)往往有主機(jī)和目標(biāo)機(jī)的概念,主機(jī)用于程序的開(kāi)發(fā),目開(kāi)發(fā)時(shí)往往有主機(jī)和目標(biāo)機(jī)的概念,主機(jī)用于程序的開(kāi)發(fā),目標(biāo)機(jī)作為最后的執(zhí)行

7、機(jī),開(kāi)發(fā)時(shí)需要交替結(jié)合進(jìn)行。標(biāo)機(jī)作為最后的執(zhí)行機(jī),開(kāi)發(fā)時(shí)需要交替結(jié)合進(jìn)行。 9 嵌入式系統(tǒng)與嵌入式系統(tǒng)與PC之間的區(qū)別之間的區(qū)別嵌入式系統(tǒng)一般是專(zhuān)用系統(tǒng),而嵌入式系統(tǒng)一般是專(zhuān)用系統(tǒng),而PC是通用計(jì)算平臺(tái)是通用計(jì)算平臺(tái)嵌入式系統(tǒng)的資源比嵌入式系統(tǒng)的資源比PC少得多少得多嵌入式系統(tǒng)軟件故障帶來(lái)的后果比嵌入式系統(tǒng)軟件故障帶來(lái)的后果比PC機(jī)大得多機(jī)大得多嵌入式系統(tǒng)一般采用實(shí)時(shí)操作系統(tǒng)嵌入式系統(tǒng)一般采用實(shí)時(shí)操作系統(tǒng)嵌入式系統(tǒng)大都有成本、功耗的要求嵌入式系統(tǒng)大都有成本、功耗的要求嵌入式系統(tǒng)得到多種微處理體系的支持嵌入式系統(tǒng)得到多種微處理體系的支持嵌入式系統(tǒng)需要專(zhuān)用的開(kāi)發(fā)工具嵌入式系統(tǒng)需要專(zhuān)用的開(kāi)發(fā)工具10

8、典型嵌入式系統(tǒng)基本組成硬件典型嵌入式系統(tǒng)基本組成硬件MPU微處理器微處理器電源電源模塊模塊時(shí)鐘時(shí)鐘復(fù)位復(fù)位FlashRAMROMUSBLCDKeyboard外圍電路外圍電路Other外設(shè)外設(shè)11典型嵌入式系統(tǒng)基本組成軟件典型嵌入式系統(tǒng)基本組成軟件處理器處理器存儲(chǔ)器存儲(chǔ)器輸入輸入輸出輸出操作系統(tǒng)操作系統(tǒng)應(yīng)用程序應(yīng)用程序軟件軟件結(jié)構(gòu)結(jié)構(gòu)硬件硬件結(jié)構(gòu)結(jié)構(gòu)12嵌入式處理器嵌入式處理器 嵌入式處理器是嵌入式系統(tǒng)的核心,是控制、輔助嵌入式處理器是嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運(yùn)行的硬件單元。系統(tǒng)運(yùn)行的硬件單元。 位、位、 位單片機(jī),位單片機(jī),16位、位、 32位位、64位嵌入式位嵌入式CPU。實(shí)時(shí)操作

9、系統(tǒng)實(shí)時(shí)操作系統(tǒng) 實(shí)時(shí)操作系統(tǒng)是嵌入式系統(tǒng)目前最主要的組成部分實(shí)時(shí)操作系統(tǒng)是嵌入式系統(tǒng)目前最主要的組成部分。實(shí)時(shí)性需要調(diào)度一切可利用的資源完成實(shí)時(shí)控制任務(wù)。實(shí)時(shí)性需要調(diào)度一切可利用的資源完成實(shí)時(shí)控制任務(wù),著眼于提高計(jì)算機(jī)系統(tǒng)的使用效率,滿足對(duì)時(shí)間的限,著眼于提高計(jì)算機(jī)系統(tǒng)的使用效率,滿足對(duì)時(shí)間的限制和要求。制和要求。13 系統(tǒng)響應(yīng)時(shí)間(系統(tǒng)響應(yīng)時(shí)間(System response timeSystem response time):):系統(tǒng)發(fā)出處理要求,到系統(tǒng)給出應(yīng)答信號(hào)的時(shí)間。系統(tǒng)發(fā)出處理要求,到系統(tǒng)給出應(yīng)答信號(hào)的時(shí)間。 任務(wù)切換時(shí)間(任務(wù)切換時(shí)間(Context-switching tim

10、eContext-switching time):):任務(wù)之間切換而使用的時(shí)間。任務(wù)之間切換而使用的時(shí)間。 中斷延遲(中斷延遲(Interrupt latencyInterrupt latency):):計(jì)算機(jī)接收到中斷信號(hào)到操作系統(tǒng)作出響應(yīng),并完成切換轉(zhuǎn)入中計(jì)算機(jī)接收到中斷信號(hào)到操作系統(tǒng)作出響應(yīng),并完成切換轉(zhuǎn)入中斷服務(wù)程序的時(shí)間。斷服務(wù)程序的時(shí)間。14馮馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)CISC與與RICS影響影響CPU性能的因素性能的因素存儲(chǔ)器系統(tǒng)存儲(chǔ)器系統(tǒng)I/O接口接口二、硬件基礎(chǔ)二、硬件基礎(chǔ)15馮馮諾依曼體系結(jié)構(gòu)模型諾依曼體系結(jié)構(gòu)模型指令寄存器指令寄存器控制器控

11、制器數(shù)據(jù)通道數(shù)據(jù)通道輸入輸入輸出輸出中央處理器中央處理器存儲(chǔ)器存儲(chǔ)器程序程序指令指令0指令指令1指令指令2指令指令3指令指令4數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)數(shù)據(jù)1數(shù)據(jù)數(shù)據(jù)216指令的執(zhí)行周期指令的執(zhí)行周期T1)取指令()取指令(Instruction Fetch):TF2)指令譯碼()指令譯碼(Instruction Decode):):TD3)執(zhí)行指令()執(zhí)行指令(Instruction Execute):):TE4)存儲(chǔ)()存儲(chǔ)(Storage):):TS每條指令的執(zhí)行周期:每條指令的執(zhí)行周期:T= TF+TD+TE+TS17馮馮諾依曼體系的特點(diǎn)諾依曼體系的特點(diǎn)1)數(shù)據(jù)與指令都存儲(chǔ)在存儲(chǔ)器中)數(shù)據(jù)

12、與指令都存儲(chǔ)在存儲(chǔ)器中2)被大多數(shù)計(jì)算機(jī)所采用)被大多數(shù)計(jì)算機(jī)所采用3)ARM7馮諾依曼體系馮諾依曼體系在馮在馮諾依曼體系結(jié)構(gòu)中,數(shù)據(jù)和程序存儲(chǔ)器是共享諾依曼體系結(jié)構(gòu)中,數(shù)據(jù)和程序存儲(chǔ)器是共享數(shù)據(jù)總線的。數(shù)據(jù)總線共享有很多優(yōu)點(diǎn),比如減小總數(shù)據(jù)總線的。數(shù)據(jù)總線共享有很多優(yōu)點(diǎn),比如減小總線的開(kāi)銷(xiāo)。另外一個(gè)優(yōu)點(diǎn)在于能夠把線的開(kāi)銷(xiāo)。另外一個(gè)優(yōu)點(diǎn)在于能夠把RAM映射到程序映射到程序空間,這樣設(shè)備也能訪問(wèn)空間,這樣設(shè)備也能訪問(wèn)EEPROM中的內(nèi)存。中的內(nèi)存。18哈佛體系結(jié)構(gòu)哈佛體系結(jié)構(gòu)指令寄存器指令寄存器控制器控制器數(shù)據(jù)通道數(shù)據(jù)通道輸入輸入輸出輸出中央處理器中央處理器程序存儲(chǔ)器程序存儲(chǔ)器指令指令0指令指令

13、1指令指令2數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)數(shù)據(jù)1數(shù)據(jù)數(shù)據(jù)2地址地址指令指令地址地址數(shù)據(jù)數(shù)據(jù)19哈佛體系結(jié)構(gòu)的特點(diǎn)哈佛體系結(jié)構(gòu)的特點(diǎn)1)程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器分開(kāi))程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器分開(kāi)2)提供了較大的數(shù)存儲(chǔ)器帶寬)提供了較大的數(shù)存儲(chǔ)器帶寬3)適合于數(shù)字信號(hào)處理)適合于數(shù)字信號(hào)處理4)大多數(shù))大多數(shù)DSP都是哈佛結(jié)構(gòu)都是哈佛結(jié)構(gòu)5)ARM9是哈佛結(jié)構(gòu)是哈佛結(jié)構(gòu)20 對(duì)于哈佛體系結(jié)構(gòu)的計(jì)算機(jī),程序和數(shù)據(jù)總線是分開(kāi)的對(duì)于哈佛體系結(jié)構(gòu)的計(jì)算機(jī),程序和數(shù)據(jù)總線是分開(kāi)的。這種方式的優(yōu)勢(shì)在于能夠在一個(gè)時(shí)鐘周期內(nèi)同時(shí)讀取程序。這種方式的優(yōu)勢(shì)在于能夠在一個(gè)時(shí)鐘周期內(nèi)同時(shí)讀取程序和數(shù)據(jù),這樣就相應(yīng)地減少了

14、執(zhí)行每一條指令所需的時(shí)鐘周和數(shù)據(jù),這樣就相應(yīng)地減少了執(zhí)行每一條指令所需的時(shí)鐘周期。早期的哈佛架構(gòu)的計(jì)算機(jī)是不能把查找表儲(chǔ)存在程序存期。早期的哈佛架構(gòu)的計(jì)算機(jī)是不能把查找表儲(chǔ)存在程序存儲(chǔ)器中的,而這個(gè)問(wèn)題在現(xiàn)在的大多數(shù)設(shè)備中已經(jīng)解決了。儲(chǔ)器中的,而這個(gè)問(wèn)題在現(xiàn)在的大多數(shù)設(shè)備中已經(jīng)解決了。哈佛體系結(jié)構(gòu)計(jì)算機(jī)中存在的另外一個(gè)問(wèn)題就是,如果哈佛體系結(jié)構(gòu)計(jì)算機(jī)中存在的另外一個(gè)問(wèn)題就是,如果要和外部的程序和數(shù)據(jù)存儲(chǔ)器進(jìn)行交互,對(duì)于兩部分存儲(chǔ)器要和外部的程序和數(shù)據(jù)存儲(chǔ)器進(jìn)行交互,對(duì)于兩部分存儲(chǔ)器來(lái)說(shuō),由于地址總線和數(shù)據(jù)總線的相互獨(dú)立性,就需要額外來(lái)說(shuō),由于地址總線和數(shù)據(jù)總線的相互獨(dú)立性,就需要額外增加大量的

15、芯片管腳。因此,只有當(dāng)至少有一種存儲(chǔ)器的類(lèi)增加大量的芯片管腳。因此,只有當(dāng)至少有一種存儲(chǔ)器的類(lèi)型是內(nèi)部的情況下,微處理器才會(huì)采用哈佛體系結(jié)構(gòu)。型是內(nèi)部的情況下,微處理器才會(huì)采用哈佛體系結(jié)構(gòu)。21CISC和和RISCRISC(精簡(jiǎn)指令集計(jì)算機(jī)精簡(jiǎn)指令集計(jì)算機(jī))和和CISC(復(fù)雜指令集計(jì)算機(jī)復(fù)雜指令集計(jì)算機(jī))是當(dāng)前是當(dāng)前CPU的兩種架構(gòu)。它們的區(qū)別在于不同的的兩種架構(gòu)。它們的區(qū)別在于不同的CPU設(shè)計(jì)理念和方法。設(shè)計(jì)理念和方法。CISC:復(fù)雜指令集(:復(fù)雜指令集(Complex Instruction Set Computer)具有大量的指令和尋址方式具有大量的指令和尋址方式8/2原則:原則:80%

16、的程序只使用的程序只使用20%的指令的指令大多數(shù)程序只使用少量的指令就能夠運(yùn)行。大多數(shù)程序只使用少量的指令就能夠運(yùn)行。指令復(fù)雜化、編譯復(fù)雜化,運(yùn)行時(shí)間長(zhǎng),部件效率不高,不利指令復(fù)雜化、編譯復(fù)雜化,運(yùn)行時(shí)間長(zhǎng),部件效率不高,不利于并行處理和于并行處理和VLSI的實(shí)現(xiàn)的實(shí)現(xiàn)22CISC :復(fù)雜指令集(:復(fù)雜指令集(Complex Instruction Set Computer)早期的早期的CPU全部是全部是CISC架構(gòu),它的設(shè)計(jì)目的是要用最少的機(jī)架構(gòu),它的設(shè)計(jì)目的是要用最少的機(jī)器語(yǔ)言指令來(lái)完成所需的計(jì)算任務(wù)。器語(yǔ)言指令來(lái)完成所需的計(jì)算任務(wù)。比如對(duì)于乘法運(yùn)算,在比如對(duì)于乘法運(yùn)算,在CISC架構(gòu)的架

17、構(gòu)的CPU上,您可能需要這樣上,您可能需要這樣一條指令:一條指令:MUL ADDRA, ADDRB就可以將就可以將ADDRA和和ADDRB中的數(shù)相乘并將結(jié)果儲(chǔ)存在中的數(shù)相乘并將結(jié)果儲(chǔ)存在ADDRA中。將中。將ADDRA, ADDRB中中的數(shù)據(jù)讀入寄存器,相乘和將結(jié)果寫(xiě)回內(nèi)存的操作全部依賴(lài)于的數(shù)據(jù)讀入寄存器,相乘和將結(jié)果寫(xiě)回內(nèi)存的操作全部依賴(lài)于CPU中設(shè)計(jì)的邏輯來(lái)實(shí)現(xiàn)。中設(shè)計(jì)的邏輯來(lái)實(shí)現(xiàn)。這種架構(gòu)會(huì)增加這種架構(gòu)會(huì)增加CPU結(jié)構(gòu)的復(fù)雜性和對(duì)結(jié)構(gòu)的復(fù)雜性和對(duì)CPU工藝的要求,但對(duì)工藝的要求,但對(duì)于編譯器的開(kāi)發(fā)十分有利。于編譯器的開(kāi)發(fā)十分有利。比如上面的例子,比如上面的例子,C程序中的程序中的a*=b

18、就可以直接編譯為一條乘法就可以直接編譯為一條乘法指令。指令。今天只有今天只有Intel及其兼容及其兼容CPU還在使用還在使用CISC架構(gòu)。架構(gòu)。23RISC:精簡(jiǎn)指令集(:精簡(jiǎn)指令集(Reduced Instruction Set Computer)RISC架構(gòu)要求軟件來(lái)指定各個(gè)操作步驟。如果要在架構(gòu)要求軟件來(lái)指定各個(gè)操作步驟。如果要在RISC架構(gòu)上實(shí)現(xiàn)將架構(gòu)上實(shí)現(xiàn)將ADDRA, ADDRB中的數(shù)據(jù)讀入寄存器,相乘和將結(jié)果寫(xiě)回內(nèi)存的操作都中的數(shù)據(jù)讀入寄存器,相乘和將結(jié)果寫(xiě)回內(nèi)存的操作都必須由軟件來(lái)實(shí)現(xiàn),比如:必須由軟件來(lái)實(shí)現(xiàn),比如:MOV A, ADDRA; MOV B, ADDRB; MUL

19、 A, B; STR ADDRA, A。這種架構(gòu)可以降低。這種架構(gòu)可以降低CPU的復(fù)雜性以及允許在同樣的的復(fù)雜性以及允許在同樣的工藝水平下生產(chǎn)出功能更強(qiáng)大的工藝水平下生產(chǎn)出功能更強(qiáng)大的CPU,但對(duì)于編譯器的設(shè)計(jì)有更高的要,但對(duì)于編譯器的設(shè)計(jì)有更高的要求。求。 在通道中只包含最有用的指令在通道中只包含最有用的指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令使使CPU硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單將頻率最高的操作作為指令系統(tǒng)的基本操作將頻率最高的操作作為指令系統(tǒng)的基本操作 適于適于VLSI、并行處理的發(fā)展趨勢(shì)、并行處理的發(fā)展趨勢(shì)當(dāng)然,當(dāng)然,RISC也有它的缺點(diǎn):代

20、碼密度不高,可執(zhí)行文件體積較大,也有它的缺點(diǎn):代碼密度不高,可執(zhí)行文件體積較大,匯編代碼可讀性較差。代碼密度不高是個(gè)值得關(guān)注的問(wèn)題:若不使用匯編代碼可讀性較差。代碼密度不高是個(gè)值得關(guān)注的問(wèn)題:若不使用cache,會(huì)需要更大的指令存儲(chǔ)空間,取指時(shí)也占用更大的存儲(chǔ)器帶寬。若采用會(huì)需要更大的指令存儲(chǔ)空間,取指時(shí)也占用更大的存儲(chǔ)器帶寬。若采用cache,又會(huì)降低,又會(huì)降低cache的命中率。的命中率。 24CISC與與RISC的數(shù)據(jù)通道的數(shù)據(jù)通道IFIDREGALUMEM開(kāi)始退出IFIDALUMEMREG微操作通道開(kāi)始退出單通數(shù)據(jù)通道25關(guān)于周期的概念關(guān)于周期的概念執(zhí)行一條指令所需要的時(shí)間稱(chēng)為指令周期

21、執(zhí)行一條指令所需要的時(shí)間稱(chēng)為指令周期,指令周期常常用指令周期常常用若干個(gè)時(shí)鐘周期來(lái)表示。若干個(gè)時(shí)鐘周期來(lái)表示。l 時(shí)鐘脈沖的重復(fù)周期稱(chēng)為時(shí)鐘周期,時(shí)鐘周期是時(shí)鐘脈沖的重復(fù)周期稱(chēng)為時(shí)鐘周期,時(shí)鐘周期是CPU的的基本時(shí)間計(jì)量單位,它由計(jì)算機(jī)主頻決定。基本時(shí)間計(jì)量單位,它由計(jì)算機(jī)主頻決定。l 一個(gè)一個(gè)CPU同外部設(shè)備和內(nèi)存儲(chǔ)器之間進(jìn)行信息交換過(guò)程同外部設(shè)備和內(nèi)存儲(chǔ)器之間進(jìn)行信息交換過(guò)程所需要的時(shí)間稱(chēng)為總線周期。所需要的時(shí)間稱(chēng)為總線周期。26影響影響CPU性能的因素:流水線、超標(biāo)量和緩存性能的因素:流水線、超標(biāo)量和緩存流水線技術(shù):幾個(gè)指令可以并行執(zhí)行流水線技術(shù):幾個(gè)指令可以并行執(zhí)行 提高了提高了CPU

22、的運(yùn)行效率的運(yùn)行效率 內(nèi)部信息流要求通暢流動(dòng)內(nèi)部信息流要求通暢流動(dòng)譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時(shí)間AddSubCmp27超標(biāo)量執(zhí)行超標(biāo)量執(zhí)行超標(biāo)量執(zhí)行:超標(biāo)量超標(biāo)量執(zhí)行:超標(biāo)量CPU采用多條流水線結(jié)構(gòu)采用多條流水線結(jié)構(gòu) 執(zhí)行1預(yù)取指令CACHE譯碼2譯碼1執(zhí)行2執(zhí)行1預(yù)取譯碼2譯碼1執(zhí)行2流水線1流水線2數(shù)據(jù)28高速緩存(高速緩存(CACHE)1、為什么采用高速緩存、為什么采用高速緩存 微處理器的時(shí)鐘頻率比內(nèi)存速度提高快得多,高速緩存可以提高微處理器的時(shí)鐘頻率比內(nèi)存速度提高快得多,高速緩存可以提高內(nèi)存的平均性能。內(nèi)存的平均性能。2、高速緩存的工作原理、高速緩存的工作原

23、理 高速緩存是一種小型、快速的存儲(chǔ)器,它保存部分主存內(nèi)容的高速緩存是一種小型、快速的存儲(chǔ)器,它保存部分主存內(nèi)容的拷貝。拷貝。 CPU高速緩存控制器CACHE主存數(shù)據(jù)數(shù)據(jù)地址29總線和總線橋總線和總線橋CPU低速設(shè)備橋數(shù)據(jù)高速總線存儲(chǔ)器高速設(shè)備高速設(shè)備低速總線30存儲(chǔ)器系統(tǒng)存儲(chǔ)器系統(tǒng)RAM:隨機(jī)存取存儲(chǔ)器,:隨機(jī)存取存儲(chǔ)器, SRAM:靜態(tài)隨機(jī)存儲(chǔ)器,:靜態(tài)隨機(jī)存儲(chǔ)器, DRAM:動(dòng)態(tài)隨機(jī)存儲(chǔ)器:動(dòng)態(tài)隨機(jī)存儲(chǔ)器 1)SRAM比比DRAM快快 2)SRAM比比DRAM耗電多耗電多 3)DRAM存儲(chǔ)密度比存儲(chǔ)密度比SRAM高得多高得多 4)DRM需要周期性刷新需要周期性刷新ROM:只讀存儲(chǔ)器:只讀存

24、儲(chǔ)器FLASH:閃存:閃存31輸入輸出接口輸入輸出接口1)I/O2)A/D、D/A3)鍵盤(pán))鍵盤(pán)4)LCD5)存儲(chǔ)器接口)存儲(chǔ)器接口6)設(shè)備接口)設(shè)備接口32三、嵌入式操作系統(tǒng)三、嵌入式操作系統(tǒng)操作系統(tǒng)的分類(lèi)操作系統(tǒng)的分類(lèi)嵌入式實(shí)時(shí)操作系統(tǒng)嵌入式實(shí)時(shí)操作系統(tǒng)多任務(wù),任務(wù)優(yōu)先級(jí),調(diào)度多任務(wù),任務(wù)優(yōu)先級(jí),調(diào)度前臺(tái)與后臺(tái)前臺(tái)與后臺(tái)實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)中的重要概念中的重要概念33操作系統(tǒng)的分類(lèi)操作系統(tǒng)的分類(lèi)(1)順序執(zhí)行系統(tǒng):系統(tǒng)內(nèi)只含有一個(gè)程序,獨(dú)占)順序執(zhí)行系統(tǒng):系統(tǒng)內(nèi)只含有一個(gè)程序,獨(dú)占CPU的運(yùn)的運(yùn)行時(shí)間,按語(yǔ)句順序執(zhí)行該程序,直至執(zhí)行完畢,另一程序行時(shí)間,按語(yǔ)句順序執(zhí)行該程序,直至執(zhí)行完

25、畢,另一程序才能啟動(dòng)運(yùn)行。如才能啟動(dòng)運(yùn)行。如DOS操作系統(tǒng)。操作系統(tǒng)。(2)分時(shí)操作系統(tǒng):系統(tǒng)內(nèi)同時(shí)可以有多個(gè)程序運(yùn)行,把)分時(shí)操作系統(tǒng):系統(tǒng)內(nèi)同時(shí)可以有多個(gè)程序運(yùn)行,把CPU的時(shí)間分按順序分成若干片,每個(gè)時(shí)間片內(nèi)執(zhí)行不同的的時(shí)間分按順序分成若干片,每個(gè)時(shí)間片內(nèi)執(zhí)行不同的程序。如程序。如UNIX(3)實(shí)時(shí)操作系統(tǒng):系統(tǒng)內(nèi)有多個(gè)程序運(yùn)行,每個(gè)程序有不)實(shí)時(shí)操作系統(tǒng):系統(tǒng)內(nèi)有多個(gè)程序運(yùn)行,每個(gè)程序有不同的優(yōu)先級(jí),只有最高優(yōu)先級(jí)的任務(wù)才能占有同的優(yōu)先級(jí),只有最高優(yōu)先級(jí)的任務(wù)才能占有CPU的控制權(quán)的控制權(quán)。34 具有強(qiáng)實(shí)時(shí)特點(diǎn)的嵌入式操作系統(tǒng)具有強(qiáng)實(shí)時(shí)特點(diǎn)的嵌入式操作系統(tǒng) 具有弱實(shí)特點(diǎn)的嵌入式操作系統(tǒng)

26、具有弱實(shí)特點(diǎn)的嵌入式操作系統(tǒng) 沒(méi)有實(shí)時(shí)特點(diǎn)的嵌入式操作系統(tǒng)沒(méi)有實(shí)時(shí)特點(diǎn)的嵌入式操作系統(tǒng)按實(shí)時(shí)性分類(lèi)按實(shí)時(shí)性分類(lèi)351.強(qiáng)實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒或微秒級(jí)(強(qiáng)實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒或微秒級(jí)(數(shù)控機(jī)床);數(shù)控機(jī)床);2.一航實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒幾秒的一航實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒幾秒的數(shù)量級(jí)上,其實(shí)時(shí)性的要求比強(qiáng)實(shí)時(shí)系統(tǒng)要差一些(電數(shù)量級(jí)上,其實(shí)時(shí)性的要求比強(qiáng)實(shí)時(shí)系統(tǒng)要差一些(電子菜譜的查詢)。子菜譜的查詢)。3.弱實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間約為數(shù)十秒或更長(zhǎng)弱實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間約為數(shù)十秒或更長(zhǎng)(工程機(jī)械)。(工程機(jī)械)。36(1).循環(huán)輪詢系統(tǒng):(循環(huán)輪詢系統(tǒng):(P

27、olling Loop)最簡(jiǎn)單的軟件結(jié)構(gòu)是循環(huán)輪詢,程序依次檢查系統(tǒng)的每最簡(jiǎn)單的軟件結(jié)構(gòu)是循環(huán)輪詢,程序依次檢查系統(tǒng)的每一個(gè)輸入條件,一旦條件成立就進(jìn)行相應(yīng)的處理。一個(gè)輸入條件,一旦條件成立就進(jìn)行相應(yīng)的處理。Initialize()While(true) if(condition_1) action_1(); if(condition_2) action_2(); if(condition_n) acition_n();按軟件結(jié)構(gòu)分類(lèi)按軟件結(jié)構(gòu)分類(lèi)37(2).事件驅(qū)動(dòng)系統(tǒng):(事件驅(qū)動(dòng)系統(tǒng):(Event-Driven system)事件驅(qū)動(dòng)系統(tǒng)是能對(duì)外部事件直接響應(yīng)的系統(tǒng)。它包括事件驅(qū)動(dòng)系統(tǒng)是能

28、對(duì)外部事件直接響應(yīng)的系統(tǒng)。它包括前后臺(tái)、實(shí)時(shí)多任務(wù)、多處理器等,是嵌入式實(shí)時(shí)系統(tǒng)的主前后臺(tái)、實(shí)時(shí)多任務(wù)、多處理器等,是嵌入式實(shí)時(shí)系統(tǒng)的主要形式。要形式。應(yīng)用程序是一個(gè)無(wú)限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完應(yīng)用程序是一個(gè)無(wú)限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成后臺(tái)行為(成相應(yīng)的操作,這部分可以看成后臺(tái)行為(background)。)。中斷服務(wù)程序處理異步事件,這部分可以看成前臺(tái)行為(中斷服務(wù)程序處理異步事件,這部分可以看成前臺(tái)行為(foreground)。后臺(tái)也可以叫做任務(wù)級(jí),前臺(tái)也叫中斷級(jí)。后臺(tái)也可以叫做任務(wù)級(jí),前臺(tái)也叫中斷級(jí)。例如,很多基于微處理器的產(chǎn)品采用前后臺(tái)系統(tǒng)設(shè)計(jì),

29、例如,很多基于微處理器的產(chǎn)品采用前后臺(tái)系統(tǒng)設(shè)計(jì),如微波爐、電話機(jī)、玩具等。從省電的角度出發(fā),平時(shí)微處如微波爐、電話機(jī)、玩具等。從省電的角度出發(fā),平時(shí)微處理器處在停機(jī)狀態(tài),所有的事都靠中斷服務(wù)來(lái)完成。理器處在停機(jī)狀態(tài),所有的事都靠中斷服務(wù)來(lái)完成。38前后臺(tái)系統(tǒng)(后臺(tái)循環(huán)、前臺(tái)中斷)前后臺(tái)系統(tǒng)(后臺(tái)循環(huán)、前臺(tái)中斷)ISRISR后臺(tái)后臺(tái) 前臺(tái)前臺(tái)ISR時(shí)間時(shí)間39嵌入式實(shí)時(shí)操作系統(tǒng)嵌入式實(shí)時(shí)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)的特點(diǎn):實(shí)時(shí)操作系統(tǒng)的特點(diǎn):1、多任務(wù)、多任務(wù)CPU寄存器寄存器任務(wù)任務(wù)控制控制塊塊1任務(wù)任務(wù)控制控制塊塊2任務(wù)任務(wù)控制控制塊塊n休眠、就緒、運(yùn)行、掛起、被中斷休眠、就緒、運(yùn)行、掛起、被中斷任

30、務(wù)任務(wù)1任務(wù)任務(wù)2任務(wù)任務(wù)nCPU寄存器寄存器40一個(gè)任務(wù),也稱(chēng)作一個(gè)線程,是一個(gè)簡(jiǎn)單的運(yùn)行一個(gè)任務(wù),也稱(chēng)作一個(gè)線程,是一個(gè)簡(jiǎn)單的運(yùn)行程序。每個(gè)任務(wù)都是整個(gè)應(yīng)用的某一部分,每個(gè)任務(wù)被程序。每個(gè)任務(wù)都是整個(gè)應(yīng)用的某一部分,每個(gè)任務(wù)被賦予一定的優(yōu)先級(jí),賦予一定的優(yōu)先級(jí), 有它自己的一套有它自己的一套CPU寄存器和自寄存器和自己的??臻g。己的棧空間。多任務(wù)運(yùn)行的實(shí)現(xiàn)實(shí)際上是靠多任務(wù)運(yùn)行的實(shí)現(xiàn)實(shí)際上是靠CPU(中央處理單(中央處理單元)在許多任務(wù)之間轉(zhuǎn)換、調(diào)度。元)在許多任務(wù)之間轉(zhuǎn)換、調(diào)度。 CPU只有一個(gè),輪番服務(wù)于一系列任務(wù)中的某一只有一個(gè),輪番服務(wù)于一系列任務(wù)中的某一個(gè)。多任務(wù)運(yùn)行使個(gè)。多任務(wù)運(yùn)

31、行使CPU的利用率得到最大的發(fā)揮,并使的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。應(yīng)用程序模塊化。在實(shí)際應(yīng)用中,多任務(wù)的最大特點(diǎn)是,開(kāi)發(fā)人員在實(shí)際應(yīng)用中,多任務(wù)的最大特點(diǎn)是,開(kāi)發(fā)人員可以將很復(fù)雜的應(yīng)用程序?qū)哟位C合實(shí)驗(yàn)(時(shí)鐘、位可以將很復(fù)雜的應(yīng)用程序?qū)哟位C合實(shí)驗(yàn)(時(shí)鐘、位圖、圖、USB、KEY)。)。41任務(wù)任務(wù)實(shí)時(shí)任務(wù)實(shí)時(shí)任務(wù)非實(shí)時(shí)任務(wù)非實(shí)時(shí)任務(wù)事件驅(qū)動(dòng)事件驅(qū)動(dòng)時(shí)間驅(qū)動(dòng)時(shí)間驅(qū)動(dòng)內(nèi)部事件:運(yùn)算結(jié)果、設(shè)備請(qǐng)求等內(nèi)部事件:運(yùn)算結(jié)果、設(shè)備請(qǐng)求等外部事件:開(kāi)關(guān)量輸入等外部事件:開(kāi)關(guān)量輸入等絕對(duì)時(shí)間驅(qū)動(dòng)絕對(duì)時(shí)間驅(qū)動(dòng)相對(duì)時(shí)間驅(qū)動(dòng)相對(duì)時(shí)間驅(qū)動(dòng)2、任務(wù)的事件驅(qū)動(dòng)、任務(wù)的事件驅(qū)動(dòng)423、中斷與中斷優(yōu)先級(jí)、中斷

32、與中斷優(yōu)先級(jí)CPU中斷控制器1中斷控制器2外部事件434、同步與異步、同步與異步 一系列時(shí)間相關(guān)事件稱(chēng)為同步事件,驅(qū)動(dòng)的任一系列時(shí)間相關(guān)事件稱(chēng)為同步事件,驅(qū)動(dòng)的任務(wù)為同步任務(wù)務(wù)為同步任務(wù) 隨機(jī)發(fā)生的事件稱(chēng)為異步事件,驅(qū)動(dòng)的任務(wù)為隨機(jī)發(fā)生的事件稱(chēng)為異步事件,驅(qū)動(dòng)的任務(wù)為異步任務(wù),如中斷異步任務(wù),如中斷445、資源與臨界資源、資源與臨界資源 程序進(jìn)行時(shí)可使用的軟硬件環(huán)境稱(chēng)為資源,程序進(jìn)行時(shí)可使用的軟硬件環(huán)境稱(chēng)為資源,2個(gè)以上任務(wù)可同個(gè)以上任務(wù)可同時(shí)訪問(wèn)的共享資源稱(chēng)為臨界資源。時(shí)訪問(wèn)的共享資源稱(chēng)為臨界資源。 任何任務(wù)所占用的實(shí)體都可稱(chēng)為資源。資源可以是輸入輸出設(shè)備任何任務(wù)所占用的實(shí)體都可稱(chēng)為資源。資

33、源可以是輸入輸出設(shè)備,例如打印機(jī)、鍵盤(pán)、顯示器,資源也可以是一個(gè)變量、一個(gè)結(jié),例如打印機(jī)、鍵盤(pán)、顯示器,資源也可以是一個(gè)變量、一個(gè)結(jié)構(gòu)或一個(gè)數(shù)組等。構(gòu)或一個(gè)數(shù)組等。任務(wù)1共享內(nèi)存任務(wù)2任務(wù)N45嵌入式操作系統(tǒng)的幾個(gè)主要概念嵌入式操作系統(tǒng)的幾個(gè)主要概念任務(wù) Task調(diào)度 Scheduler 優(yōu)先級(jí) Priority 代碼臨界區(qū) Critical Section可預(yù)測(cè)性 predictability上下文切換 Context Switch 46任務(wù) Task指擁有所有指擁有所有CPU資源的簡(jiǎn)單程序。資源的簡(jiǎn)單程序。在進(jìn)行實(shí)時(shí)應(yīng)用設(shè)計(jì)時(shí)通常要把工作分割成多在進(jìn)行實(shí)時(shí)應(yīng)用設(shè)計(jì)時(shí)通常要把工作分割成多個(gè)任

34、務(wù),每個(gè)任務(wù)處理一部分問(wèn)題,并被賦予個(gè)任務(wù),每個(gè)任務(wù)處理一部分問(wèn)題,并被賦予一定的優(yōu)先級(jí)、一套自己的一定的優(yōu)先級(jí)、一套自己的CPU寄存器及堆棧寄存器及堆棧。 實(shí)時(shí)系統(tǒng)中的大部分任務(wù)是周期的,體現(xiàn)在編實(shí)時(shí)系統(tǒng)中的大部分任務(wù)是周期的,體現(xiàn)在編程上每個(gè)任務(wù)則是一個(gè)典型的無(wú)限循環(huán)。程上每個(gè)任務(wù)則是一個(gè)典型的無(wú)限循環(huán)。 任務(wù)的狀態(tài):睡眠、任務(wù)的狀態(tài):睡眠、就緒、運(yùn)行、延遲、等待就緒、運(yùn)行、延遲、等待 47任務(wù):任務(wù):example手持?jǐn)?shù)據(jù)采集終端的打印手持?jǐn)?shù)據(jù)采集終端的打印creatTASK(myprintf, priority) void myprintf( ) for (;) 等待接收隊(duì)列信息;等待

35、接收隊(duì)列信息; 往打印機(jī)發(fā)送打印信息;往打印機(jī)發(fā)送打印信息; 48內(nèi)核內(nèi)核(kernel)多任務(wù)系統(tǒng)的一部分,負(fù)責(zé)管理任務(wù)。多任務(wù)系統(tǒng)的一部分,負(fù)責(zé)管理任務(wù)。占先式占先式(preemptive)與非占先式與非占先式微內(nèi)核微內(nèi)核(Micro kernel)與單內(nèi)核與單內(nèi)核(monolithic kernel)49非占先式與占先式非占先式與占先式非占先式(非占先式(non-preemptive)非占先式調(diào)度法也稱(chēng)作合作型多任務(wù)(非占先式調(diào)度法也稱(chēng)作合作型多任務(wù)(cooperative multitasking),各個(gè)任務(wù)彼此合作共享一個(gè)),各個(gè)任務(wù)彼此合作共享一個(gè)CPU。中斷服務(wù)可以使一個(gè)高優(yōu)先級(jí)

36、的任務(wù)由掛起狀態(tài)變?yōu)榫途w中斷服務(wù)可以使一個(gè)高優(yōu)先級(jí)的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來(lái)被中斷了的那個(gè)任務(wù)狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來(lái)被中斷了的那個(gè)任務(wù),直到改任務(wù)主動(dòng)放棄,直到改任務(wù)主動(dòng)放棄CPU的使用權(quán)時(shí),那個(gè)高優(yōu)先級(jí)的任務(wù)才的使用權(quán)時(shí),那個(gè)高優(yōu)先級(jí)的任務(wù)才能獲得能獲得CPU的使用權(quán)。的使用權(quán)。非占先式內(nèi)核的一個(gè)特點(diǎn)是幾乎不需要使用信號(hào)量保護(hù)共非占先式內(nèi)核的一個(gè)特點(diǎn)是幾乎不需要使用信號(hào)量保護(hù)共享數(shù)據(jù)。運(yùn)行著的任務(wù)占有享數(shù)據(jù)。運(yùn)行著的任務(wù)占有CPU,而不必?fù)?dān)心被別的任務(wù)搶占。,而不必?fù)?dān)心被別的任務(wù)搶占。非占先式內(nèi)核的最大缺陷在于其響應(yīng)高優(yōu)先級(jí)的任務(wù)慢,非占先

37、式內(nèi)核的最大缺陷在于其響應(yīng)高優(yōu)先級(jí)的任務(wù)慢,任務(wù)已經(jīng)進(jìn)入就緒態(tài),但還不能運(yùn)行,也許要等很時(shí)間,直到當(dāng)任務(wù)已經(jīng)進(jìn)入就緒態(tài),但還不能運(yùn)行,也許要等很時(shí)間,直到當(dāng)前運(yùn)行著的任務(wù)釋放前運(yùn)行著的任務(wù)釋放CPU。內(nèi)核的任務(wù)級(jí)響應(yīng)時(shí)間是不確定的,。內(nèi)核的任務(wù)級(jí)響應(yīng)時(shí)間是不確定的,不知道什么時(shí)候最高優(yōu)先級(jí)的任務(wù)才能拿到不知道什么時(shí)候最高優(yōu)先級(jí)的任務(wù)才能拿到CPU的控制權(quán),完全的控制權(quán),完全取決于應(yīng)用程序什么時(shí)候釋放取決于應(yīng)用程序什么時(shí)候釋放CPU。50非占先式非占先式(Non-Preemptive)低優(yōu)先級(jí)任務(wù)低優(yōu)先級(jí)任務(wù)ISR高優(yōu)先級(jí)任務(wù)高優(yōu)先級(jí)任務(wù)(1)(2)(3)(4)(5)(6)(7)中斷服務(wù)程序使中

38、斷服務(wù)程序使高優(yōu)先級(jí)任務(wù)就緒高優(yōu)先級(jí)任務(wù)就緒低優(yōu)先級(jí)任務(wù)釋放低優(yōu)先級(jí)任務(wù)釋放CPU使用權(quán)使用權(quán)TIME51占先式(占先式(preemptive)當(dāng)系統(tǒng)響應(yīng)時(shí)間很重要時(shí),要使用占先式(當(dāng)系統(tǒng)響應(yīng)時(shí)間很重要時(shí),要使用占先式(preemptive)內(nèi)核。最高優(yōu)先級(jí)的任務(wù)一旦就緒,總)內(nèi)核。最高優(yōu)先級(jí)的任務(wù)一旦就緒,總能得到能得到CPU的控制權(quán)。的控制權(quán)。當(dāng)一個(gè)運(yùn)行著的任務(wù)使一個(gè)比它優(yōu)先級(jí)高的任務(wù)當(dāng)一個(gè)運(yùn)行著的任務(wù)使一個(gè)比它優(yōu)先級(jí)高的任務(wù)進(jìn)入了就緒態(tài),當(dāng)前任務(wù)的進(jìn)入了就緒態(tài),當(dāng)前任務(wù)的CPU使用權(quán)就被剝奪了,使用權(quán)就被剝奪了,或者說(shuō)被掛起了,那個(gè)高優(yōu)先級(jí)的任務(wù)立刻得到了或者說(shuō)被掛起了,那個(gè)高優(yōu)先級(jí)的任

39、務(wù)立刻得到了CPU的控制權(quán)。的控制權(quán)。使用占先式內(nèi)核時(shí),應(yīng)用程序不應(yīng)直接使用不可使用占先式內(nèi)核時(shí),應(yīng)用程序不應(yīng)直接使用不可重入型函數(shù)。如果調(diào)入可重入型函數(shù)時(shí),低優(yōu)先級(jí)的重入型函數(shù)。如果調(diào)入可重入型函數(shù)時(shí),低優(yōu)先級(jí)的任務(wù)任務(wù)CPU的使用權(quán)被高優(yōu)先級(jí)任務(wù)剝奪,不可重入型的使用權(quán)被高優(yōu)先級(jí)任務(wù)剝奪,不可重入型函數(shù)中的數(shù)據(jù)有可能被破壞。函數(shù)中的數(shù)據(jù)有可能被破壞。52占先式占先式(Preemptive)低優(yōu)先級(jí)任務(wù)低優(yōu)先級(jí)任務(wù)ISR高優(yōu)先級(jí)任務(wù)高優(yōu)先級(jí)任務(wù)(1)(2)(3)(4)(5)(6)中斷服務(wù)程序使中斷服務(wù)程序使高優(yōu)先級(jí)任務(wù)就緒高優(yōu)先級(jí)任務(wù)就緒高優(yōu)先級(jí)任務(wù)得到高優(yōu)先級(jí)任務(wù)得到CPU使用權(quán)使用權(quán)TI

40、ME53可以被一個(gè)以上的任務(wù)調(diào)用,而不必?fù)?dān)心數(shù)據(jù)的破壞??梢员灰粋€(gè)以上的任務(wù)調(diào)用,而不必?fù)?dān)心數(shù)據(jù)的破壞。可重入型函數(shù)任何時(shí)候都可以被中斷,一段時(shí)間以后又可可重入型函數(shù)任何時(shí)候都可以被中斷,一段時(shí)間以后又可以運(yùn)行,而相應(yīng)數(shù)據(jù)不會(huì)丟失??芍厝胄秃瘮?shù)或者只使用以運(yùn)行,而相應(yīng)數(shù)據(jù)不會(huì)丟失??芍厝胄秃瘮?shù)或者只使用局部變量,即變量保存在局部變量,即變量保存在CPU寄存器中或堆棧中。寄存器中或堆棧中。一個(gè)不可重入型函數(shù)的例子一個(gè)不可重入型函數(shù)的例子int Temp;Void swap (int *x,int*y)Temp=*x;*X=*Y;*y=Temp;可重入型函數(shù)可重入型函數(shù)54一個(gè)可重入型函數(shù)的例子一

41、個(gè)可重入型函數(shù)的例子Void swap (int *x,int*y)int Temp;Temp=*x;*X=*Y;*y=Temp;55調(diào)度調(diào)度 Scheduler 內(nèi)核的主要職責(zé)之一,決定任務(wù)運(yùn)行的次序。內(nèi)核的主要職責(zé)之一,決定任務(wù)運(yùn)行的次序。 基本的調(diào)度算法有先來(lái)先服務(wù)基本的調(diào)度算法有先來(lái)先服務(wù)FCFS,最短周期優(yōu)先最短周期優(yōu)先SBF,優(yōu)先級(jí)法優(yōu)先級(jí)法(Priority),輪轉(zhuǎn)法,輪轉(zhuǎn)法(Round-Robin),多級(jí)隊(duì),多級(jí)隊(duì)列法列法(multi-level queues),多級(jí)反饋隊(duì)列,多級(jí)反饋隊(duì)列(multi-level feedback queues)等。等。 調(diào)度的基本方式有可占先

42、式和非占先式。調(diào)度的基本方式有可占先式和非占先式。 多數(shù)實(shí)時(shí)內(nèi)核是基于優(yōu)先級(jí)調(diào)度的多種方法的復(fù)合。多數(shù)實(shí)時(shí)內(nèi)核是基于優(yōu)先級(jí)調(diào)度的多種方法的復(fù)合。56優(yōu)先級(jí)(優(yōu)先級(jí)(Priority) 每個(gè)任務(wù)按其重要性被賦予一定的優(yōu)先級(jí)。每個(gè)任務(wù)按其重要性被賦予一定的優(yōu)先級(jí)。 靜態(tài)優(yōu)先級(jí)與動(dòng)態(tài)優(yōu)先級(jí)。靜態(tài)優(yōu)先級(jí)與動(dòng)態(tài)優(yōu)先級(jí)。 基于優(yōu)先級(jí)的系統(tǒng)會(huì)出現(xiàn)優(yōu)先級(jí)倒置的問(wèn)題,基于優(yōu)先級(jí)的系統(tǒng)會(huì)出現(xiàn)優(yōu)先級(jí)倒置的問(wèn)題,一個(gè)好的實(shí)時(shí)內(nèi)核應(yīng)該提供解決倒置的方法。一個(gè)好的實(shí)時(shí)內(nèi)核應(yīng)該提供解決倒置的方法。 已開(kāi)發(fā)出多種算法用于實(shí)時(shí)任務(wù)的優(yōu)先級(jí)分配已開(kāi)發(fā)出多種算法用于實(shí)時(shí)任務(wù)的優(yōu)先級(jí)分配,基本的有單調(diào)執(zhí)行率調(diào)度法,基本的有單調(diào)執(zhí)行率調(diào)度法RMS和最早期和最早期限優(yōu)先法限優(yōu)先法EDF等。等。57 代碼臨界區(qū)代碼臨界區(qū)(Critical Section) 指一段不可分割的代碼,一旦執(zhí)行,不能被指一段不可分割的代碼,一旦執(zhí)行,不能被中斷。中斷。 實(shí)現(xiàn)代碼臨界區(qū)的方法有:一是

溫馨提示

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