嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)_第1頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)_第2頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)_第3頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)_第4頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩113頁(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í)例開發(fā)嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)ARMARM與與 C/OS-C/OS-基本概念及設(shè)計(jì)方法基本概念及設(shè)計(jì)方法2l馮馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)lCISCCISC與與RISCRISCl影響影響CPUCPU性能的因素性能的因素l存儲(chǔ)器系統(tǒng)存儲(chǔ)器系統(tǒng)lI/OI/O接口接口一、嵌入式系統(tǒng)硬件基礎(chǔ)一、嵌入式系統(tǒng)硬件基礎(chǔ)3典型嵌入式系統(tǒng)基本組成硬件典型嵌入式系統(tǒng)基本組成硬件MPUMPU微處理器微處理器電源電源模塊模塊時(shí)鐘時(shí)鐘復(fù)位復(fù)位FlashFlashRAMRAMROMROMUSBUSBLCDLCDKeyboardKeyboard外圍電路外圍電路OtherOt

2、her外設(shè)外設(shè)41.1 馮馮諾依曼體系結(jié)構(gòu)模型諾依曼體系結(jié)構(gòu)模型指令寄存器指令寄存器控制器控制器數(shù)據(jù)通道數(shù)據(jù)通道輸入輸入輸出輸出中央處理器中央處理器存儲(chǔ)器存儲(chǔ)器程序程序指令指令0 0指令指令1 1指令指令2 2指令指令3 3指令指令4 4數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)0 0數(shù)據(jù)數(shù)據(jù)1 1數(shù)據(jù)數(shù)據(jù)2 251.2 哈佛體系結(jié)構(gòu)哈佛體系結(jié)構(gòu)指令寄存器指令寄存器控制器控制器數(shù)據(jù)通道數(shù)據(jù)通道輸入輸入輸出輸出中央處理器中央處理器程序存儲(chǔ)器程序存儲(chǔ)器指令指令0指令指令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ù)61.3 CISC和和RISCCISCCISC:復(fù)雜指令集(:

3、復(fù)雜指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和尋址方式具有大量的指令和尋址方式8/28/2原則:原則:80%80%的程序只使用的程序只使用20%20%的指令的指令大多數(shù)程序只使用少量的指令就能夠運(yùn)行。大多數(shù)程序只使用少量的指令就能夠運(yùn)行。RISCRISC:精簡(jiǎn)指令集(:精簡(jiǎn)指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令確保數(shù)據(jù)通道快速執(zhí)行每

4、一條指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令使使CPUCPU硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單 71.4 影響影響CPU性能的因素:流水線、超標(biāo)量和緩存性能的因素:流水線、超標(biāo)量和緩存流水線技術(shù):幾個(gè)指令可以并行執(zhí)行流水線技術(shù):幾個(gè)指令可以并行執(zhí)行 提高了提高了CPU的運(yùn)行效率的運(yùn)行效率 內(nèi)部信息流要求通暢流動(dòng)內(nèi)部信息流要求通暢流動(dòng)譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時(shí)間AddSubCmp8超標(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流

5、水線2數(shù)據(jù)9高速緩存(高速緩存(CACHE)1 1、為什么采用高速緩存、為什么采用高速緩存 微處理器的時(shí)鐘頻率比內(nèi)存速度提高快得多,高速緩存可以微處理器的時(shí)鐘頻率比內(nèi)存速度提高快得多,高速緩存可以提高內(nèi)存的平均性能。提高內(nèi)存的平均性能。2 2、高速緩存的工作原理、高速緩存的工作原理 高速緩存是一種小型、快速的存儲(chǔ)器,它保存部分主存內(nèi)高速緩存是一種小型、快速的存儲(chǔ)器,它保存部分主存內(nèi)容的拷貝。容的拷貝。 CPU高速緩存控制器CACHE主存數(shù)據(jù)數(shù)據(jù)地址10總線和總線橋總線和總線橋CPU低速設(shè)備橋數(shù)據(jù)高速總線存儲(chǔ)器高速設(shè)備高速設(shè)備低速總線111.5 存儲(chǔ)器系統(tǒng)存儲(chǔ)器系統(tǒng)RAMRAM:隨機(jī)存取存儲(chǔ)器,

6、:隨機(jī)存取存儲(chǔ)器, SRAMSRAM:靜態(tài)隨機(jī)存儲(chǔ)器,:靜態(tài)隨機(jī)存儲(chǔ)器, DRAMDRAM:動(dòng)態(tài)隨機(jī)存儲(chǔ)器動(dòng)態(tài)隨機(jī)存儲(chǔ)器 1 1)SRAMSRAM比比DRAMDRAM快快 2 2)SRAMSRAM比比DRAMDRAM耗電多耗電多 3 3)DRAMDRAM存儲(chǔ)密度比存儲(chǔ)密度比SRAMSRAM高得多高得多 4 4)DRMDRM需要周期性刷新需要周期性刷新ROMROM:只讀存儲(chǔ)器:只讀存儲(chǔ)器FLASHFLASH:閃存:閃存12SRAM和和DRAM1)SRAM 2)DRAMCSR/WAddrDataCSR/WCASDataRASAddr13輸入輸出接口輸入輸出接口lI/OI/OlA/DA/D、D/AD

7、/Al鍵盤鍵盤lLCDLCDl存儲(chǔ)器接口存儲(chǔ)器接口l設(shè)備接口設(shè)備接口14例如例如USBUSBlUSBUSB:Universal Serial BusUniversal Serial Bus,通用串行總線,通用串行總線l大家生活中常見的與大家生活中常見的與USBUSB有關(guān)的東西有:有關(guān)的東西有:uU U盤、移動(dòng)硬盤、無(wú)驅(qū)型的盤、移動(dòng)硬盤、無(wú)驅(qū)型的MP3MP3(U U盤)盤)uUSBUSB接口的鍵盤、接口的鍵盤、MouseMouse、打印機(jī)、數(shù)碼相機(jī)、打印機(jī)、數(shù)碼相機(jī)l即插即用,熱插撥,系統(tǒng)不需重啟便可工作,且易于擴(kuò)展即插即用,熱插撥,系統(tǒng)不需重啟便可工作,且易于擴(kuò)展(127127個(gè))個(gè))lUSB

8、2.0USB2.0以低成本實(shí)現(xiàn)高達(dá)以低成本實(shí)現(xiàn)高達(dá)480Mb/s480Mb/s的傳輸率(的傳輸率(USB1.1USB1.1的全速的全速設(shè)備可達(dá)設(shè)備可達(dá)12Mb/s12Mb/s)l接口標(biāo)準(zhǔn)統(tǒng)一、端口供電接口標(biāo)準(zhǔn)統(tǒng)一、端口供電15一個(gè)典型的一個(gè)典型的USBUSB通訊系統(tǒng)通訊系統(tǒng)HOST系統(tǒng)HUBDEVICEDDEVICE應(yīng)用軟件+驅(qū)動(dòng)程序Ms.Win+接口芯片HUBU盤其他數(shù)據(jù)采集器驅(qū)動(dòng)代碼+嵌入式處理器+HOST芯片HUBU盤其他數(shù)據(jù)采集器通用系統(tǒng)模型PC機(jī)中的情況嵌入式系統(tǒng)應(yīng)用16二、嵌入式系統(tǒng)軟件基礎(chǔ)二、嵌入式系統(tǒng)軟件基礎(chǔ)l操作系統(tǒng)的分類操作系統(tǒng)的分類l嵌入式實(shí)時(shí)操作系統(tǒng)嵌入式實(shí)時(shí)操作系統(tǒng)l

9、前臺(tái)與后臺(tái)前臺(tái)與后臺(tái)l多任務(wù),任務(wù)優(yōu)先級(jí),調(diào)度多任務(wù),任務(wù)優(yōu)先級(jí),調(diào)度l非占先式與占先式、可重入型函數(shù)非占先式與占先式、可重入型函數(shù)173.1 操作系統(tǒng)的分類操作系統(tǒng)的分類(1 1)順序執(zhí)行系統(tǒng):系統(tǒng)內(nèi)只含有一個(gè)程序,獨(dú)占)順序執(zhí)行系統(tǒng):系統(tǒng)內(nèi)只含有一個(gè)程序,獨(dú)占CPUCPU的運(yùn)的運(yùn)行時(shí)間,按語(yǔ)句順序執(zhí)行該程序,直至執(zhí)行完畢,另一程行時(shí)間,按語(yǔ)句順序執(zhí)行該程序,直至執(zhí)行完畢,另一程序才能啟動(dòng)運(yùn)行。如序才能啟動(dòng)運(yùn)行。如DOSDOS操作系統(tǒng)。操作系統(tǒng)。(2 2)分時(shí)操作系統(tǒng):系統(tǒng)內(nèi)同時(shí)可以有多個(gè)程序運(yùn)行,把)分時(shí)操作系統(tǒng):系統(tǒng)內(nèi)同時(shí)可以有多個(gè)程序運(yùn)行,把CPUCPU的時(shí)間分按順序分成若干片,每個(gè)時(shí)

10、間片內(nèi)執(zhí)行不同的時(shí)間分按順序分成若干片,每個(gè)時(shí)間片內(nèi)執(zhí)行不同的程序。如的程序。如UNIXUNIX(3 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ù)才能占有CPUCPU的控的控制權(quán)。制權(quán)。18按實(shí)時(shí)性分類按實(shí)時(shí)性分類l強(qiáng)實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒或微秒級(jí)(數(shù)控強(qiáng)實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒或微秒級(jí)(數(shù)控機(jī)床);機(jī)床);l一般實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒幾秒的數(shù)量一般實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒幾秒的數(shù)量級(jí)上,其實(shí)時(shí)性的要求比強(qiáng)實(shí)時(shí)系統(tǒng)要差一些(電子菜譜級(jí)上,

11、其實(shí)時(shí)性的要求比強(qiáng)實(shí)時(shí)系統(tǒng)要差一些(電子菜譜的查詢)。的查詢)。l弱實(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ī)械)。191 1)循環(huán)輪詢系統(tǒng):()循環(huán)輪詢系統(tǒng):(Polling LoopPolling Loop)最簡(jiǎn)單的軟件結(jié)構(gòu)是循環(huán)輪詢,程序依次檢查系統(tǒng)的每一個(gè)輸入條最簡(jiǎn)單的軟件結(jié)構(gòu)是循環(huán)輪詢,程序依次檢查系統(tǒng)的每一個(gè)輸入條件,一旦條件成立就進(jìn)行相應(yīng)的處理。件,一旦條件成立就進(jìn)行相應(yīng)的處理。Initialize()While(true) if(condition_1) action_1(); if(condition_2) act

12、ion_2(); if(condition_n) acition_n();按軟件結(jié)構(gòu)分類按軟件結(jié)構(gòu)分類202 2)事件驅(qū)動(dòng)系統(tǒng):()事件驅(qū)動(dòng)系統(tǒng):(Event-Driven systemEvent-Driven system)事件驅(qū)動(dòng)系統(tǒng)是能對(duì)外部事件直接響應(yīng)的系統(tǒng)。它包括前后臺(tái)、事件驅(qū)動(dòng)系統(tǒng)是能對(duì)外部事件直接響應(yīng)的系統(tǒng)。它包括前后臺(tái)、實(shí)時(shí)多任務(wù)、多處理器等,是嵌入式實(shí)時(shí)系統(tǒng)的主要形式。實(shí)時(shí)多任務(wù)、多處理器等,是嵌入式實(shí)時(shí)系統(tǒng)的主要形式。應(yīng)用程序是一個(gè)無(wú)限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的應(yīng)用程序是一個(gè)無(wú)限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成后臺(tái)行為(操作,這部分可以

13、看成后臺(tái)行為(backgroundbackground)。中斷服務(wù)程序處理)。中斷服務(wù)程序處理異步事件,這部分可以看成前臺(tái)行為(異步事件,這部分可以看成前臺(tái)行為(foreground)foreground)。后臺(tái)也可以叫做任務(wù)級(jí),前臺(tái)也叫中斷級(jí)。后臺(tái)也可以叫做任務(wù)級(jí),前臺(tái)也叫中斷級(jí)。例如,很多基于微處理器的產(chǎn)品采用前后臺(tái)系統(tǒng)設(shè)計(jì),如例如,很多基于微處理器的產(chǎn)品采用前后臺(tái)系統(tǒng)設(shè)計(jì),如微波爐微波爐、電話機(jī)、玩具等。從省電的角度出發(fā),平時(shí)微處理器處在停機(jī)狀態(tài)電話機(jī)、玩具等。從省電的角度出發(fā),平時(shí)微處理器處在停機(jī)狀態(tài),所有的事都靠中斷服務(wù)來(lái)完成。,所有的事都靠中斷服務(wù)來(lái)完成。21前后臺(tái)系統(tǒng)(后臺(tái)循環(huán)、

14、前臺(tái)中斷)前后臺(tái)系統(tǒng)(后臺(tái)循環(huán)、前臺(tái)中斷)ISRISR后臺(tái)后臺(tái) 前臺(tái)前臺(tái)ISR時(shí)間時(shí)間22l代碼的臨界區(qū)也稱為臨界區(qū),指處理時(shí)不可分割的代碼。代碼的臨界區(qū)也稱為臨界區(qū),指處理時(shí)不可分割的代碼。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。l在進(jìn)入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完以后要在進(jìn)入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完以后要立即開中斷(在任務(wù)切換時(shí),地址、指令、數(shù)據(jù)等寄存器立即開中斷(在任務(wù)切換時(shí),地址、指令、數(shù)據(jù)等寄存器堆棧保護(hù))。堆棧保護(hù))。代碼的臨界區(qū)代碼的臨界區(qū)23多任務(wù)(任務(wù)、進(jìn)程和線程)多任務(wù)(任務(wù)、進(jìn)程和線程)CPUCP

15、U寄存器寄存器任務(wù)任務(wù)控制控制塊塊1 1任務(wù)任務(wù)控制控制塊塊2 2任務(wù)任務(wù)控制控制塊塊n n休眠、就緒、運(yùn)行、掛起、被中斷休眠、就緒、運(yùn)行、掛起、被中斷任務(wù)任務(wù)1 1任務(wù)任務(wù)2 2任務(wù)任務(wù)n nCPUCPU寄存器寄存器24一個(gè)任務(wù),也稱作一個(gè)線程,是一個(gè)簡(jiǎn)單的運(yùn)行一個(gè)任務(wù),也稱作一個(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í), 有它自己的一套有它自己的一套CPUCPU寄存器和自己寄存器和自己的??臻g。的??臻g。多任務(wù)運(yùn)行的實(shí)現(xiàn)實(shí)際上是靠多任務(wù)運(yùn)行的實(shí)現(xiàn)實(shí)際上是靠CPUCPU(中央處理單

16、元(中央處理單元)在許多任務(wù)之間轉(zhuǎn)換、調(diào)度。)在許多任務(wù)之間轉(zhuǎn)換、調(diào)度。 CPUCPU只有一個(gè),輪番服務(wù)于一系列任務(wù)中的某一只有一個(gè),輪番服務(wù)于一系列任務(wù)中的某一個(gè)。多任務(wù)運(yùn)行使個(gè)。多任務(wù)運(yùn)行使CPUCPU的利用率得到最大的發(fā)揮,并使的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。應(yīng)用程序模塊化。在實(shí)際應(yīng)用中,多任務(wù)的最大特點(diǎn)是,開發(fā)人員在實(shí)際應(yīng)用中,多任務(wù)的最大特點(diǎn)是,開發(fā)人員可以將很復(fù)雜的應(yīng)用程序?qū)哟位C合實(shí)驗(yàn)(時(shí)鐘、位可以將很復(fù)雜的應(yīng)用程序?qū)哟位C合實(shí)驗(yàn)(時(shí)鐘、位圖、圖、USBUSB、KEYKEY)。)。25任務(wù)的狀態(tài)任務(wù)的狀態(tài)R RU UN NN NI IN NG GR RE EA AD

17、DY YO OS ST Ta as sk kC Cr re ea at te e( () )O OS ST Ta as sk kC Cr re ea at te eE Ex xt t( () )T Ta as sk k i is s P Pr re ee em mp pt te ed dO OS SM MB Bo ox xP Pe en nd d( () )O OS SQ QP Pe en nd d( () )O OS SS Se em mP Pe en nd d( () )O OS ST Ta as sk kS Su us sp pe en nd d( () )O OS ST Ti im m

18、e eD Dl ly y( () )O OS ST Ti im me eD Dl ly yH HM MS SM M( () )O OS SM MB Bo ox xP Po os st t( () )O OS SQ QP Po os st t( () )O OS SQ QP Po os st tF Fr ro on nt t( () )O OS SS Se em mP Po os st t( () )O OS ST Ta as sk kR Re es su um me e( () )O OS ST Ti im me eD Dl ly yR Re es su um me e( () )O OS S

19、T Ti im me eT Ti ic ck k( () )O OS ST Ta as sk kD De el l( () )D DO OR RM MA AN NT TW WA AI IT TI IN NG GO OS SS St ta ar rt t( () )O OS SI In nt tE Ex xi it t( () )O OS S_ _T TA AS SK K_ _S SW W( () )O OS ST Ta as sk kD De el l( () )O OS ST Ta as sk kD De el l( () )I In nt te er rr ru up pt tO OS S

20、I In nt tE Ex xi it t( () )I IS SR R26系統(tǒng)內(nèi)核(系統(tǒng)內(nèi)核(Kernel)與調(diào)度(與調(diào)度(Scheduler)l多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個(gè)任務(wù),或者說(shuō)為每個(gè)任多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個(gè)任務(wù),或者說(shuō)為每個(gè)任務(wù)分配務(wù)分配CPUCPU時(shí)間,并且負(fù)責(zé)任務(wù)之間的通信。時(shí)間,并且負(fù)責(zé)任務(wù)之間的通信。l內(nèi)核提供的基本服務(wù)是任務(wù)切換。內(nèi)核本身也增加了應(yīng)用內(nèi)核提供的基本服務(wù)是任務(wù)切換。內(nèi)核本身也增加了應(yīng)用程序的額外負(fù)荷,代碼空間增加程序的額外負(fù)荷,代碼空間增加ROMROM用量,內(nèi)核本身的數(shù)用量,內(nèi)核本身的數(shù)據(jù)結(jié)構(gòu)增加了據(jù)結(jié)構(gòu)增加了RAMRAM的用量。內(nèi)核本身對(duì)的用量。

21、內(nèi)核本身對(duì)CPUCPU的占用時(shí)間一般的占用時(shí)間一般在在2 2到到5 5個(gè)百分點(diǎn)之間。個(gè)百分點(diǎn)之間。l調(diào)度(調(diào)度(SchedulerScheduler)是內(nèi)核的主要職責(zé)之一,就是要決定)是內(nèi)核的主要職責(zé)之一,就是要決定該輪到哪個(gè)任務(wù)運(yùn)行了。多數(shù)實(shí)時(shí)內(nèi)核是基于優(yōu)先級(jí)調(diào)度該輪到哪個(gè)任務(wù)運(yùn)行了。多數(shù)實(shí)時(shí)內(nèi)核是基于優(yōu)先級(jí)調(diào)度法的。每個(gè)任務(wù)根據(jù)其重要程度的不同被賦予一定的優(yōu)先法的。每個(gè)任務(wù)根據(jù)其重要程度的不同被賦予一定的優(yōu)先級(jí)?;趦?yōu)先級(jí)的調(diào)度法指,級(jí)?;趦?yōu)先級(jí)的調(diào)度法指,CPUCPU總是讓處在就緒態(tài)的優(yōu)總是讓處在就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)先運(yùn)行。先級(jí)最高的任務(wù)先運(yùn)行。27任務(wù)優(yōu)先級(jí)任務(wù)優(yōu)先級(jí)l靜態(tài)優(yōu)先級(jí)

22、靜態(tài)優(yōu)先級(jí) 應(yīng)用程序執(zhí)行過(guò)程中諸任務(wù)優(yōu)先級(jí)不變,則稱之為應(yīng)用程序執(zhí)行過(guò)程中諸任務(wù)優(yōu)先級(jí)不變,則稱之為靜態(tài)優(yōu)先級(jí)。在靜態(tài)優(yōu)先級(jí)系統(tǒng)中,諸任務(wù)以及它們的靜態(tài)優(yōu)先級(jí)。在靜態(tài)優(yōu)先級(jí)系統(tǒng)中,諸任務(wù)以及它們的時(shí)間約束在程序編譯時(shí)是已知的時(shí)間約束在程序編譯時(shí)是已知的 l動(dòng)態(tài)優(yōu)先級(jí)動(dòng)態(tài)優(yōu)先級(jí) 應(yīng)用程序執(zhí)行過(guò)程中,任務(wù)的優(yōu)先級(jí)是可變的,則應(yīng)用程序執(zhí)行過(guò)程中,任務(wù)的優(yōu)先級(jí)是可變的,則稱之為動(dòng)態(tài)優(yōu)先級(jí)。實(shí)時(shí)內(nèi)核應(yīng)當(dāng)避免出現(xiàn)優(yōu)先級(jí)反轉(zhuǎn)稱之為動(dòng)態(tài)優(yōu)先級(jí)。實(shí)時(shí)內(nèi)核應(yīng)當(dāng)避免出現(xiàn)優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題。問(wèn)題。 28優(yōu)先級(jí)反轉(zhuǎn)優(yōu)先級(jí)反轉(zhuǎn)Task 1 (H)Task 2 (M)Task 3 (L)Priority InversionTa

23、sk 3 Get SemaphoreTask 1 Preempts Task 3Task 1 Tries to get SemaphoreTask 2 Preempts Task 3Task 3 ResumesTask 3 Releases the Semaphore( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )( (7 7) )( (8 8) )( (9 9) )( (1 10 0) )( (1 11 1) )( (1 12 2) )29信號(hào)量信號(hào)量(Semaphore)l信號(hào)量是信號(hào)量是6060年代中期年代中期Edgser Di

24、jkstra Edgser Dijkstra 發(fā)明的。信號(hào)量發(fā)明的。信號(hào)量實(shí)際上是一種約定機(jī)制,在多任務(wù)內(nèi)核中普遍使用實(shí)際上是一種約定機(jī)制,在多任務(wù)內(nèi)核中普遍使用. .信信號(hào)量用于號(hào)量用于:u控制共享資源的使用權(quán)控制共享資源的使用權(quán)( (滿足互斥條件滿足互斥條件) )u標(biāo)志某事件的發(fā)生標(biāo)志某事件的發(fā)生u使兩個(gè)任務(wù)的行為同步使兩個(gè)任務(wù)的行為同步l信號(hào)與信號(hào)量在英文中都叫做信號(hào)與信號(hào)量在英文中都叫做SemaphoreSemaphore,并不加以區(qū),并不加以區(qū)分,而說(shuō)它有兩種類型,二進(jìn)制型分,而說(shuō)它有兩種類型,二進(jìn)制型(binary)(binary)和計(jì)數(shù)器型和計(jì)數(shù)器型(counting) (cou

25、nting) 30死鎖死鎖(或抱死或抱死) Deadlock 死鎖也稱作抱死,指兩個(gè)任務(wù)無(wú)限期地互相等待對(duì)方控制死鎖也稱作抱死,指兩個(gè)任務(wù)無(wú)限期地互相等待對(duì)方控制著的資源。設(shè)任務(wù)著的資源。設(shè)任務(wù)T1T1正獨(dú)享資源正獨(dú)享資源R1R1,任務(wù),任務(wù)T2T2在獨(dú)享資源在獨(dú)享資源T2T2,而此時(shí),而此時(shí)T1T1又要獨(dú)享又要獨(dú)享R2R2,T2T2也要獨(dú)享也要獨(dú)享R1R1,于是哪個(gè)任務(wù)都,于是哪個(gè)任務(wù)都沒(méi)法繼續(xù)執(zhí)行了,發(fā)生了死鎖。最簡(jiǎn)單的防止發(fā)生死鎖的沒(méi)法繼續(xù)執(zhí)行了,發(fā)生了死鎖。最簡(jiǎn)單的防止發(fā)生死鎖的方法是讓每個(gè)任務(wù)都:方法是讓每個(gè)任務(wù)都:l先得到全部需要的資源再做下一步的工作先得到全部需要的資源再做下一步

26、的工作l用同樣的順序去申請(qǐng)多個(gè)資源用同樣的順序去申請(qǐng)多個(gè)資源l釋放資源時(shí)使用相反的順序釋放資源時(shí)使用相反的順序 31本節(jié)提要本節(jié)提要嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式嵌入式BSP的基本概念的基本概念嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)設(shè)計(jì)方法嵌入式系統(tǒng)設(shè)計(jì)方法一個(gè)嵌入式設(shè)計(jì)方法實(shí)例一個(gè)嵌入式設(shè)計(jì)方法實(shí)例32嵌入式系統(tǒng)的軟/硬件框架機(jī)械裝置機(jī)械裝置嵌入式嵌入式微處理器微處理器SDRAMSDRAMROMROMI/OI/OA/DA/DD/AD/A人機(jī)交互接口人機(jī)交互接口通用接口通用接口實(shí)時(shí)操作系統(tǒng)(實(shí)時(shí)操作系統(tǒng)(RTOS)RTOS)圖形用戶圖形用戶接口接口BSP/HAL 硬件抽象層

27、/板極支持包BSP/HAL 硬件抽象層/板極支持包任務(wù)管理任務(wù)管理文件系統(tǒng)文件系統(tǒng)應(yīng)用程序應(yīng)用程序嵌入式計(jì)算機(jī)系統(tǒng)嵌入式計(jì)算機(jī)系統(tǒng)傳感器1傳感器1傳感器2傳感器2傳感器N傳感器N.驅(qū)動(dòng)器1驅(qū)動(dòng)器1驅(qū)動(dòng)器2驅(qū)動(dòng)器2驅(qū)動(dòng)器N驅(qū)動(dòng)器N.硬件層硬件層軟件層軟件層中間層中間層功能層功能層被控對(duì)象被控對(duì)象33基于知識(shí)平臺(tái)的開發(fā)方法基于知識(shí)平臺(tái)的開發(fā)方法34嵌入式系統(tǒng)設(shè)計(jì)步驟l系統(tǒng)需求分析:確定設(shè)計(jì)任務(wù)和設(shè)計(jì)目標(biāo),并提煉出設(shè)計(jì)規(guī)格說(shuō)系統(tǒng)需求分析:確定設(shè)計(jì)任務(wù)和設(shè)計(jì)目標(biāo),并提煉出設(shè)計(jì)規(guī)格說(shuō)明書,作為正式設(shè)計(jì)指導(dǎo)和驗(yàn)收的標(biāo)準(zhǔn)。系統(tǒng)的需求一般分功能明書,作為正式設(shè)計(jì)指導(dǎo)和驗(yàn)收的標(biāo)準(zhǔn)。系統(tǒng)的需求一般分功能性需求和非

28、功能性需求兩方面。功能性需求是系統(tǒng)的基本功能,性需求和非功能性需求兩方面。功能性需求是系統(tǒng)的基本功能,如輸入輸出信號(hào)、操作方式等;非功能需求包括系統(tǒng)性能、成本如輸入輸出信號(hào)、操作方式等;非功能需求包括系統(tǒng)性能、成本、功耗、體積、重量等因素。、功耗、體積、重量等因素。l體系結(jié)構(gòu)設(shè)計(jì):描述系統(tǒng)如何實(shí)現(xiàn)所述的功能和非功能需求,包體系結(jié)構(gòu)設(shè)計(jì):描述系統(tǒng)如何實(shí)現(xiàn)所述的功能和非功能需求,包括對(duì)硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選括對(duì)硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選型等。一個(gè)好的體系結(jié)構(gòu)是設(shè)計(jì)成功與否的關(guān)鍵。型等。一個(gè)好的體系結(jié)構(gòu)是設(shè)計(jì)成功與否的關(guān)鍵。l硬件硬件/ /軟件

29、協(xié)同設(shè)計(jì):基于體系結(jié)構(gòu),對(duì)系統(tǒng)的軟件、硬件進(jìn)行詳軟件協(xié)同設(shè)計(jì):基于體系結(jié)構(gòu),對(duì)系統(tǒng)的軟件、硬件進(jìn)行詳細(xì)設(shè)計(jì)。為了縮短產(chǎn)品開發(fā)周期,設(shè)計(jì)往往是并行的。應(yīng)該說(shuō),細(xì)設(shè)計(jì)。為了縮短產(chǎn)品開發(fā)周期,設(shè)計(jì)往往是并行的。應(yīng)該說(shuō),嵌入式系統(tǒng)設(shè)計(jì)的工作大部分都集中在軟件設(shè)計(jì)上,采用面向?qū)η度胧较到y(tǒng)設(shè)計(jì)的工作大部分都集中在軟件設(shè)計(jì)上,采用面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)、模塊化設(shè)計(jì)是現(xiàn)代軟件工程經(jīng)常采用的象技術(shù)、軟件組件技術(shù)、模塊化設(shè)計(jì)是現(xiàn)代軟件工程經(jīng)常采用的方法。方法。l系統(tǒng)集成:把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進(jìn)行調(diào)系統(tǒng)集成:把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)單元設(shè)計(jì)過(guò)程中的錯(cuò)誤。試

30、,發(fā)現(xiàn)并改進(jìn)單元設(shè)計(jì)過(guò)程中的錯(cuò)誤。l系統(tǒng)測(cè)試:對(duì)設(shè)計(jì)好的系統(tǒng)進(jìn)行測(cè)試,看其是否滿足規(guī)格說(shuō)明書系統(tǒng)測(cè)試:對(duì)設(shè)計(jì)好的系統(tǒng)進(jìn)行測(cè)試,看其是否滿足規(guī)格說(shuō)明書中給定的功能要求。中給定的功能要求。35嵌入式開發(fā)工具與開發(fā)環(huán)境嵌入式開發(fā)工具與開發(fā)環(huán)境36開始新工程編輯源代碼交叉編譯連接仿真調(diào)試程序下載臺(tái)式/筆記本式PC機(jī)并口JTAG仿真器網(wǎng)絡(luò)接口JTAG接口USB接口串口0ARM300開發(fā)板串口USB接口以太網(wǎng)口ARMSDTDebugArmDvkARM7處理器執(zhí)行監(jiān)測(cè)結(jié)果超級(jí)終端ARM300開發(fā)板實(shí)驗(yàn)流程結(jié)束嵌入式軟件開發(fā)流程嵌入式軟件開發(fā)流程37開發(fā)平臺(tái)簡(jiǎn)介開發(fā)平臺(tái)簡(jiǎn)介網(wǎng)口JTAGUSB串口0擴(kuò)展板接口A

31、RM微處理器S3C44B0X擴(kuò)展口2網(wǎng)卡JTAG仿真器ARM300開發(fā)板集成開發(fā)環(huán)境運(yùn)行平臺(tái)38幾種常用的開發(fā)方法幾種常用的開發(fā)方法l指令集模擬器指令集模擬器 一種利用一種利用PCPC機(jī)端的仿真開發(fā)軟件模擬調(diào)試的方法。機(jī)端的仿真開發(fā)軟件模擬調(diào)試的方法。l駐留監(jiān)控軟件駐留監(jiān)控軟件 駐留監(jiān)控程序運(yùn)行在目標(biāo)板上,駐留監(jiān)控程序運(yùn)行在目標(biāo)板上,PCPC機(jī)端調(diào)試軟件可通過(guò)并口、串機(jī)端調(diào)試軟件可通過(guò)并口、串口、網(wǎng)口與之交互,以完成程序執(zhí)行、存儲(chǔ)器及寄存器讀寫、斷口、網(wǎng)口與之交互,以完成程序執(zhí)行、存儲(chǔ)器及寄存器讀寫、斷點(diǎn)設(shè)置等任務(wù)點(diǎn)設(shè)置等任務(wù)lJTAGJTAG仿真器仿真器 通過(guò)通過(guò)ARMARM芯片的芯片的JT

32、AGJTAG邊界掃描口與邊界掃描口與ARMARM核進(jìn)行通信,不占用目標(biāo)板核進(jìn)行通信,不占用目標(biāo)板的資源,是目前使用最廣泛的調(diào)試手段的資源,是目前使用最廣泛的調(diào)試手段l在線仿真器在線仿真器 使用仿真頭代替目標(biāo)板上的使用仿真頭代替目標(biāo)板上的CPUCPU,可以完全仿真,可以完全仿真ARMARM芯片的行為。芯片的行為。但結(jié)構(gòu)較復(fù)雜,價(jià)格昂貴,通常用于但結(jié)構(gòu)較復(fù)雜,價(jià)格昂貴,通常用于ARMARM硬件開發(fā)中硬件開發(fā)中39l需求分析與評(píng)估需求分析與評(píng)估l功能定義與軟硬件選型功能定義與軟硬件選型l概要設(shè)計(jì)與軟硬件劃分概要設(shè)計(jì)與軟硬件劃分l軟硬件協(xié)同詳細(xì)設(shè)計(jì)軟硬件協(xié)同詳細(xì)設(shè)計(jì)l集成調(diào)試集成調(diào)試l維護(hù)與升級(jí)維護(hù)與

33、升級(jí)設(shè)計(jì)步驟設(shè)計(jì)步驟4041嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)ARMARM與與 C/OS-C/OS-基于基于ARMARM的硬件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的硬件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)42本節(jié)提要本節(jié)提要基于基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)的硬件系統(tǒng)體系結(jié)構(gòu)存儲(chǔ)器接口設(shè)計(jì)存儲(chǔ)器接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)I/OI/O接口設(shè)計(jì)接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)其它通訊接口設(shè)計(jì)其它通訊接口設(shè)計(jì)43基于ARM的硬件設(shè)計(jì)主要介紹基于主要介紹基于ARM7ARM7的嵌入式硬件開發(fā)平臺(tái)的設(shè)計(jì)方的嵌入式硬件開發(fā)平臺(tái)的設(shè)計(jì)方法,包括結(jié)構(gòu)、主要接口、存儲(chǔ)器選用方案以及外設(shè)、顯法,包括結(jié)構(gòu)、主要接口、存儲(chǔ)器選用方案以及外設(shè)

34、、顯示等方面的內(nèi)容。示等方面的內(nèi)容。 l嵌入式硬件開發(fā)平臺(tái)的體系結(jié)構(gòu)嵌入式硬件開發(fā)平臺(tái)的體系結(jié)構(gòu)l外圍存儲(chǔ)器接口設(shè)計(jì)方法外圍存儲(chǔ)器接口設(shè)計(jì)方法l鍵盤、鍵盤、LCDLCD等人機(jī)交互接口的設(shè)計(jì)等人機(jī)交互接口的設(shè)計(jì)l觸摸屏的設(shè)計(jì)觸摸屏的設(shè)計(jì)l以太網(wǎng)設(shè)計(jì)以太網(wǎng)設(shè)計(jì)lCANCAN總線設(shè)計(jì)總線設(shè)計(jì)44Samsung S3C44B0XlSamsung S3C44B0XSamsung S3C44B0X微處理器是三星公司專為手持設(shè)備和微處理器是三星公司專為手持設(shè)備和一般應(yīng)用提供的高性價(jià)比和高性能的微控制器解決方案一般應(yīng)用提供的高性價(jià)比和高性能的微控制器解決方案,它使用,它使用ARM7TDMIARM7TDMI核,

35、工作在核,工作在66MHZ66MHZ。為了降低系統(tǒng)總。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件:成本和減少外圍器件,這款芯片中還集成了下列部件:l8KB Cache8KB Cache、外部存儲(chǔ)器控制器、外部存儲(chǔ)器控制器、LCDLCD控制器、控制器、4 4個(gè)個(gè)DMADMA通通道、道、2 2通道通道UARTUART、1 1個(gè)多主個(gè)多主I2CI2C總線控制器、總線控制器、1 1個(gè)個(gè)IISIIS總線總線控制器,控制器,5 5通道通道PWMPWM定時(shí)器及一個(gè)內(nèi)部定時(shí)器、定時(shí)器及一個(gè)內(nèi)部定時(shí)器、7171個(gè)通用個(gè)通用I/OI/O口、口、8 8個(gè)外部中斷源、實(shí)時(shí)時(shí)鐘、個(gè)外部中斷源、實(shí)時(shí)時(shí)鐘

36、、8 8通道通道1010位位ADCADC等。等。45基于ARM的嵌入式硬件平臺(tái)體系結(jié)構(gòu)46芯片體系結(jié)構(gòu)47S3C44B0X存儲(chǔ)系統(tǒng)的特征l支持?jǐn)?shù)據(jù)存儲(chǔ)的大支持?jǐn)?shù)據(jù)存儲(chǔ)的大/ /小端選擇小端選擇( (通過(guò)外部引腳進(jìn)行選擇通過(guò)外部引腳進(jìn)行選擇) )l地址空間:具有地址空間:具有8 8個(gè)存儲(chǔ)體,每個(gè)存儲(chǔ)體可達(dá)個(gè)存儲(chǔ)體,每個(gè)存儲(chǔ)體可達(dá)32Mb32Mb,總,總共可達(dá)共可達(dá)256Mb256Mb。l對(duì)所有存儲(chǔ)體的訪問(wèn)大小均可進(jìn)行改變(對(duì)所有存儲(chǔ)體的訪問(wèn)大小均可進(jìn)行改變(8 8位位1616位位3232位)位)l8 8個(gè)存儲(chǔ)體中,個(gè)存儲(chǔ)體中,Bank0Bank0Bank5Bank5可支持可支持ROMROM、SR

37、AMSRAM;Bank6Bank6、Bank7Bank7可支持可支持ROMROM、SRAMSRAM和和FPFPEDOEDOSDRAMSDRAM等。等。l7 7個(gè)存儲(chǔ)體的起始地址固定,個(gè)存儲(chǔ)體的起始地址固定,1 1個(gè)存儲(chǔ)體的起始地址可個(gè)存儲(chǔ)體的起始地址可變。變。 48復(fù)位后的S3C44B0X的存儲(chǔ)器映射表 2MB/4MB/8MB/16MB/32MB 2MB/4MB/8MB/16MB/32MB 32MB 32MB 32MB 32MB 32MB 28MB 256MB SA27:0 可存取 區(qū)域 參 見 表 7-1 特殊功能 寄存器(4MB) SROM (nGCS1) SROM (nGCS1) SRO

38、M (nGCS2) SROM (nGCS3) SROM (nGCS4) SROM (nGCS5) SROM/DRAM/SDRAM (nGCS6) SROM/DRAM/SDRAM (Ngcs7) 0 x1000_0000 0 x0e00_0000 0 x0c00_0000 0 x0e00_0000 0 x0800_0000 0 x0600_0000 0 x0400_0000 0 x0200_0000 0 x01c0_0000 0 x0000_0000 49系統(tǒng)的存儲(chǔ)空間分配lBank0:Bank0:兩片兩片512KFlash512KFlash,放置系統(tǒng)引導(dǎo)程序,系統(tǒng)上電復(fù)位后,放置系統(tǒng)引導(dǎo)程序,

39、系統(tǒng)上電復(fù)位后,PCPC指針自動(dòng)指向指針自動(dòng)指向Bank0Bank0的第一個(gè)單元,進(jìn)行系統(tǒng)自舉。的第一個(gè)單元,進(jìn)行系統(tǒng)自舉。lBank1Bank1:K9F2808K9F2808(三星(三星 16Mbyte Flash16Mbyte Flash),非線性尋址。具體的),非線性尋址。具體的時(shí)序可以參考時(shí)序可以參考K9F2808K9F2808的的datasheetdatasheetlBank2Bank2:USBN9603USBN9603。USBUSB設(shè)備端接口芯片,占用系統(tǒng)外部中斷設(shè)備端接口芯片,占用系統(tǒng)外部中斷0 0。8 8位數(shù)據(jù)總線。位數(shù)據(jù)總線。lBank3Bank3、Bank4Bank4未接設(shè)

40、備??梢怨U(kuò)展使用未接設(shè)備。可以供擴(kuò)展使用lBank5Bank5:RTL8019ASRTL8019AS,ISAISA總線兼容的總線兼容的10M10M以太網(wǎng)(以太網(wǎng)(PHYPHYMACMAC層)控層)控制芯片。占用系統(tǒng)外部中斷制芯片。占用系統(tǒng)外部中斷1 1,1616位數(shù)據(jù)總線位數(shù)據(jù)總線50lBank6Bank6:SDRAMSDRAM,起始地址為,起始地址為0 xC0000000 xC000000。在。在SDRAMSDRAM中,前中,前512Kbyte512Kbyte的空間劃分出來(lái),作為系統(tǒng)的的空間劃分出來(lái),作為系統(tǒng)的LCDLCD顯示緩沖區(qū)使用(更新其中的數(shù)顯示緩沖區(qū)使用(更新其中的數(shù)據(jù),就可以更

41、新?lián)?,就可以更新LCDLCD的顯示)。系統(tǒng)的程序存儲(chǔ)空間從的顯示)。系統(tǒng)的程序存儲(chǔ)空間從0 xC0800000 xC080000開始。也就是,引導(dǎo)系統(tǒng)的時(shí)候,需要把開始。也就是,引導(dǎo)系統(tǒng)的時(shí)候,需要把system.binsystem.bin文件復(fù)制到文件復(fù)制到0 xC0800000 xC080000開始的地址空間,把開始的地址空間,把PCPC指針指向指針指向0 xC0800000 xC080000。lBank7Bank7:未使用??梢詳U(kuò)展另一片:未使用??梢詳U(kuò)展另一片SDRAMSDRAM,或者其他的外設(shè)。,或者其他的外設(shè)。l系統(tǒng)的同步串行口(系統(tǒng)的同步串行口(SIOSIO),連接著觸摸屏控制芯

42、片),連接著觸摸屏控制芯片F(xiàn)M7843FM7843(與(與ADS7843ADS7843完全兼容)。在同步串行口上,還可以擴(kuò)展其他的芯片。完全兼容)。在同步串行口上,還可以擴(kuò)展其他的芯片??靠縄OIO口控制設(shè)備的片選信號(hào)(口控制設(shè)備的片選信號(hào)(CSCS)來(lái)防止設(shè)備的沖突。)來(lái)防止設(shè)備的沖突。l注:系統(tǒng)的擴(kuò)展接口上,注:系統(tǒng)的擴(kuò)展接口上,A0A0的標(biāo)號(hào),連接在的標(biāo)號(hào),連接在S3C44B0XS3C44B0X的的ADDR1ADDR1上,上,后面的地址依次向后錯(cuò)位。后面的地址依次向后錯(cuò)位。51本節(jié)提要本節(jié)提要基于基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)的硬件系統(tǒng)體系結(jié)構(gòu)存儲(chǔ)器接口設(shè)計(jì)存儲(chǔ)器接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)網(wǎng)絡(luò)接

43、口設(shè)計(jì)I/OI/O接口設(shè)計(jì)接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)其它通訊接口設(shè)計(jì)其它通訊接口設(shè)計(jì)52S3C44B0X與FLASH的連接(Half Word方式)53l使用使用Bank0Bank0上的兩片上的兩片512Kb512Kb2 2來(lái)放置系統(tǒng)來(lái)放置系統(tǒng)BIOSBIOS,系統(tǒng)上電以后,系統(tǒng)上電以后,PCPC指針自動(dòng)指向指針自動(dòng)指向Bank0Bank0的第一個(gè)單元,開始進(jìn)行系統(tǒng)自舉。系統(tǒng)的第一個(gè)單元,開始進(jìn)行系統(tǒng)自舉。系統(tǒng)自舉完成以后,便從硬盤中將系統(tǒng)文件和用戶應(yīng)用程序復(fù)制到自舉完成以后,便從硬盤中將系統(tǒng)文件和用戶應(yīng)用程序復(fù)制到SDRAMSDRAM內(nèi)存中執(zhí)行。內(nèi)存中執(zhí)行。lBank1Bank

44、1上接上接16M16M非線性非線性FlashFlash,當(dāng)做系統(tǒng)硬盤使用,可以構(gòu)造文件,當(dāng)做系統(tǒng)硬盤使用,可以構(gòu)造文件系統(tǒng),存放海量數(shù)據(jù)。系統(tǒng),存放海量數(shù)據(jù)。l用用SDRAMSDRAM當(dāng)作系統(tǒng)內(nèi)存,只有當(dāng)作系統(tǒng)內(nèi)存,只有Bank6/Bank7Bank6/Bank7能支持能支持SDRAMSDRAM,所以將,所以將SDRAMSDRAM接在接在Bank6Bank6上。如果同時(shí)使用上。如果同時(shí)使用Bank6/Bank7Bank6/Bank7,則要求連接相,則要求連接相同容量的存儲(chǔ)器,而且其地址空間在物理上是連續(xù)的。同容量的存儲(chǔ)器,而且其地址空間在物理上是連續(xù)的。存儲(chǔ)器接口設(shè)計(jì)54關(guān)于BOOT ROMl

45、Bank0Bank0:系統(tǒng)的啟動(dòng):系統(tǒng)的啟動(dòng)ROMROM(Flash RomFlash Rom)。在系統(tǒng)復(fù)位的時(shí)候,處理)。在系統(tǒng)復(fù)位的時(shí)候,處理器的器的PCPC(程序計(jì)數(shù)器)指針指向(程序計(jì)數(shù)器)指針指向0 x00 x0地址。在地址。在Bank0Bank0的起始地址的的起始地址的程序,就是系統(tǒng)的初始化程序。此程序的主要任務(wù)是:程序,就是系統(tǒng)的初始化程序。此程序的主要任務(wù)是:1 1、管理處理器的中斷服務(wù)程序、管理處理器的中斷服務(wù)程序l處理器的中斷是從處理器的中斷是從0 x00 x0地址開始,引導(dǎo)地址開始,引導(dǎo)ROMROM負(fù)責(zé)把這一部分的中斷負(fù)責(zé)把這一部分的中斷映射到另一個(gè)區(qū)域,以便系統(tǒng)處理。具

46、體的做法,可以參考映射到另一個(gè)區(qū)域,以便系統(tǒng)處理。具體的做法,可以參考44binit.s44binit.s里面的代碼。(這部分代碼是三星主頁(yè)可以提供,它把里面的代碼。(這部分代碼是三星主頁(yè)可以提供,它把系統(tǒng)的中斷,映射到了不同的指針?biāo)赶虻牡刂房臻g(主要就是系統(tǒng)的中斷,映射到了不同的指針?biāo)赶虻牡刂房臻g(主要就是系統(tǒng)系統(tǒng)RAMRAM的空間)。的空間)。552 2、初始化硬件平臺(tái),配置其他的、初始化硬件平臺(tái),配置其他的BankBanklS3C44B0XS3C44B0X的的Bank0Bank0是通過(guò)外部的一個(gè)管腳提供的上拉、下拉電阻來(lái)是通過(guò)外部的一個(gè)管腳提供的上拉、下拉電阻來(lái)配置的。主要包括:數(shù)據(jù)

47、位數(shù)(配置的。主要包括:數(shù)據(jù)位數(shù)(8 8位、位、1616位、位、3232位),數(shù)據(jù)格式(位),數(shù)據(jù)格式(大端、小端)。而其他的大端、小端)。而其他的BankBank的配置,以及讀寫周期等信息是靠的配置,以及讀寫周期等信息是靠Bank0Bank0內(nèi)部的代碼配置相應(yīng)的寄存器來(lái)實(shí)現(xiàn)的。同時(shí),系統(tǒng)的引導(dǎo)內(nèi)部的代碼配置相應(yīng)的寄存器來(lái)實(shí)現(xiàn)的。同時(shí),系統(tǒng)的引導(dǎo)RomRom也負(fù)責(zé)配置系統(tǒng)的其他的一些寄存器,比如,系統(tǒng)的也負(fù)責(zé)配置系統(tǒng)的其他的一些寄存器,比如,系統(tǒng)的PLLPLL(鎖(鎖頻環(huán))配置,系統(tǒng)的頻環(huán))配置,系統(tǒng)的IOIO口等一些端口功能的配置等等??诘纫恍┒丝诠δ艿呐渲玫鹊?。563 3、系統(tǒng)自動(dòng)檢測(cè)、系

48、統(tǒng)自動(dòng)檢測(cè)l引導(dǎo)引導(dǎo)RomRom負(fù)責(zé)檢測(cè)系統(tǒng)的啟動(dòng)所必須的外設(shè)是否正常。主要是系統(tǒng)負(fù)責(zé)檢測(cè)系統(tǒng)的啟動(dòng)所必須的外設(shè)是否正常。主要是系統(tǒng)的的SDRAMSDRAM的檢測(cè)。的檢測(cè)。4 4、系統(tǒng)的軟件設(shè)置,更新系統(tǒng)(、系統(tǒng)的軟件設(shè)置,更新系統(tǒng)(system.binsystem.bin)l用戶可以在系統(tǒng)啟動(dòng)的時(shí)候,按任意鍵,進(jìn)入系統(tǒng)的軟件設(shè)置狀用戶可以在系統(tǒng)啟動(dòng)的時(shí)候,按任意鍵,進(jìn)入系統(tǒng)的軟件設(shè)置狀態(tài)。通過(guò)引導(dǎo)態(tài)。通過(guò)引導(dǎo)RomRom設(shè)置或者查看系統(tǒng)的一些軟件信息。包括:通過(guò)設(shè)置或者查看系統(tǒng)的一些軟件信息。包括:通過(guò)開啟開啟USBUSB端口;更新系統(tǒng)文件端口;更新系統(tǒng)文件system.binsystem.

49、bin;LCDLCD顯示測(cè)試;演示程顯示測(cè)試;演示程序的裝載測(cè)試;鍵盤測(cè)試;觸摸屏的坐標(biāo)校準(zhǔn);觸摸屏測(cè)試;以序的裝載測(cè)試;鍵盤測(cè)試;觸摸屏的坐標(biāo)校準(zhǔn);觸摸屏測(cè)試;以太網(wǎng)地址的設(shè)置等太網(wǎng)地址的設(shè)置等57本節(jié)提要本節(jié)提要基于基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)的硬件系統(tǒng)體系結(jié)構(gòu)存儲(chǔ)器接口設(shè)計(jì)存儲(chǔ)器接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)I/O接口設(shè)計(jì)接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)其它通訊接口設(shè)計(jì)其它通訊接口設(shè)計(jì)58嵌入式開發(fā)板與PC機(jī)的串行通訊嵌入式開發(fā)板和嵌入式開發(fā)板和PC機(jī)的通訊電纜可以按照如圖所示的方式機(jī)的通訊電纜可以按照如圖所示的方式連接。連接。59I/O接口設(shè)計(jì) I/OI/O接口電路也簡(jiǎn)稱接口

50、電路。它是主機(jī)和外圍設(shè)備之間交換信息接口電路也簡(jiǎn)稱接口電路。它是主機(jī)和外圍設(shè)備之間交換信息的連接部件(電路)。它在主機(jī)和外圍設(shè)備之間的信息交換中起的連接部件(電路)。它在主機(jī)和外圍設(shè)備之間的信息交換中起著橋梁和紐帶作用。設(shè)置接口電路的必要性:著橋梁和紐帶作用。設(shè)置接口電路的必要性:a)a)解決解決CPUCPU和外圍設(shè)備之間的時(shí)序配合和通信聯(lián)絡(luò)問(wèn)題。和外圍設(shè)備之間的時(shí)序配合和通信聯(lián)絡(luò)問(wèn)題。b)b)解決解決CPUCPU和外圍設(shè)備之間的數(shù)據(jù)格式轉(zhuǎn)換和匹配問(wèn)題。和外圍設(shè)備之間的數(shù)據(jù)格式轉(zhuǎn)換和匹配問(wèn)題。c)c)解決解決CPUCPU的負(fù)載能力和外圍設(shè)備端口選擇問(wèn)題。的負(fù)載能力和外圍設(shè)備端口選擇問(wèn)題。60I

51、/O接口的編址方式1 1)I/OI/O接口獨(dú)立編址:接口獨(dú)立編址:l這種編址方式是將存儲(chǔ)器地址空間和這種編址方式是將存儲(chǔ)器地址空間和I/OI/O接口地址空間分開設(shè)置,接口地址空間分開設(shè)置,互不影響。設(shè)有專門的輸入指令(互不影響。設(shè)有專門的輸入指令(ININ)和輸出指令()和輸出指令(OUTOUT)來(lái)完成)來(lái)完成I/OI/O操作。操作。2 2)I/OI/O接口與存儲(chǔ)器統(tǒng)一編址方式:接口與存儲(chǔ)器統(tǒng)一編址方式:l這種編址方式不區(qū)分存儲(chǔ)器地址空間和這種編址方式不區(qū)分存儲(chǔ)器地址空間和I/OI/O接口地址空間,把所有接口地址空間,把所有的的I/OI/O接口的端口都當(dāng)作是存儲(chǔ)器的一個(gè)單元對(duì)待,每個(gè)接口芯片接

52、口的端口都當(dāng)作是存儲(chǔ)器的一個(gè)單元對(duì)待,每個(gè)接口芯片都安排一個(gè)或幾個(gè)與存儲(chǔ)器統(tǒng)一編號(hào)的地址號(hào)。也不設(shè)專門的輸都安排一個(gè)或幾個(gè)與存儲(chǔ)器統(tǒng)一編號(hào)的地址號(hào)。也不設(shè)專門的輸入入/ /輸出指令,所有傳送和訪問(wèn)存儲(chǔ)器的指令都可用來(lái)對(duì)輸出指令,所有傳送和訪問(wèn)存儲(chǔ)器的指令都可用來(lái)對(duì)I/OI/O接口接口操作。操作。61兩種編址方式有各自的優(yōu)缺點(diǎn)1 1)獨(dú)立編址方式:)獨(dú)立編址方式:l主要優(yōu)點(diǎn):內(nèi)存地址空間與主要優(yōu)點(diǎn):內(nèi)存地址空間與I/OI/O接口地址空間分開,互不影響,譯接口地址空間分開,互不影響,譯碼電路較簡(jiǎn)單,并設(shè)有專門的碼電路較簡(jiǎn)單,并設(shè)有專門的I/OI/O指令,所以編程序易于區(qū)分,且指令,所以編程序易于區(qū)

53、分,且執(zhí)行時(shí)間短,快速性好。執(zhí)行時(shí)間短,快速性好。l缺點(diǎn):只用缺點(diǎn):只用I/OI/O指令訪問(wèn)指令訪問(wèn)I/OI/O端口,功能有限且要采用專用端口,功能有限且要采用專用I/OI/O周期周期和專用和專用I/OI/O控制線,使微處理器復(fù)雜化??刂凭€,使微處理器復(fù)雜化。2 2)統(tǒng)一編址方式)統(tǒng)一編址方式l主要優(yōu)點(diǎn):訪問(wèn)內(nèi)存的指令都可用于主要優(yōu)點(diǎn):訪問(wèn)內(nèi)存的指令都可用于I/OI/O操作,數(shù)據(jù)處理功能強(qiáng);操作,數(shù)據(jù)處理功能強(qiáng);同時(shí)同時(shí)I/OI/O接口可與存儲(chǔ)器部分共用譯碼和控制電路。接口可與存儲(chǔ)器部分共用譯碼和控制電路。l缺點(diǎn):一是缺點(diǎn):一是I/OI/O接口要占用存儲(chǔ)器地址空間的一部分;二是因不用接口要占用

54、存儲(chǔ)器地址空間的一部分;二是因不用專門的專門的I/OI/O指令,程序中較難區(qū)分指令,程序中較難區(qū)分I/OI/O操作。操作。 62S3C44B0X的I/O接口lARMARM系統(tǒng)完成系統(tǒng)完成I/OI/O功能的標(biāo)準(zhǔn)方法是使用存儲(chǔ)器映射功能的標(biāo)準(zhǔn)方法是使用存儲(chǔ)器映射I/OI/O。這種方法。這種方法使用特定的存儲(chǔ)器地址。當(dāng)從這些地址加載或向這些地址存儲(chǔ)時(shí)使用特定的存儲(chǔ)器地址。當(dāng)從這些地址加載或向這些地址存儲(chǔ)時(shí),它們提供,它們提供I/OI/O功能。典型情況下,從存儲(chǔ)器映射功能。典型情況下,從存儲(chǔ)器映射I/OI/O地址加載用地址加載用于輸入,而向存儲(chǔ)器映射于輸入,而向存儲(chǔ)器映射I/OI/O地址存儲(chǔ)用于輸出。

55、地址存儲(chǔ)用于輸出。lS3C44B0XS3C44B0X有有71 71 個(gè)多功能輸入個(gè)多功能輸入 輸出管腳,構(gòu)成了輸出管腳,構(gòu)成了7 7個(gè)個(gè)I/OI/O接口:接口:l兩個(gè)兩個(gè)9 9位的輸入位的輸入/ /輸出接口(輸出接口(E E和和F F)l兩個(gè)兩個(gè)8 8位的輸入位的輸入/ /輸出接口(輸出接口(D D和和G G)l一個(gè)一個(gè)1616位的輸入位的輸入/ /輸出接口(輸出接口(C C)l一個(gè)一個(gè)1010位的輸出接口(位的輸出接口(A A)l一個(gè)一個(gè)1111位的輸出接口(位的輸出接口(B B)63本節(jié)提要本節(jié)提要基于基于ARM的硬件系統(tǒng)體系結(jié)構(gòu)的硬件系統(tǒng)體系結(jié)構(gòu)存儲(chǔ)器接口設(shè)計(jì)存儲(chǔ)器接口設(shè)計(jì)網(wǎng)絡(luò)接口設(shè)計(jì)網(wǎng)

56、絡(luò)接口設(shè)計(jì)I/OI/O接口設(shè)計(jì)接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)人機(jī)交互接口設(shè)計(jì)其它通訊接口設(shè)計(jì)其它通訊接口設(shè)計(jì)64鍵盤接口設(shè)計(jì)l鍵盤模塊鍵盤可能用來(lái)輸入數(shù)字型數(shù)據(jù)或者選擇控制設(shè)備的操作模鍵盤模塊鍵盤可能用來(lái)輸入數(shù)字型數(shù)據(jù)或者選擇控制設(shè)備的操作模式。式。l鍵盤有兩種方案:一是采用現(xiàn)有的一些芯片實(shí)現(xiàn)鍵盤掃描;再就是鍵盤有兩種方案:一是采用現(xiàn)有的一些芯片實(shí)現(xiàn)鍵盤掃描;再就是用軟件實(shí)現(xiàn)鍵盤掃描。嵌入式控制器的功能很強(qiáng),可能允分利用這用軟件實(shí)現(xiàn)鍵盤掃描。嵌入式控制器的功能很強(qiáng),可能允分利用這一資源。一資源。65一個(gè)瞬時(shí)接觸開關(guān)一個(gè)瞬時(shí)接觸開關(guān)(按鈕)放置在每一行與(按鈕)放置在每一行與線一列的交叉點(diǎn)。矩陣所線一

57、列的交叉點(diǎn)。矩陣所需的鍵的數(shù)目顯然根據(jù)應(yīng)需的鍵的數(shù)目顯然根據(jù)應(yīng)用程序而不同。每一行由用程序而不同。每一行由一個(gè)輸出端口的一位驅(qū)動(dòng)一個(gè)輸出端口的一位驅(qū)動(dòng),而每一列由一個(gè)電阻器,而每一列由一個(gè)電阻器上拉且供給輸入端口一位上拉且供給輸入端口一位。鍵盤掃描陣列66鍵盤掃描過(guò)程就是讓微處理器按有規(guī)律的時(shí)間間隔查看鍵鍵盤掃描過(guò)程就是讓微處理器按有規(guī)律的時(shí)間間隔查看鍵盤矩陣,以確定是否有鍵被按下。每個(gè)鍵被分配一個(gè)稱為掃描碼盤矩陣,以確定是否有鍵被按下。每個(gè)鍵被分配一個(gè)稱為掃描碼的唯一標(biāo)識(shí)符。應(yīng)用程序利用該掃描碼,根據(jù)按下的鍵來(lái)判定應(yīng)的唯一標(biāo)識(shí)符。應(yīng)用程序利用該掃描碼,根據(jù)按下的鍵來(lái)判定應(yīng)該采取什么行動(dòng)。該采

58、取什么行動(dòng)。 l消抖算法:消抖算法:l組合鍵處理組合鍵處理鍵盤掃描方法67/得到按鍵的掃描碼,格式為得到按鍵的掃描碼,格式為0 xXYZWU16 GetScanKey()U16 key;U8 i,temp;for(i=1;i0 x10;i=1) /I/O口送出數(shù)據(jù)口送出數(shù)據(jù)rPDATD|=0 xf;rPDATD&=i;key4);return key;鍵盤掃描程序68LCD接口設(shè)計(jì)LCDLCD顯示模塊顯示模塊液晶顯示是一種被動(dòng)的顯示,它不能發(fā)光,只能使用周圍環(huán)液晶顯示是一種被動(dòng)的顯示,它不能發(fā)光,只能使用周圍環(huán)境的光。它顯示圖案或字符只需很小能量。液晶顯示所用的液晶材境的光。它顯示圖案

59、或字符只需很小能量。液晶顯示所用的液晶材料是一種兼有液態(tài)和固體雙重性質(zhì)的有機(jī)物,它的棒狀結(jié)構(gòu)在液晶料是一種兼有液態(tài)和固體雙重性質(zhì)的有機(jī)物,它的棒狀結(jié)構(gòu)在液晶盒內(nèi)一般平行排列,但在電場(chǎng)作用下能改變其排列方向。盒內(nèi)一般平行排列,但在電場(chǎng)作用下能改變其排列方向。LCDLCD的背光:的背光:lELEL(場(chǎng)致發(fā)光):(場(chǎng)致發(fā)光):2000-30002000-3000小時(shí)小時(shí)l和和LEDLED光源:字符模式,光源:字符模式,5000050000小時(shí)小時(shí)69LCD的顯示方式l反射型反射型LCDLCD:底偏光片后面加了一塊反射板,它一般在戶外和光線:底偏光片后面加了一塊反射板,它一般在戶外和光線良好的辦公室使

60、用。良好的辦公室使用。l透射型透射型LCDLCD:底偏光片是透射偏光片,它需要連續(xù)使用背光源,一:底偏光片是透射偏光片,它需要連續(xù)使用背光源,一般在光線差的環(huán)境使用。般在光線差的環(huán)境使用。l透反射型透反射型LCDLCD:是處于以上兩者之間,底偏光片能部分反光,一般:是處于以上兩者之間,底偏光片能部分反光,一般也帶背光源,光線好的時(shí)候,可關(guān)掉背光源;光線差時(shí),可點(diǎn)亮也帶背光源,光線好的時(shí)候,可關(guān)掉背光源;光線差時(shí),可點(diǎn)亮背光源使用背光源使用LCDLCD。70反射型LCD的結(jié)構(gòu)71lLCDLCD通常由兩種方式,一種是帶有驅(qū)動(dòng)芯片的通常由兩種方式,一種是帶有驅(qū)動(dòng)芯片的LCDLCD模塊,基本上屬模塊,基本上屬

溫馨提示

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