版權(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-第二講第二講 基本概念及設(shè)計(jì)方法基本概念及設(shè)計(jì)方法2本節(jié)提要本節(jié)提要關(guān)于課程與大作業(yè)的說(shuō)明關(guān)于課程與大作業(yè)的說(shuō)明嵌入式系統(tǒng)軟硬件基礎(chǔ)嵌入式系統(tǒng)軟硬件基礎(chǔ)嵌入式系統(tǒng)設(shè)計(jì)方法嵌入式系統(tǒng)設(shè)計(jì)方法一個(gè)嵌入式設(shè)計(jì)方法實(shí)例一個(gè)嵌入式設(shè)計(jì)方法實(shí)例3一、基于實(shí)驗(yàn)平臺(tái)一、基于實(shí)驗(yàn)平臺(tái)( ( C/OS+ARM)C/OS+ARM),完成一個(gè)嵌入式小游戲,如搬運(yùn)工、貪,完成一個(gè)嵌入式小游戲,如搬運(yùn)工、貪吃蛇等(難度等級(jí):吃蛇等(難度等級(jí):EASYEASY)。)。二、基于實(shí)驗(yàn)平臺(tái),完成二、基于實(shí)驗(yàn)平臺(tái),完成 C/OSC/OS到到AR
2、MARM的移植,并完成一個(gè)嵌入式游戲(的移植,并完成一個(gè)嵌入式游戲(難度等級(jí):難度等級(jí):MIDDLEMIDDLE)。)。三、基于實(shí)驗(yàn)平臺(tái),完成三、基于實(shí)驗(yàn)平臺(tái),完成 CLinuxCLinux到到ARMARM上的移植,并完成一個(gè)嵌入式應(yīng)上的移植,并完成一個(gè)嵌入式應(yīng)用程序(難度等級(jí):用程序(難度等級(jí):HARDHARD)。)。說(shuō)明:以上說(shuō)明:以上3 3個(gè)題目可根據(jù)自己個(gè)題目可根據(jù)自己TEAMTEAM的基礎(chǔ)和條件選做,或者自己擬定題的基礎(chǔ)和條件選做,或者自己擬定題目,但一定要先經(jīng)過(guò)任課教師同意。目,但一定要先經(jīng)過(guò)任課教師同意。大作業(yè)題目大作業(yè)題目4一、一、TEAMTEAM:3-43-4人一組,人一組,
3、1010月月2020日之前提交大作業(yè)任務(wù)計(jì)劃書(shū)(格式自日之前提交大作業(yè)任務(wù)計(jì)劃書(shū)(格式自擬),包括以下內(nèi)容(題目,設(shè)計(jì)目標(biāo),提交物,開(kāi)發(fā)進(jìn)度,任務(wù)擬),包括以下內(nèi)容(題目,設(shè)計(jì)目標(biāo),提交物,開(kāi)發(fā)進(jìn)度,任務(wù)分工);分工);二、選題:二、選題:要根據(jù)要根據(jù)TEAMTEAM的實(shí)際情況,結(jié)合興趣,重質(zhì)量不重難度;的實(shí)際情況,結(jié)合興趣,重質(zhì)量不重難度;三、提交:三、提交:1212月月2929日之前,提交設(shè)計(jì)說(shuō)明書(shū),包括代碼、流程、演示結(jié)日之前,提交設(shè)計(jì)說(shuō)明書(shū),包括代碼、流程、演示結(jié)果;果;四、評(píng)分標(biāo)準(zhǔn):四、評(píng)分標(biāo)準(zhǔn):完成質(zhì)量完成質(zhì)量-5-5、技術(shù)難度、技術(shù)難度-3-3、其他(進(jìn)度、協(xié)作等)、其他(進(jìn)度、
4、協(xié)作等)-2-2,評(píng)選評(píng)選3 3組優(yōu)秀獎(jiǎng);組優(yōu)秀獎(jiǎng);五、設(shè)備使用:五、設(shè)備使用:TEAMTEAM借用,保管完好,用后歸還。借用,保管完好,用后歸還。大作業(yè)的要求大作業(yè)的要求5關(guān)于本課程的說(shuō)明關(guān)于本課程的說(shuō)明一、一、期望值期望值l嵌入式系統(tǒng)是一類實(shí)用技術(shù),本門(mén)課程以介紹實(shí)用開(kāi)發(fā)技術(shù)為嵌入式系統(tǒng)是一類實(shí)用技術(shù),本門(mén)課程以介紹實(shí)用開(kāi)發(fā)技術(shù)為主,重點(diǎn)為動(dòng)手實(shí)踐,不會(huì)涉及到復(fù)雜的嵌入式系統(tǒng)建模、調(diào)主,重點(diǎn)為動(dòng)手實(shí)踐,不會(huì)涉及到復(fù)雜的嵌入式系統(tǒng)建模、調(diào)度算法等理論知識(shí);度算法等理論知識(shí);l由于只有由于只有3232個(gè)課時(shí),而嵌入式系統(tǒng)涉及知識(shí)面又非常廣,本門(mén)個(gè)課時(shí),而嵌入式系統(tǒng)涉及知識(shí)面又非常廣,本門(mén)課程的
5、目的是介紹大家課程的目的是介紹大家“入門(mén)入門(mén)”;l要想深入了解和學(xué)習(xí),大家需要付出更多的時(shí)間和努力。要想深入了解和學(xué)習(xí),大家需要付出更多的時(shí)間和努力。二、其他二、其他l嵌入式的應(yīng)用領(lǐng)域非常廣闊,即使我們目前的平臺(tái),也可以開(kāi)嵌入式的應(yīng)用領(lǐng)域非常廣闊,即使我們目前的平臺(tái),也可以開(kāi)發(fā)出各種應(yīng)用:如游戲、發(fā)出各種應(yīng)用:如游戲、MP3MP3、智能手機(jī)平臺(tái)等;、智能手機(jī)平臺(tái)等;l大家如果沒(méi)有時(shí)間或沒(méi)有興趣完成大作業(yè),建議退課;大家如果沒(méi)有時(shí)間或沒(méi)有興趣完成大作業(yè),建議退課;l完成大作業(yè)時(shí),發(fā)揚(yáng)完成大作業(yè)時(shí),發(fā)揚(yáng)TEAMTEAM的團(tuán)隊(duì)精神和協(xié)作精神,培養(yǎng)自已解的團(tuán)隊(duì)精神和協(xié)作精神,培養(yǎng)自已解決問(wèn)題的能力。決
6、問(wèn)題的能力。6課程與實(shí)驗(yàn)設(shè)置課程與實(shí)驗(yàn)設(shè)置課程設(shè)置(圍繞完成大作業(yè)所需要的知識(shí)展開(kāi))課程設(shè)置(圍繞完成大作業(yè)所需要的知識(shí)展開(kāi))l嵌入式軟硬件開(kāi)發(fā)環(huán)境簡(jiǎn)介(嵌入式軟硬件開(kāi)發(fā)環(huán)境簡(jiǎn)介(3 3)lARMARM微處理器體系結(jié)構(gòu)與指令集(微處理器體系結(jié)構(gòu)與指令集(6 6)l C /OSC /OS操作系統(tǒng)分析與移植(操作系統(tǒng)分析與移植(6 6)lARM+ ARM+ C /OSC /OS系統(tǒng)軟硬應(yīng)用設(shè)計(jì)(系統(tǒng)軟硬應(yīng)用設(shè)計(jì)(6 6)lLinuxLinux系統(tǒng)及其在系統(tǒng)及其在ARMARM上的移植(上的移植(6 6)實(shí)驗(yàn)設(shè)置實(shí)驗(yàn)設(shè)置l熟悉基本開(kāi)發(fā)環(huán)境及軟硬件平臺(tái)熟悉基本開(kāi)發(fā)環(huán)境及軟硬件平臺(tái)l C /OSC /OS
7、在在ARMARM上的移植實(shí)驗(yàn)上的移植實(shí)驗(yàn)l交通管制信號(hào)燈模擬實(shí)驗(yàn)交通管制信號(hào)燈模擬實(shí)驗(yàn)I/OI/O接口接口l模擬電子畫(huà)板實(shí)驗(yàn)?zāi)M電子畫(huà)板實(shí)驗(yàn)觸摸屏應(yīng)用觸摸屏應(yīng)用lLinuxLinux開(kāi)發(fā)環(huán)境實(shí)驗(yàn)開(kāi)發(fā)環(huán)境實(shí)驗(yàn)7本節(jié)提要本節(jié)提要關(guān)于課程與大作業(yè)的說(shuō)明關(guān)于課程與大作業(yè)的說(shuō)明嵌入式系統(tǒng)軟硬件基礎(chǔ)嵌入式系統(tǒng)軟硬件基礎(chǔ)嵌入式系統(tǒng)設(shè)計(jì)方法嵌入式系統(tǒng)設(shè)計(jì)方法一個(gè)嵌入式設(shè)計(jì)方法實(shí)例一個(gè)嵌入式設(shè)計(jì)方法實(shí)例8嵌入式系統(tǒng)的軟/硬件框架嵌入式嵌入式微處理器微處理器SDRAMSDRAMROMROMI/OI/OA/DA/DD/AD/A人機(jī)交互接口人機(jī)交互接口通用接口通用接口實(shí)時(shí)操作系統(tǒng)(實(shí)時(shí)操作系統(tǒng)(RTOS)RTOS)圖
8、形用戶圖形用戶接口接口BSP/HAL 硬件抽象層/板極支持包BSP/HAL 硬件抽象層/板極支持包任務(wù)管理任務(wù)管理文件系統(tǒng)文件系統(tǒng)應(yīng)用程序應(yīng)用程序嵌入式計(jì)算機(jī)系統(tǒng)嵌入式計(jì)算機(jī)系統(tǒng)硬件層硬件層軟件層軟件層中間層中間層功能層功能層9l馮馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)lCISCCISC與與RISCRISClIP IP 核核l流水線流水線l存儲(chǔ)器系統(tǒng)存儲(chǔ)器系統(tǒng)嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式系統(tǒng)硬件基礎(chǔ)10馮馮諾依曼體系結(jié)構(gòu)模型諾依曼體系結(jié)構(gòu)模型指令寄存器指令寄存器控制器控制器數(shù)據(jù)通道數(shù)據(jù)通道輸入輸入輸出輸出中央處理器中央處理器存儲(chǔ)器存儲(chǔ)器程序程序指令指令0 0指令指令1 1指令指
9、令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 211哈佛體系結(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ù)12CISC和和RISCCISCCISC:復(fù)雜指令集(:復(fù)雜指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和尋址方式;具有大量的指令和尋址方式;8/28/2原則:原
10、則: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í)行每一條指令;確保數(shù)據(jù)通道快速執(zhí)行每一條指令;使使CPUCPU硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單。硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡(jiǎn)單。 13CISC與與RISC的數(shù)據(jù)通道的數(shù)據(jù)通道IFIDREGALUMEM開(kāi)始退出IFIDAL
11、UMEMREG微操作通道開(kāi)始退出單通數(shù)據(jù)通道14CISC與與RISC的對(duì)比的對(duì)比類別類別CISCCISCRISCRISC指令系統(tǒng)指令系統(tǒng)指令數(shù)量很多指令數(shù)量很多較少,通常少于較少,通常少于100100執(zhí)行時(shí)間執(zhí)行時(shí)間有些指令執(zhí)行時(shí)間很長(zhǎng),如有些指令執(zhí)行時(shí)間很長(zhǎng),如整塊的存儲(chǔ)器內(nèi)容復(fù)制;或整塊的存儲(chǔ)器內(nèi)容復(fù)制;或?qū)⒍鄠€(gè)寄存器的內(nèi)容復(fù)制到將多個(gè)寄存器的內(nèi)容復(fù)制到存貯器存貯器沒(méi)有較長(zhǎng)執(zhí)行時(shí)間的指令沒(méi)有較長(zhǎng)執(zhí)行時(shí)間的指令編碼長(zhǎng)度編碼長(zhǎng)度編碼長(zhǎng)度可變,編碼長(zhǎng)度可變,1-151-15字節(jié)字節(jié)編碼長(zhǎng)度固定,通常為編碼長(zhǎng)度固定,通常為4 4個(gè)字節(jié)個(gè)字節(jié)尋址方式尋址方式尋址方式多樣尋址方式多樣簡(jiǎn)單尋址簡(jiǎn)單尋址操
12、作操作可以對(duì)存儲(chǔ)器和寄存器進(jìn)行可以對(duì)存儲(chǔ)器和寄存器進(jìn)行算術(shù)和邏輯操作算術(shù)和邏輯操作只能對(duì)寄存器對(duì)行算術(shù)和邏輯只能對(duì)寄存器對(duì)行算術(shù)和邏輯操作,操作,Load/StoreLoad/Store體系結(jié)構(gòu)體系結(jié)構(gòu)編譯編譯難以用優(yōu)化編譯器生成高效難以用優(yōu)化編譯器生成高效的目標(biāo)代碼程序的目標(biāo)代碼程序 采用優(yōu)化編譯技術(shù),生成高效采用優(yōu)化編譯技術(shù),生成高效的目標(biāo)代碼程序的目標(biāo)代碼程序 15知識(shí)產(chǎn)權(quán)核(知識(shí)產(chǎn)權(quán)核(IP核核, intellectual property)l識(shí)產(chǎn)權(quán)知識(shí)產(chǎn)權(quán)識(shí)產(chǎn)權(quán)知識(shí)產(chǎn)權(quán)(IP) (IP) 電路或核是設(shè)計(jì)好并經(jīng)過(guò)驗(yàn)證的集成電路功電路或核是設(shè)計(jì)好并經(jīng)過(guò)驗(yàn)證的集成電路功能單元。能單元。lI
13、PIP復(fù)用意味著設(shè)計(jì)代價(jià)降低(時(shí)間,價(jià)格)。復(fù)用意味著設(shè)計(jì)代價(jià)降低(時(shí)間,價(jià)格)。 lIPIP核的類別核的類別: :l微處理器微處理器微處理器微處理器: ARM, PowerPC;: ARM, PowerPC;l存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器: RAM, memory controller;: RAM, memory controller;l外設(shè)外設(shè): PCI, DMA controller;: PCI, DMA controller;l多媒體處理多媒體處理: MPEG/JPEG ;: MPEG/JPEG ;lencoder/decoder ;encoder/decoder ;l數(shù)字信號(hào)處理器數(shù)字信
14、號(hào)處理器(DSP)(DSP); l通信通信: Ethernet controller, router: Ethernet controller, router。16IPIP核的種類核的種類lSoft Cores(Soft Cores(“codecode”) )(軟核)(軟核)lHDLHDL語(yǔ)言描述;語(yǔ)言描述;l靈活度高,可修改;靈活度高,可修改;l與工藝獨(dú)立,可根據(jù)具體的加工工藝重新綜合;與工藝獨(dú)立,可根據(jù)具體的加工工藝重新綜合;lIPIP很難保護(hù)。很難保護(hù)。lFirm cores(Firm cores(“code+structurecode+structure”)()(固核)固核)l邏輯綜合
15、后的描述;邏輯綜合后的描述;l與工藝相關(guān)。與工藝相關(guān)。lHard cores(Hard cores(“physicalphysical”)()(硬核)硬核)l物理綜合后的描述;物理綜合后的描述;l準(zhǔn)備流片;準(zhǔn)備流片;l包含工藝相關(guān)的布局和時(shí)序信息;包含工藝相關(guān)的布局和時(shí)序信息;lIPIP很容易保護(hù)。很容易保護(hù)。l多數(shù)的處理器和存儲(chǔ)器多數(shù)的處理器和存儲(chǔ)器17IPIP核的商業(yè)模型核的商業(yè)模型三種模式三種模式1.1.設(shè)設(shè)計(jì)者提供設(shè)計(jì)和工具的許可證計(jì)者提供設(shè)計(jì)和工具的許可證lDSP Group (Pine and Oak Cores), 3Soft, ARMDSP Group (Pine and Oa
16、k Cores), 3Soft, ARM。 l提供包括提供包括HDLHDL在內(nèi)的模擬模型,工具或仿真器。在內(nèi)的模擬模型,工具或仿真器。l使用者負(fù)責(zé)設(shè)計(jì)制造。使用者負(fù)責(zé)設(shè)計(jì)制造。2.2.核廠商設(shè)計(jì)并制造集成電路芯片核廠商設(shè)計(jì)并制造集成電路芯片lTI, Motorola, LucentTI, Motorola, Lucent。lVLSI, SSI, Cirrus, AdaptecVLSI, SSI, Cirrus, Adaptec。3.3.核廠商賣核核廠商賣核, , 負(fù)責(zé)為客戶設(shè)計(jì)并制造芯片負(fù)責(zé)為客戶設(shè)計(jì)并制造芯片lLSI logic, TI, LucentLSI logic, TI, Lucen
17、t。18IPIP核的市場(chǎng)構(gòu)成核的市場(chǎng)構(gòu)成l74% 74% 為硬件設(shè)計(jì)廠商。為硬件設(shè)計(jì)廠商。l26% 26% 將購(gòu)買將購(gòu)買IP IP 核。核。l40% hard, 68% soft, 32% firm40% hard, 68% soft, 32% firm。19ARM的的IP核核固化宏單元(硬核)固化宏單元(硬核)ARM920TARM7TDMIARM720TARM1022E可綜合內(nèi)核(軟核)可綜合內(nèi)核(軟核)ARM926EJ-SARM7TDMI-SARM1026EJ-S測(cè)試芯片測(cè)試芯片ARM10200E20流水線技術(shù)流水線技術(shù)流水線技術(shù):幾個(gè)指令可以并行執(zhí)行。流水線技術(shù):幾個(gè)指令可以并行執(zhí)行。提
18、高了提高了CPUCPU的運(yùn)行效率。的運(yùn)行效率。內(nèi)部信息流要求通暢流動(dòng)。內(nèi)部信息流要求通暢流動(dòng)。譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時(shí)間AddSubCmp21指令流水線指令流水線以以ARM為例為例l為增加處理器指令流的速度,為增加處理器指令流的速度,ARM7 ARM7 系列使用系列使用3 3級(jí)流水線。級(jí)流水線。允許多個(gè)操作同時(shí)處理,比逐條指令執(zhí)行要快。允許多個(gè)操作同時(shí)處理,比逐條指令執(zhí)行要快。l PCPC指向正被取指的指令,而非正在執(zhí)行的指令。指向正被取指的指令,而非正在執(zhí)行的指令。FetchDecodeExecute從存儲(chǔ)器中讀取指令解碼指令寄存器讀(從寄存器Bank)移位及
19、ALU操作寄存器寫(xiě)(到寄存器Bank )PCPCPC - 4PC-2PC - 8PC - 4ARMThumb22 最佳流水線最佳流水線l該例中用該例中用6 6個(gè)時(shí)鐘周期執(zhí)行了個(gè)時(shí)鐘周期執(zhí)行了6 6條指令。條指令。l所有的操作都在寄存器中(單周期執(zhí)行)。所有的操作都在寄存器中(單周期執(zhí)行)。l指令周期數(shù)指令周期數(shù) (CPI) = 1(CPI) = 1。 操作操作周期周期 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecute
20、FetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch23 LDR 流水線舉例流水線舉例l該例中,用該例中,用6 6周期執(zhí)行了周期執(zhí)行了4 4條指令條指令l指令周期數(shù)指令周期數(shù) (CPI) = 1.5 (CPI) = 1.5 周期周期 操作操作123456 ADD SUB LDR MOV AND ORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetch24分支流水線舉例分支流水線舉例l流水線被阻
21、斷。流水線被阻斷。l注意注意: :內(nèi)核運(yùn)行在內(nèi)核運(yùn)行在ARMARM狀態(tài)。狀態(tài)。周期周期 1 2 3 4 5 0 x8000 BL 0 x8004 X0 x8008 XX0 x8FEC ADD0 x8FF0 SUB0 x8FF4 MOV地址地址 操作操作FetchDecodeExecuteFetchDecodeExecuteFetchDecodeFetchFetchDecodeExecuteLinkretAdjustFetchDecodeFetch25存儲(chǔ)器系統(tǒng)存儲(chǔ)器系統(tǒng)RAMRAM:隨機(jī)存取存儲(chǔ)器,:隨機(jī)存取存儲(chǔ)器, SRAMSRAM:靜態(tài)隨機(jī)存儲(chǔ)器,:靜態(tài)隨機(jī)存儲(chǔ)器, DRAMDRAM:動(dòng)態(tài)
22、隨機(jī)存儲(chǔ)器。動(dòng)態(tài)隨機(jī)存儲(chǔ)器。 SRAMSRAM比比DRAMDRAM快???。 SRAMSRAM比比DRAMDRAM耗電多。耗電多。 DRAMDRAM存儲(chǔ)密度比存儲(chǔ)密度比SRAMSRAM高得多。高得多。 DRMDRM需要周期性刷新。需要周期性刷新。ROMROM:只讀存儲(chǔ)器。:只讀存儲(chǔ)器。FLASHFLASH:閃存。:閃存。26輸入輸出接口輸入輸出接口lI/OI/OlA/DA/D、D/AD/Al鍵盤(pán)鍵盤(pán)lLCDLCDl存儲(chǔ)器接口存儲(chǔ)器接口l設(shè)備接口設(shè)備接口27嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)軟件基礎(chǔ)l操作系統(tǒng)的分類操作系統(tǒng)的分類l嵌入式實(shí)時(shí)操作系統(tǒng)嵌入式實(shí)時(shí)操作系統(tǒng)l前臺(tái)與后臺(tái)前臺(tái)與后臺(tái)l多任務(wù),任務(wù)優(yōu)
23、先級(jí),調(diào)度多任務(wù),任務(wù)優(yōu)先級(jí),調(diào)度l非占先式與占先式、可重入型函數(shù)非占先式與占先式、可重入型函數(shù)28操作系統(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)行時(shí)間,按的運(yùn)行時(shí)間,按語(yǔ)句順序執(zhí)行該程序,直至執(zhí)行完畢,另一程序才能啟動(dòng)運(yùn)行。如語(yǔ)句順序執(zhí)行該程序,直至執(zhí)行完畢,另一程序才能啟動(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í)間按的時(shí)間按順序分成若干片,每個(gè)時(shí)間片內(nèi)執(zhí)行不同的程序,如順序分成若干片
24、,每個(gè)時(shí)間片內(nèi)執(zhí)行不同的程序,如UNIXUNIX。(3 3)實(shí)時(shí)操作系統(tǒng):系統(tǒng)內(nèi)有多個(gè)程序運(yùn)行,每個(gè)程序有不同的優(yōu)先)實(shí)時(shí)操作系統(tǒng):系統(tǒng)內(nèi)有多個(gè)程序運(yùn)行,每個(gè)程序有不同的優(yōu)先級(jí),只有最高優(yōu)先級(jí)的任務(wù)才能占有級(jí),只有最高優(yōu)先級(jí)的任務(wù)才能占有CPUCPU的控制權(quán)。的控制權(quán)。29按實(shí)時(shí)性分類按實(shí)時(shí)性分類l強(qiáng)實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒或微秒級(jí)(數(shù)控機(jī)床)。強(qiáng)實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒或微秒級(jí)(數(shù)控機(jī)床)。l一般實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒到幾秒的數(shù)量級(jí)上,其實(shí)時(shí)一般實(shí)時(shí)系統(tǒng),其系統(tǒng)響應(yīng)時(shí)間在毫秒到幾秒的數(shù)量級(jí)上,其實(shí)時(shí)性的要求比強(qiáng)實(shí)時(shí)系統(tǒng)要差一些(媒體播放)。性的要求比強(qiáng)實(shí)時(shí)系統(tǒng)要差一些(媒
25、體播放)。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)。301.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) action_2(); if(condition_n) acition_n();按軟件
26、結(jié)構(gòu)分類按軟件結(jié)構(gòu)分類312.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)行為(操作,這部分可以看成后臺(tái)行為(backgroundbackground)。中斷服務(wù)程序處理)。中斷
27、服務(wù)程序處理異步事件,這部分可以看成前臺(tái)行為(異步事件,這部分可以看成前臺(tái)行為(foreground)foreground)。后臺(tái)也可以叫做。后臺(tái)也可以叫做任務(wù)級(jí),前臺(tái)也叫中斷級(jí)。例如,很多基于微處理器的產(chǎn)品采用前后任務(wù)級(jí),前臺(tái)也叫中斷級(jí)。例如,很多基于微處理器的產(chǎn)品采用前后臺(tái)系統(tǒng)設(shè)計(jì),如臺(tái)系統(tǒng)設(shè)計(jì),如微波爐、微波爐、電話機(jī)、玩具等。從省電的角度出發(fā),平時(shí)電話機(jī)、玩具等。從省電的角度出發(fā),平時(shí)微處理器處在停機(jī)狀態(tài),所有的事都靠中斷服務(wù)來(lái)完成。微處理器處在停機(jī)狀態(tài),所有的事都靠中斷服務(wù)來(lái)完成。32前后臺(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
28、時(shí)間時(shí)間33l代碼的臨界區(qū)也稱為臨界區(qū),指處理時(shí)不可分割的代碼。一旦這部分代碼的臨界區(qū)也稱為臨界區(qū),指處理時(shí)不可分割的代碼。一旦這部分代碼開(kāi)始執(zhí)行,則不允許任何中斷打斷。代碼開(kāi)始執(zhí)行,則不允許任何中斷打斷。l在進(jìn)入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完以后要立即開(kāi)中斷在進(jìn)入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完以后要立即開(kāi)中斷(在任務(wù)切換時(shí),地址、指令、數(shù)據(jù)等寄存器堆棧保護(hù))。(在任務(wù)切換時(shí),地址、指令、數(shù)據(jù)等寄存器堆棧保護(hù))。代碼的臨界區(qū)代碼的臨界區(qū)34多任務(wù)(任務(wù)、進(jìn)程和線程)多任務(wù)(任務(wù)、進(jìn)程和線程)CPUCPU寄存器寄存器任務(wù)任務(wù)控制控制塊塊1 1任務(wù)任務(wù)控制控制塊塊2 2任務(wù)任務(wù)控制
29、控制塊塊n n休眠、就緒、運(yùn)行、掛起、被中斷休眠、就緒、運(yùn)行、掛起、被中斷任務(wù)任務(wù)1 1任務(wù)任務(wù)2 2任務(wù)任務(wù)n nCPUCPU寄存器寄存器35一個(gè)任務(wù),也稱作一個(gè)線程,是一個(gè)簡(jiǎn)單的運(yùn)行程序。每個(gè)任一個(gè)任務(wù),也稱作一個(gè)線程,是一個(gè)簡(jiǎn)單的運(yùn)行程序。每個(gè)任務(wù)都是整個(gè)應(yīng)用的某一部分,每個(gè)任務(wù)被賦予一定的優(yōu)先級(jí),務(wù)都是整個(gè)應(yīng)用的某一部分,每個(gè)任務(wù)被賦予一定的優(yōu)先級(jí), 有它有它自己的一套自己的一套CPUCPU寄存器和自己的??臻g。寄存器和自己的??臻g。多任務(wù)運(yùn)行的實(shí)現(xiàn)實(shí)際上是靠多任務(wù)運(yùn)行的實(shí)現(xiàn)實(shí)際上是靠CPUCPU(中央處理單元)在許多任(中央處理單元)在許多任務(wù)之間轉(zhuǎn)換、調(diào)度。務(wù)之間轉(zhuǎn)換、調(diào)度。 CP
30、UCPU只有一個(gè),輪番服務(wù)于一系列任務(wù)中的某一個(gè)。多任務(wù)運(yùn)只有一個(gè),輪番服務(wù)于一系列任務(wù)中的某一個(gè)。多任務(wù)運(yùn)行使行使CPUCPU的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。在實(shí)際應(yīng)用中,多任務(wù)的最大特點(diǎn)是,開(kāi)發(fā)人員可以將很復(fù)雜在實(shí)際應(yīng)用中,多任務(wù)的最大特點(diǎn)是,開(kāi)發(fā)人員可以將很復(fù)雜的應(yīng)用程序?qū)哟位?,如綜合實(shí)驗(yàn)(時(shí)鐘、位圖、的應(yīng)用程序?qū)哟位?,如綜合實(shí)驗(yàn)(時(shí)鐘、位圖、USBUSB、KEYKEY)。)。36任務(wù)的狀態(tài)任務(wù)的狀態(tài)R RU UN NN NI IN NG GR RE EA AD DY YO OS ST Ta as sk kC Cr re ea at
31、 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 me eD Dl ly y( () )O OS ST Ti im me
32、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 ST Ti im me eT Ti ic ck k( () )O OS
33、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 SI In nt tE Ex xi it t( () )I IS SR
34、R37系統(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ù)分配多任務(wù)系統(tǒng)中,內(nèi)核負(fù)責(zé)管理各個(gè)任務(wù),或者說(shuō)為每個(gè)任務(wù)分配CPUCPU時(shí)間,并且負(fù)責(zé)任務(wù)之間的通信。時(shí)間,并且負(fù)責(zé)任務(wù)之間的通信。l內(nèi)核(內(nèi)核(Kernel)Kernel):提供的基本服務(wù)是任務(wù)切換。內(nèi)核本身也增加了應(yīng)提供的基本服務(wù)是任務(wù)切換。內(nèi)核本身也增加了應(yīng)用程序的額外負(fù)荷,代碼空間增加用程序的額外負(fù)荷,代碼空間增加ROMROM用量,內(nèi)核本身數(shù)據(jù)結(jié)構(gòu)增加用量,內(nèi)核本身數(shù)據(jù)結(jié)構(gòu)增加了了RAMRAM的用量。內(nèi)核本身對(duì)的用量。內(nèi)核本身對(duì)CPUCPU的占用時(shí)間一般在的
35、占用時(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ù)根據(jù)個(gè)任務(wù)運(yùn)行了。多數(shù)實(shí)時(shí)內(nèi)核是基于優(yōu)先級(jí)調(diào)度法的。每個(gè)任務(wù)根據(jù)其重要程度的不同被賦予一定的優(yōu)先級(jí)。基于優(yōu)先級(jí)的調(diào)度法則,其重要程度的不同被賦予一定的優(yōu)先級(jí)。基于優(yōu)先級(jí)的調(diào)度法則,CPUCPU總是讓處在就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)先運(yùn)行??偸亲屘幵诰途w態(tài)的優(yōu)先級(jí)最高的任務(wù)先運(yùn)行。38非占先式與占先式非占先式與占先式非占先式非占先式(non-preem
36、ptivenon-preemptive)調(diào)度法也稱作合作型多任調(diào)度法也稱作合作型多任務(wù)(務(wù)(cooperative multitaskingcooperative multitasking),各個(gè)任務(wù)彼此合作共享一),各個(gè)任務(wù)彼此合作共享一個(gè)個(gè)CPUCPU。中斷服務(wù)可以使一個(gè)高優(yōu)先級(jí)的任務(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è)任狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來(lái)被中斷了的那個(gè)任務(wù),直到該任務(wù)主動(dòng)放棄務(wù),直到該任務(wù)主動(dòng)放棄CPUCPU的使用權(quán)時(shí),那個(gè)高優(yōu)先級(jí)的任務(wù)的使用權(quán)時(shí),那個(gè)高優(yōu)先級(jí)的任務(wù)才能獲得才能獲得C
37、PUCPU的使用權(quán)。的使用權(quán)。非占先式內(nèi)核的非占先式內(nèi)核的一個(gè)特點(diǎn)一個(gè)特點(diǎn)是幾乎不需要使用信號(hào)量保護(hù)共是幾乎不需要使用信號(hào)量保護(hù)共享數(shù)據(jù)。運(yùn)行著的任務(wù)占有享數(shù)據(jù)。運(yùn)行著的任務(wù)占有CPUCPU,而不必?fù)?dān)心被別的任務(wù)搶占。,而不必?fù)?dān)心被別的任務(wù)搶占。非占先式內(nèi)核的非占先式內(nèi)核的最大缺陷最大缺陷在于其響應(yīng)高優(yōu)先級(jí)的任務(wù)慢,在于其響應(yīng)高優(yōu)先級(jí)的任務(wù)慢,任務(wù)已經(jīng)進(jìn)入就緒態(tài),但還不能運(yùn)行,也許要等很長(zhǎng)時(shí)間,直任務(wù)已經(jīng)進(jìn)入就緒態(tài),但還不能運(yùn)行,也許要等很長(zhǎng)時(shí)間,直到當(dāng)前運(yùn)行著的任務(wù)釋放到當(dāng)前運(yùn)行著的任務(wù)釋放CPUCPU。內(nèi)核的任務(wù)級(jí)響應(yīng)時(shí)間是不確定。內(nèi)核的任務(wù)級(jí)響應(yīng)時(shí)間是不確定的,不知道什么時(shí)候最高優(yōu)先級(jí)的
38、任務(wù)才能拿到的,不知道什么時(shí)候最高優(yōu)先級(jí)的任務(wù)才能拿到CPUCPU的控制權(quán),的控制權(quán),完全取決于應(yīng)用程序什么時(shí)候釋放完全取決于應(yīng)用程序什么時(shí)候釋放CPUCPU。39非占先式非占先式(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ù)程序使中斷服務(wù)程序使高優(yōu)先級(jí)任務(wù)就緒高優(yōu)先級(jí)任務(wù)就緒低優(yōu)先級(jí)任務(wù)釋放低優(yōu)先級(jí)任務(wù)釋放CPU使用權(quán)使用權(quán)TIME40當(dāng)系統(tǒng)響應(yīng)時(shí)間很重要時(shí),要使用占先式(當(dāng)系統(tǒng)響應(yīng)時(shí)間很重要時(shí),要使用占先式(preemptivepreemptive)內(nèi)核。最高優(yōu)先級(jí)的任務(wù)一旦就緒,總能得到內(nèi)核。最高優(yōu)
39、先級(jí)的任務(wù)一旦就緒,總能得到CPUCPU的控制權(quán)。的控制權(quán)。當(dāng)一個(gè)運(yùn)行著的任務(wù)使一個(gè)比它優(yōu)先級(jí)高的任務(wù)進(jìn)入了就當(dāng)一個(gè)運(yùn)行著的任務(wù)使一個(gè)比它優(yōu)先級(jí)高的任務(wù)進(jìn)入了就緒態(tài),當(dāng)前任務(wù)的緒態(tài),當(dāng)前任務(wù)的CPUCPU使用權(quán)就被剝奪了,或者說(shuō)被掛起了,那使用權(quán)就被剝奪了,或者說(shuō)被掛起了,那個(gè)高優(yōu)先級(jí)的任務(wù)立刻得到了個(gè)高優(yōu)先級(jí)的任務(wù)立刻得到了CPUCPU的控制權(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í)的任務(wù)數(shù)。如果調(diào)入可重入型函數(shù)時(shí),低優(yōu)先級(jí)的任務(wù)CPUCPU的使用權(quán)被的使用權(quán)被高優(yōu)先級(jí)任務(wù)剝奪,高優(yōu)先
40、級(jí)任務(wù)剝奪,不可重入型函數(shù)中的數(shù)據(jù)有可能被破壞。不可重入型函數(shù)中的數(shù)據(jù)有可能被破壞。占先式(占先式(preemptive)41占先式占先式(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)TIME42可以被一個(gè)以上的任務(wù)調(diào)用,而不必?fù)?dān)心數(shù)據(jù)的破壞??芍乜梢员灰粋€(gè)以上的任務(wù)調(diào)用,而不必?fù)?dān)心數(shù)據(jù)的破壞。可重入型函數(shù)任何時(shí)候都可以被中斷,一段時(shí)間以后又可以運(yùn)行,而相入型函數(shù)任何時(shí)候都可以被中斷,一段時(shí)間以后又可以運(yùn)行,而相應(yīng)數(shù)據(jù)
41、不會(huì)丟失??芍厝胄秃瘮?shù)或者只使用局部變量,即變量保存應(yīng)數(shù)據(jù)不會(huì)丟失??芍厝胄秃瘮?shù)或者只使用局部變量,即變量保存在在CPUCPU寄存器中或堆棧中。寄存器中或堆棧中。一個(gè)不可重入型函數(shù)的例子一個(gè)不可重入型函數(shù)的例子int Temp;int Temp;Void swap (int Void swap (int * *x,intx,int* *y)y) Temp=Temp=* *x;x;* *X=X=* *Y;Y;* *y=Temp;y=Temp; 可重入型函數(shù)可重入型函數(shù)43一個(gè)可重入型函數(shù)的例子一個(gè)可重入型函數(shù)的例子Void swap (int *x,int*y)int Temp;Temp=*x;
42、*X=*Y;*y=Temp;44任務(wù)優(yōu)先級(jí)任務(wù)優(yōu)先級(jí)l靜態(tài)優(yōu)先級(jí)靜態(tài)優(yōu)先級(jí) 應(yīng)用程序執(zhí)行過(guò)程中諸任務(wù)優(yōu)先級(jí)不變,則稱之為靜態(tài)優(yōu)先應(yīng)用程序執(zhí)行過(guò)程中諸任務(wù)優(yōu)先級(jí)不變,則稱之為靜態(tài)優(yōu)先級(jí)。在靜態(tài)優(yōu)先級(jí)系統(tǒng)中,諸任務(wù)以及它們的時(shí)間約束在程序編級(jí)。在靜態(tài)優(yōu)先級(jí)系統(tǒng)中,諸任務(wù)以及它們的時(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í)是可變的,則稱之為動(dòng)應(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)問(wèn)題。態(tài)優(yōu)先級(jí)。實(shí)時(shí)內(nèi)核應(yīng)當(dāng)避免出現(xiàn)優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題。45優(yōu)先級(jí)反轉(zhuǎn)優(yōu)先級(jí)反轉(zhuǎn)Task 1 (H)Task 2 (
43、M)Task 3 (L)Priority InversionTask 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) )46本節(jié)提要本節(jié)提要關(guān)于課程與大作
44、業(yè)的說(shuō)明關(guān)于課程與大作業(yè)的說(shuō)明嵌入式系統(tǒng)軟硬件基礎(chǔ)嵌入式系統(tǒng)軟硬件基礎(chǔ)嵌入式系統(tǒng)設(shè)計(jì)方法嵌入式系統(tǒng)設(shè)計(jì)方法一個(gè)嵌入式設(shè)計(jì)方法實(shí)例一個(gè)嵌入式設(shè)計(jì)方法實(shí)例47嵌入式系統(tǒng)的開(kāi)發(fā)嵌入式系統(tǒng)的開(kāi)發(fā)流程流程確定產(chǎn)品需求選擇主要芯片確定編程語(yǔ)言選擇開(kāi)發(fā)環(huán)境RTOS的使用選擇開(kāi)發(fā)方案選擇開(kāi)發(fā)方案設(shè)計(jì)與調(diào)試測(cè)試測(cè)試工具與其他輔助設(shè)備產(chǎn)品48嵌入式系統(tǒng)的開(kāi)發(fā)嵌入式系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)與調(diào)試設(shè)計(jì)與調(diào)試設(shè)計(jì)生產(chǎn)編譯器鏈接器調(diào)試器IDE操作系統(tǒng)軟件測(cè)試評(píng)估板仿真器邏輯分析儀邊界掃描測(cè)試儀編程器49開(kāi)發(fā)環(huán)境開(kāi)發(fā)環(huán)境什么是嵌入式開(kāi)發(fā)環(huán)境:源程序編譯器目標(biāo)文件鏈接器可重定位程序定位器可執(zhí)行文件編譯器/匯編器/鏈接定位器調(diào)試器/仿真
45、器主機(jī)(Host)及其工作平臺(tái)實(shí)時(shí)操作系統(tǒng)(可選)目標(biāo)評(píng)估系統(tǒng)(可選)測(cè)試工具(軟件/硬件/協(xié)議等,可選)其他輔助設(shè)備(可選) 典型的開(kāi)發(fā)環(huán)境50ARM的編譯器(1)ADS1.2ADS1.2lARMARM公司出品公司出品lIDEIDE環(huán)境,包括:環(huán)境,包括:ARM/ThumbARM/Thumb匯編器:匯編器:armasmarmasm。ANSI C ANSI C 編譯器編譯器 - - armccarmcc 和和 tcctcc。ISO / Embedded C+ ISO / Embedded C+ 編譯器編譯器 - - armcpparmcpp and and tcpptcpp。鏈接器鏈接器 ar
46、mlinkarmlink。Windows Windows 集成開(kāi)發(fā)環(huán)境集成開(kāi)發(fā)環(huán)境 CodeWarriorCodeWarrior。格式轉(zhuǎn)換器格式轉(zhuǎn)換器 fromelffromelf。庫(kù)管理器庫(kù)管理器 armararmar。調(diào)試器。調(diào)試器。模擬調(diào)試器:模擬調(diào)試器:ARMulatorARMulator。JTAGJTAG調(diào)試:調(diào)試:AXDAXD(與(與Multi-ICEMulti-ICE配合)。配合)。支持所有支持所有ARMARM內(nèi)核,最新版本:內(nèi)核,最新版本:RealView2.0RealView2.0。51ARM的編譯器(2)lEW-ARMEW-ARM瑞典瑞典IRAIRA公司出品公司出品著名的嵌
47、入式工具提供商,以提供編譯器著名的嵌入式工具提供商,以提供編譯器/ /協(xié)議棧協(xié)議棧/ /統(tǒng)一建模工具著稱。統(tǒng)一建模工具著稱。主要產(chǎn)品:主要產(chǎn)品:Embeded WorkbenchEmbeded Workbench(EWEW)、Make APPMake APP、Visual StateVisual State等。等。EW-ARMEW-ARM:針對(duì):針對(duì)ARMARM的集成開(kāi)發(fā)環(huán)境:的集成開(kāi)發(fā)環(huán)境:C/C+C/C+編譯器。編譯器。C-SPY C-SPY 模擬調(diào)試器。模擬調(diào)試器。ROM-MonitorROM-Monitor。多種級(jí)別代碼優(yōu)化方法,滿足用戶在速度、文件大小方面的要求。多種級(jí)別代碼優(yōu)化方法
48、,滿足用戶在速度、文件大小方面的要求。內(nèi)建內(nèi)建ARMARM特性優(yōu)化器。特性優(yōu)化器。支持多種斷點(diǎn)模式。支持多種斷點(diǎn)模式。支持支持Nucleus, VxWorksNucleus, VxWorks等等RTOSRTOS。lGreenhillsGreenhillslGNUGNU52嵌入式系統(tǒng)的調(diào)試(1)嵌入式系統(tǒng)的調(diào)試有四種基本方法:嵌入式系統(tǒng)的調(diào)試有四種基本方法: l模擬調(diào)試(模擬調(diào)試(Simulator)l軟件調(diào)試(軟件調(diào)試(Debugger)lBDM/JTAG調(diào)試(調(diào)試(BDM/JTAG Debugger)l全仿真調(diào)試(全仿真調(diào)試(Emulator)53嵌入式系統(tǒng)的調(diào)試(2)l模擬調(diào)試(模擬調(diào)試(
49、SimulatorSimulator) 調(diào)試工具和待調(diào)試的嵌入式軟件都在主機(jī)上運(yùn)行,由主機(jī)提供一調(diào)試工具和待調(diào)試的嵌入式軟件都在主機(jī)上運(yùn)行,由主機(jī)提供一個(gè)模擬的目標(biāo)運(yùn)行環(huán)境,可以進(jìn)行語(yǔ)法和邏輯上的調(diào)試。個(gè)模擬的目標(biāo)運(yùn)行環(huán)境,可以進(jìn)行語(yǔ)法和邏輯上的調(diào)試。l優(yōu)點(diǎn):優(yōu)點(diǎn):簡(jiǎn)單方便,不需要目標(biāo)板,成本低。簡(jiǎn)單方便,不需要目標(biāo)板,成本低。l缺點(diǎn):缺點(diǎn):功能非常有限,無(wú)法實(shí)時(shí)調(diào)試。功能非常有限,無(wú)法實(shí)時(shí)調(diào)試。 大多數(shù)調(diào)試工具都提供大多數(shù)調(diào)試工具都提供Simulator功能。功能。54嵌入式系統(tǒng)的調(diào)試(3)l軟件調(diào)試(軟件調(diào)試(DebuggerDebugger) 主機(jī)和目標(biāo)板通過(guò)某種接口(通常是串口)連接,
50、主機(jī)上提供調(diào)試主機(jī)和目標(biāo)板通過(guò)某種接口(通常是串口)連接,主機(jī)上提供調(diào)試界面,待調(diào)試軟件下載到目標(biāo)板上運(yùn)行。界面,待調(diào)試軟件下載到目標(biāo)板上運(yùn)行。 這種方式的先決條件是要在這種方式的先決條件是要在Host和和Target之間建立起通信聯(lián)系(目之間建立起通信聯(lián)系(目標(biāo)板上稱為監(jiān)控程序標(biāo)板上稱為監(jiān)控程序Monitor)l優(yōu)點(diǎn):優(yōu)點(diǎn):純軟件,價(jià)格較低,簡(jiǎn)單,軟件調(diào)試能力較強(qiáng)。純軟件,價(jià)格較低,簡(jiǎn)單,軟件調(diào)試能力較強(qiáng)。l缺點(diǎn):缺點(diǎn):需要事先燒制需要事先燒制Monitor(往往需多次試驗(yàn)才能成功)且目標(biāo)板(往往需多次試驗(yàn)才能成功)且目標(biāo)板工作正常,功能有限,特別是硬件調(diào)試能力較差。工作正常,功能有限,特別
51、是硬件調(diào)試能力較差。PCTargetMonitor串口55嵌入式系統(tǒng)的調(diào)試(4)lBDM/JTAGBDM/JTAG調(diào)試調(diào)試 這種方式有一個(gè)硬件調(diào)試體。該硬件調(diào)試體與目標(biāo)板通過(guò)這種方式有一個(gè)硬件調(diào)試體。該硬件調(diào)試體與目標(biāo)板通過(guò)BDM、JTAG等調(diào)試接口相連,與主機(jī)通過(guò)串口、并口、網(wǎng)口或等調(diào)試接口相連,與主機(jī)通過(guò)串口、并口、網(wǎng)口或USB口相連。待口相連。待調(diào)試軟件通過(guò)調(diào)試軟件通過(guò)BDM/JTAG調(diào)試器下載到目標(biāo)板上運(yùn)行。調(diào)試器下載到目標(biāo)板上運(yùn)行。l優(yōu)點(diǎn):優(yōu)點(diǎn):方便、簡(jiǎn)單,無(wú)須制作方便、簡(jiǎn)單,無(wú)須制作Monitor,軟硬件均可調(diào)試。,軟硬件均可調(diào)試。l缺點(diǎn):缺點(diǎn):需要目標(biāo)板,且目標(biāo)板工作基本正常(至
52、少需要目標(biāo)板,且目標(biāo)板工作基本正常(至少M(fèi)CU工作正常),工作正常),僅適用于有調(diào)試接口的芯片。僅適用于有調(diào)試接口的芯片。TargetPC接口BDM/JTAG Debugger56嵌入式系統(tǒng)的調(diào)試(5)l全仿真調(diào)試全仿真調(diào)試(Emulator) 這種方式用仿真器完全取代目標(biāo)板上的這種方式用仿真器完全取代目標(biāo)板上的MCU,因而目標(biāo)系統(tǒng)對(duì)開(kāi)發(fā),因而目標(biāo)系統(tǒng)對(duì)開(kāi)發(fā)者來(lái)說(shuō)完全是透明的、可控的。仿真器與目標(biāo)板通過(guò)仿真頭連接,與主者來(lái)說(shuō)完全是透明的、可控的。仿真器與目標(biāo)板通過(guò)仿真頭連接,與主機(jī)有串口、并口、網(wǎng)口或機(jī)有串口、并口、網(wǎng)口或USB口等連接方式。由于仿真器自成體系,調(diào)口等連接方式。由于仿真器自成體
53、系,調(diào)試時(shí)既可以連接目標(biāo)板,也可以不連接目標(biāo)板(試時(shí)既可以連接目標(biāo)板,也可以不連接目標(biāo)板(Stand alone)。)。l優(yōu)點(diǎn):優(yōu)點(diǎn):功能非常強(qiáng)大,軟硬件均可做到完全實(shí)時(shí)在線調(diào)試。功能非常強(qiáng)大,軟硬件均可做到完全實(shí)時(shí)在線調(diào)試。l缺點(diǎn):缺點(diǎn):價(jià)格昂貴。價(jià)格昂貴。57ARM的調(diào)試方式l模擬調(diào)試模擬調(diào)試SDT2.52: ARMulatorADS1.2:ARMulatorTrace32:SimulatorEW-ARM:C-spyl軟件調(diào)試軟件調(diào)試ADS1.2:Angel(串口)(串口)SDT2.52 Angel(串口)(串口)lJTAG調(diào)試調(diào)試ARM:Multi-ICE,簡(jiǎn)易型仿真器簡(jiǎn)易型仿真器Tra
54、ce32-ICD for ARMHitex:Tanto for ARMl全仿真調(diào)試全仿真調(diào)試Trace32-FIRE/ICE58ARM調(diào)試工具M(jìn)ulti-ICElARM公司出品公司出品l與與ADS配套使用配套使用l支持不同的支持不同的ARM內(nèi)核內(nèi)核l另有另有Multi-trace模塊可選模塊可選59選擇實(shí)時(shí)操作系統(tǒng)RTOSl對(duì)于復(fù)雜的嵌入式系統(tǒng)應(yīng)考慮使用對(duì)于復(fù)雜的嵌入式系統(tǒng)應(yīng)考慮使用RTOSlRTOS的作用:的作用:提供提供API(應(yīng)用應(yīng)用編程接口)編程接口):操作系統(tǒng)為應(yīng)用程序員提供可供調(diào)用的:操作系統(tǒng)為應(yīng)用程序員提供可供調(diào)用的APIAPI,允許程序員致力于應(yīng)用程序的開(kāi)發(fā)。,允許程序員致力于
55、應(yīng)用程序的開(kāi)發(fā)。 簡(jiǎn)化系統(tǒng)設(shè)計(jì)簡(jiǎn)化系統(tǒng)設(shè)計(jì):實(shí)時(shí)嵌入式系統(tǒng)比非實(shí)時(shí)系統(tǒng)更難設(shè)計(jì):實(shí)時(shí)嵌入式系統(tǒng)比非實(shí)時(shí)系統(tǒng)更難設(shè)計(jì). . 使用實(shí)時(shí)使用實(shí)時(shí)多任務(wù)的內(nèi)核能簡(jiǎn)化系統(tǒng)設(shè)計(jì),可將復(fù)雜的應(yīng)用程序分為幾個(gè)不同多任務(wù)的內(nèi)核能簡(jiǎn)化系統(tǒng)設(shè)計(jì),可將復(fù)雜的應(yīng)用程序分為幾個(gè)不同的任務(wù),由內(nèi)核去對(duì)他們協(xié)調(diào)處理。的任務(wù),由內(nèi)核去對(duì)他們協(xié)調(diào)處理。l實(shí)驗(yàn)平臺(tái)實(shí)驗(yàn)平臺(tái)支持支持ARM的實(shí)時(shí)操作系統(tǒng)的實(shí)時(shí)操作系統(tǒng)如下如下: C/OSLinux60嵌入式系統(tǒng)編程語(yǔ)言lData from Japan ITRON survey for new embedded systemsType of Processors0%10%20%30%40
56、%50%60%70%4-bits8-bits16-bits32-bits64-bitsSpecial1998-991999-002000-01Programming Languages0%10%20%30%40%50%60%70%80%90%AssemblelanguageC languageC+JavaOthers1998-991999-002000-0161嵌入式系統(tǒng)的測(cè)試新技術(shù),新方法新技術(shù),新方法l使用邊界掃描測(cè)試技術(shù)可以有效地解決這些問(wèn)題!使用邊界掃描測(cè)試技術(shù)可以有效地解決這些問(wèn)題!l邊界掃描來(lái)源于邊界掃描來(lái)源于IEEE Std 1149.1,是是由聯(lián)合測(cè)試行動(dòng)小組(由聯(lián)合測(cè)試行動(dòng)小
57、組(Joint Test Action Group) )制定的一種測(cè)試邏輯,所以又稱制定的一種測(cè)試邏輯,所以又稱JTAG標(biāo)準(zhǔn)。標(biāo)準(zhǔn)。lJTAG作為集成電路的一部分,可以完成以下功能:作為集成電路的一部分,可以完成以下功能: 測(cè)試器件間的相互連線;測(cè)試器件間的相互連線; 測(cè)試集成電路本身;測(cè)試集成電路本身; 在線編程在線編程CPLD、FPGA、FLASH; JTAG仿真調(diào)試。仿真調(diào)試。62嵌入式開(kāi)發(fā)工具與開(kāi)發(fā)環(huán)境嵌入式開(kāi)發(fā)工具與開(kāi)發(fā)環(huán)境63開(kāi)發(fā)平臺(tái)簡(jiǎn)介開(kāi)發(fā)平臺(tái)簡(jiǎn)介64開(kāi)始新工程編輯源代碼交叉編譯連接仿真調(diào)試程序下載臺(tái)式/筆記本式PC機(jī)并口JTAG仿真器網(wǎng)絡(luò)接口JTAG接口USB接口串口0ARM3
58、00開(kāi)發(fā)板串口USB接口以太網(wǎng)口ARMSDTDebugArmDvkARM7處理器執(zhí)行監(jiān)測(cè)結(jié)果超級(jí)終端ARM300開(kāi)發(fā)板實(shí)驗(yàn)流程結(jié)束嵌入式軟件開(kāi)發(fā)流程嵌入式軟件開(kāi)發(fā)流程65開(kāi)發(fā)平臺(tái)簡(jiǎn)介開(kāi)發(fā)平臺(tái)簡(jiǎn)介網(wǎng)口JTAGUSB串口0擴(kuò)展板接口ARM微處理器S3C44B0X擴(kuò)展口2網(wǎng)卡JTAG仿真器ARM300開(kāi)發(fā)板集成開(kāi)發(fā)環(huán)境運(yùn)行平臺(tái)66本節(jié)提要本節(jié)提要關(guān)于課程與大作業(yè)的說(shuō)明關(guān)于課程與大作業(yè)的說(shuō)明嵌入式系統(tǒng)軟硬件基礎(chǔ)嵌入式系統(tǒng)軟硬件基礎(chǔ)嵌入式系統(tǒng)設(shè)計(jì)方法嵌入式系統(tǒng)設(shè)計(jì)方法一個(gè)嵌入式設(shè)計(jì)方法實(shí)例一個(gè)嵌入式設(shè)計(jì)方法實(shí)例67工程機(jī)械體系結(jié)構(gòu)可靠設(shè)計(jì)環(huán)境分析成本計(jì)算芯片選擇設(shè)計(jì)接口調(diào)試關(guān)鍵技術(shù)主要系統(tǒng)平地平地機(jī)機(jī)環(huán)
59、境可靠性實(shí)驗(yàn)裝載裝載機(jī)機(jī)攪拌攪拌機(jī)機(jī)挖掘挖掘機(jī)機(jī) 軟件選擇開(kāi)發(fā)攤鋪攤鋪機(jī)機(jī)壓路壓路機(jī)機(jī)四、嵌入式設(shè)計(jì)方法實(shí)例四、嵌入式設(shè)計(jì)方法實(shí)例工程機(jī)械監(jiān)控器工程機(jī)械監(jiān)控器68l需求分析與評(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ù)與升級(jí)設(shè)計(jì)步驟設(shè)計(jì)步驟69工程機(jī)械方面應(yīng)用工程機(jī)械方面應(yīng)用 工程機(jī)械六大市場(chǎng)領(lǐng)域,均符合國(guó)家經(jīng)濟(jì)發(fā)展四大戰(zhàn)略所規(guī)定工程機(jī)械六大市場(chǎng)領(lǐng)域,均符合國(guó)家經(jīng)濟(jì)發(fā)展四大戰(zhàn)略所規(guī)定的資金投向,的資金投向,500500億投資,一個(gè)企業(yè)僅裝載機(jī)銷售億投資,一個(gè)企業(yè)僅裝
60、載機(jī)銷售70007000臺(tái)。臺(tái)。發(fā)展國(guó)家基礎(chǔ)設(shè)施建設(shè)發(fā)展國(guó)家基礎(chǔ)設(shè)施建設(shè) 西部大開(kāi)發(fā)西部大開(kāi)發(fā) 發(fā)展城鄉(xiāng)化發(fā)展城鄉(xiāng)化 可持續(xù)發(fā)展可持續(xù)發(fā)展 交通運(yùn)輸交通運(yùn)輸 能源工業(yè)能源工業(yè)原材料工業(yè)原材料工業(yè) 農(nóng)林水利農(nóng)林水利 城鄉(xiāng)建設(shè)城鄉(xiāng)建設(shè)國(guó)防工程建設(shè)國(guó)防工程建設(shè)工工程程機(jī)機(jī)械械1. 1. 需求分析與評(píng)估需求分析與評(píng)估70瀝青路面施工機(jī)群瀝青路面施工機(jī)群71l資源配置不合理,施工過(guò)程施工過(guò)程質(zhì)量、進(jìn)度控制不到位;資源配置不合理,施工過(guò)程施工過(guò)程質(zhì)量、進(jìn)度控制不到位;l設(shè)備運(yùn)行狀況不能及時(shí)掌握,故障不能及時(shí)排除;設(shè)備運(yùn)行狀況不能及時(shí)掌握,故障不能及時(shí)排除;l分期付款控制技術(shù);分期付款控制技術(shù);l智能控制,
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度環(huán)保監(jiān)測(cè)試劑購(gòu)置與服務(wù)合同3篇
- 2024年版汽車租賃服務(wù)協(xié)議
- 2025機(jī)器買賣合同的范本
- 2024圖書(shū)采購(gòu)合同-涵蓋國(guó)內(nèi)外圖書(shū)采購(gòu)與文化交流3篇
- 透明卷簾門(mén)定制安裝合同
- 無(wú)人駕駛船舶材料保證書(shū)
- 城市植物園停車場(chǎng)施工合同
- 建筑材料采購(gòu)授權(quán)委托書(shū)樣本
- 礦井科學(xué)化聚氨酯保溫施工協(xié)議
- 物流行業(yè)走動(dòng)式管理改進(jìn)措施
- 郵件分揀PLC控制系統(tǒng)設(shè)計(jì)
- CNC車間工作總結(jié)
- 青藍(lán)工程老教師指導(dǎo)幫扶青年教師活動(dòng)記錄怎么寫(xiě)范例12篇
- 閉合導(dǎo)線測(cè)量成果表(自動(dòng)計(jì)算)
- 白楊禮贊默寫(xiě)
- 《機(jī)電控制系統(tǒng)分析與設(shè)計(jì)》課程大作業(yè)之一――基于MATLAB
- 跟阿銘學(xué)Linux課后練習(xí)題答案
- 模具(塑膠件)成本估算表
- 建筑施工坍塌事故的預(yù)防和應(yīng)急措施
- 5S的開(kāi)展進(jìn)程——現(xiàn)代企業(yè)現(xiàn)場(chǎng)的5S管理
- 填涂答題卡注意事項(xiàng)PPT精品文檔
評(píng)論
0/150
提交評(píng)論