




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
嵌入式系統(tǒng)應(yīng)用——ARM與C/OS-Ⅱ第二講基本概念及設(shè)計方法安徽工業(yè)大學(xué)計算機學(xué)院本節(jié)提要1324嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式BSP的基本概念嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)設(shè)計方法5一個嵌入式設(shè)計方法實例馮·諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu)CISC與RISC影響CPU性能的因素存儲器系統(tǒng)I/O接口一、嵌入式系統(tǒng)硬件基礎(chǔ)主要介紹:典型嵌入式系統(tǒng)基本組成-硬件MPU微處理器電源模塊時鐘復(fù)位FlashRAMROMUSBLCDKeyboard外圍電路Other外設(shè)1.1馮·諾依曼體系結(jié)構(gòu)模型指令寄存器控制器數(shù)據(jù)通道輸入輸出中央處理器存儲器程序指令0指令1指令2指令3指令4數(shù)據(jù)數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2ARM7采用1.2哈佛體系結(jié)構(gòu)指令寄存器控制器數(shù)據(jù)通道輸入輸出中央處理器程序存儲器指令0指令1指令2數(shù)據(jù)存儲器數(shù)據(jù)0數(shù)據(jù)1數(shù)據(jù)2地址指令地址數(shù)據(jù)ARM9采用哈佛體系結(jié)構(gòu)獨立的程序存儲器和數(shù)據(jù)存儲器為數(shù)字信號處理提供了較高的性能,因此仍被廣泛使用。實時處理信號會對數(shù)據(jù)存取系統(tǒng)帶來兩方面的壓力:1)大量的數(shù)據(jù)流通過CPU;2)數(shù)據(jù)必須在一個精確的時間間隔內(nèi)被處理,而不是恰巧輪到CPU時進行處理。讓兩個存儲器有不同的端口將提供較大的存儲器帶寬,數(shù)據(jù)和程序不必再競爭同一個端口,因此數(shù)據(jù)適時的移動更加容易。1.3CISC和RISCCISC:復(fù)雜指令集(ComplexInstructionSetComputer)具有大量的指令和尋址方式8/2原則:80%的程序只使用20%的指令大多數(shù)程序只使用少量的指令就能夠運行。RISC:精簡指令集(ReducedInstructionSetComputer)1979年美國加州大學(xué)伯克利分校提出,它將精選出來的指令在流水線處理器中高效執(zhí)行。目前還在發(fā)展和豐富過程中。在通道中只包含最有用的指令確保數(shù)據(jù)通道快速執(zhí)行每一條指令使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單CISC與RISC的數(shù)據(jù)通道IFIDREGALUMEM開始退出IFIDALUMEMREG微操作通道開始退出單通數(shù)據(jù)通道EXEXRISC體系結(jié)構(gòu)的特點大多數(shù)指令只需要執(zhí)行簡單和基本的功能,執(zhí)行過程在一個機器周期內(nèi)完成;由于存儲器訪問指令執(zhí)行時間長,盡量減少這類指令,只保留Load/Store指令;芯片邏輯采用硬布線邏輯以減少指令解釋的開銷,而不采用或少采用微碼技術(shù);減少指令數(shù)和尋址方式,簡化控制部件,提高執(zhí)行速度;指令格式固定,指令譯碼簡單;編譯開銷很大,應(yīng)盡可能優(yōu)化。ARM體系結(jié)構(gòu)在RISC基礎(chǔ)上新增的特殊技術(shù)所有的指令都可以根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率;可用Load/Store指令批量傳送數(shù)據(jù),以提高數(shù)據(jù)的傳輸效果;可在一條數(shù)據(jù)處理指令中同時完成邏輯處理和移位處理。RISC和CISC架構(gòu)各有優(yōu)點,現(xiàn)代的CPU往往采用CISC的外圍,內(nèi)部加入RISC特性。如超常指令集CPU就是融合了RISC和CISC的優(yōu)勢,是CPU的未來發(fā)展方向之一。1.4影響CPU性能的因素:流水線、超標(biāo)量和緩存流水線技術(shù):幾個指令可以并行執(zhí)行。提高了CPU的運行效率內(nèi)部信息流要求通暢流動譯碼取指執(zhí)行add譯碼取指執(zhí)行sub譯碼取指執(zhí)行cmp時間AddSubCmpARM7:三級流水線ARM9:五級流水線ARM10:六級流水線ARM11:八級流水線三級流水線每周期執(zhí)行一條指令的吞吐量是理想情況。由于取指的存儲器訪問和執(zhí)行的數(shù)據(jù)路徑占用都是不可同時共享的資源,對多周期指令來說,就會產(chǎn)生流水線阻塞。如:STR指令的數(shù)據(jù)傳送周期既需要存儲器訪問,又要占用數(shù)據(jù)通道,因此第3條指令的執(zhí)行要等第2條指令的數(shù)據(jù)傳送周期結(jié)束后才能運行。雖然第3、4條指令都在正常時鐘周期被讀出,但譯碼時間被推遲,造成第5條指令的取指延遲。decodefetchaddexcutedecodefetchstrcalc:addr時間123dataxferfetchadddecodeexcutefetchadddecodeexcutedecodefetchaddexcute45ARM的流水線設(shè)計問題縮短程序執(zhí)行時間流水線的相關(guān)問題結(jié)構(gòu)相關(guān)、數(shù)據(jù)相關(guān)、控制相關(guān)等1)提高時鐘頻率。時鐘周期縮短,即每周期完成的工作量減少,就要求簡化流水線的邏輯,從而要增加流水線級數(shù);2)減小CPI。必須改善3級流水線中阻塞狀況,從而需要解決流水線的相關(guān)問題。流水線的相關(guān)問題流水線的結(jié)構(gòu)相關(guān):指指令在流水線中重疊執(zhí)行時,產(chǎn)生資源沖突。在3級馮·諾依曼結(jié)構(gòu)中,數(shù)據(jù)和指令在同一存儲器中,幾乎每一時鐘周期都必須訪問存儲器(取指或傳數(shù)據(jù)),因此訪問數(shù)據(jù)存儲器時就必須停止取指令存儲器。ARM的解決方案是:1)采用分離式數(shù)據(jù)cache和指令cache。此法解決了取指和數(shù)據(jù)傳送的沖突、減小了CPI2)ALU中采用單獨加法器來完成地址計算。使執(zhí)行周期的運算不再產(chǎn)生資源沖突。流水線的相關(guān)問題續(xù)流水線的數(shù)據(jù)相關(guān):指當(dāng)前指令需要前面指令的執(zhí)行結(jié)果。ARM的解決方案是:1)定向(旁路或短路)技術(shù)。將前面指令的執(zhí)行結(jié)果直接傳給后面需要的指令,而不必寫入寄存器。2)流水線互鎖技術(shù)。指令需要的數(shù)據(jù)因以前的指令未完成而沒有準(zhǔn)備好時就產(chǎn)生管道互鎖。互鎖發(fā)生時,流水線將停止這個指令的執(zhí)行,直到數(shù)據(jù)準(zhǔn)備好為止。流水線的控制相關(guān):發(fā)生在流水線遇到分支指令和其它需要改變PC值的指令時。ARM的解決方案是:1)引入延時分支。2)盡早計算出分支轉(zhuǎn)移成功時的PC值。ARM的5級流水線取指:將指令從存儲器中取出,放入指令流水線中。指令譯碼:對指令譯碼,從寄存器堆中讀取寄存器操作數(shù)。執(zhí)行:把一個操作數(shù)移位,產(chǎn)生ALU結(jié)果。數(shù)據(jù)緩存:若需要則訪問數(shù)據(jù)存儲器;否則ALU的結(jié)果只是簡單的緩沖一個時鐘周期,使所有的指令具有同樣的流水線流程。寫回:將指令產(chǎn)生的結(jié)果回寫到寄存器堆,包括任何從存儲器讀取的數(shù)據(jù)。減少了在每個時鐘周期內(nèi)必須完成的最大工作量,進而允許使用較高的時鐘頻率。5級流水線分為:超標(biāo)量執(zhí)行superscalarmachine超標(biāo)量執(zhí)行:超標(biāo)量CPU采用多條流水線結(jié)構(gòu)。超標(biāo)量技術(shù):就是通過重復(fù)設(shè)置多套指令執(zhí)行部件,同時處理并完成多條指令,實現(xiàn)并行操作來達到提高處理速度的目的。超標(biāo)量處理機:一個時鐘周期內(nèi)同時執(zhí)行多條指令的處理機。ARM7、ARM9、ARM11都是單周期指令機;ARM公司推出新一代處理器Cortex-A8處理器將是超標(biāo)量機。
65nm工藝、功耗<300mW、主頻1GHZ,主要用于視頻、游戲等超標(biāo)量執(zhí)行執(zhí)行1預(yù)取指令CACHE譯碼2譯碼1執(zhí)行2執(zhí)行1預(yù)取譯碼2譯碼1執(zhí)行2流水線1流水線2數(shù)據(jù)超標(biāo)量與流水線技術(shù)是兼容的,要在一個時鐘周期內(nèi)同時處理多條指令,超標(biāo)量處理機必須有兩條以上的流水線、多個能獨立工作的操作部件。從而帶來了多流水線的調(diào)度問題和操作部件的資源沖突問題,因而控制邏輯比較復(fù)雜。超標(biāo)量執(zhí)行中的數(shù)據(jù)相關(guān):
subr2,r1,r0;
mulr4,r3,r2;單流水線的標(biāo)量處理機只有連續(xù)出現(xiàn)相同操作的指令序列時流水線才能不“斷流”,功能部件的效率才能充分發(fā)揮。超標(biāo)量處理機正好相反,它希望相同操作的指令不要連續(xù)出現(xiàn),否則會發(fā)生資源沖突。這一要求正好符合一般標(biāo)量程序的特點。高速緩存(CACHE)1、為什么采用高速緩存微處理器的時鐘頻率比內(nèi)存速度提高快得多,高速緩存可以提高內(nèi)存的平均性能。2、高速緩存的工作原理高速緩存是一種小型、快速的存儲器,它保存部分主存內(nèi)容的拷貝。CPU高速緩存控制器CACHE主存數(shù)據(jù)數(shù)據(jù)地址總線和總線橋CPU低速設(shè)備橋數(shù)據(jù)高速總線存儲器高速設(shè)備低速設(shè)備低速總線1.5存儲器系統(tǒng)RAM:隨機存取存儲器,SRAM:靜態(tài)隨機存儲器,DRAM:動態(tài)隨機存儲器
1)SRAM比DRAM快
2)SRAM比DRAM耗電多
3)DRAM存儲密度比SRAM高得多
4)DRAM需要周期性刷新ROM:只讀存儲器FLASH:閃存SRAM和DRAM1)SRAM2)DRAMCSR/WAddrDataCSR/WCASDataRASAddr輸入輸出接口I/OA/D、D/A鍵盤LCD存儲器接口設(shè)備接口例如USBUSB:UniversalSerialBus,通用串行總線大家生活中常見的與USB有關(guān)的東西有:U盤、移動硬盤、無驅(qū)型的MP3(U盤)USB接口的鍵盤、Mouse、打印機、數(shù)碼相機……即插即用,熱插撥,系統(tǒng)不需重啟便可工作,且易于擴展(127個)USB2.0以低成本實現(xiàn)高達480Mb/s的傳輸率(USB1.1的全速設(shè)備可達12Mb/s)接口標(biāo)準(zhǔn)統(tǒng)一、端口供電一個典型的USB通訊系統(tǒng)HOST系統(tǒng)HUBDEVICEDDEVICE應(yīng)用軟件+驅(qū)動程序+接口芯片HUBU盤其他數(shù)據(jù)采集器驅(qū)動代碼+嵌入式處理器+HOST芯片HUBU盤其他數(shù)據(jù)采集器通用系統(tǒng)模型PC機中的情況嵌入式系統(tǒng)應(yīng)用1324嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式BSP的基本概念嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)設(shè)計方法5一個嵌入式設(shè)計方法實例二、嵌入式系統(tǒng)軟件基礎(chǔ)操作系統(tǒng)的分類嵌入式實時操作系統(tǒng)前臺與后臺多任務(wù)(嵌入式應(yīng)用的普遍要求),任務(wù)優(yōu)先級,調(diào)度非占先式與占先式、可重入型函數(shù)主要介紹:3.1操作系統(tǒng)的分類(1)順序執(zhí)行系統(tǒng):系統(tǒng)內(nèi)只含有一個程序,獨占CPU的運行時間,按語句順序執(zhí)行該程序,直至執(zhí)行完畢,另一程序才能啟動運行。如DOS操作系統(tǒng)。(2)分時操作系統(tǒng):系統(tǒng)內(nèi)同時可以有多個程序運行,把CPU的時間按順序分成若干片,每個時間片內(nèi)執(zhí)行不同的程序。如UNIX。(3)實時操作系統(tǒng):系統(tǒng)內(nèi)有多個程序運行,每個程序有不同的優(yōu)先級,只有最高優(yōu)先級的任務(wù)才能占有CPU的控制權(quán)。按實時性分類強實時系統(tǒng),其系統(tǒng)響應(yīng)時間在毫秒或微秒級(數(shù)控機床);一般實時系統(tǒng),其系統(tǒng)響應(yīng)時間在毫秒-幾秒的數(shù)量級上,其實時性的要求比強實時系統(tǒng)要差一些(電子菜譜的查詢)。弱實時系統(tǒng),其系統(tǒng)響應(yīng)時間約為數(shù)十秒或更長(工程機械)。1)循環(huán)輪詢系統(tǒng):(PollingLoop)最簡單的軟件結(jié)構(gòu)是循環(huán)輪詢,程序依次檢查系統(tǒng)的每一個輸入條件,一旦條件成立就進行相應(yīng)的處理。Initialize()While(true){if(condition_1)action_1();if(condition_2)action_2();……if(condition_n)acition_n();}按軟件結(jié)構(gòu)分類2)事件驅(qū)動系統(tǒng):(Event-Drivensystem)事件驅(qū)動系統(tǒng)是能對外部事件直接響應(yīng)的系統(tǒng)。它包括前后臺、實時多任務(wù)、多處理器等,是嵌入式實時系統(tǒng)的主要形式。應(yīng)用程序是一個無限的循環(huán),循環(huán)中調(diào)用相應(yīng)的函數(shù)完成相應(yīng)的操作,這部分可以看成后臺行為(background)。中斷服務(wù)程序處理異步事件,這部分可以看成前臺行為(foreground)。后臺也可以叫做任務(wù)級,前臺也叫中斷級。很多基于微處理器的產(chǎn)品采用前后臺系統(tǒng)設(shè)計,如電話機、玩具等。從省電的角度出發(fā),平時微處理器處在停機狀態(tài),所有的事都靠中斷服務(wù)來完成。前后臺系統(tǒng)(后臺循環(huán)、前臺中斷)ISRISR后臺前臺ISR時間代碼的臨界區(qū)也稱為臨界區(qū),指處理時不可分割的代碼。一旦這部分代碼開始執(zhí)行,則不允許任何中斷打入。在進入臨界區(qū)之前要關(guān)中斷,而臨界區(qū)代碼執(zhí)行完以后要立即開中斷(在任務(wù)切換時,地址、指令、數(shù)據(jù)等寄存器堆棧保護)。代碼的臨界區(qū)多任務(wù)(任務(wù)、進程和線程)CPU寄存器任務(wù)控制塊1任務(wù)控制塊2任務(wù)控制塊n休眠、就緒、運行、掛起、被中斷任務(wù)1任務(wù)2任務(wù)n……CPU寄存器一個任務(wù),也稱作一個線程,是一個簡單的運行程序。每個任務(wù)都是整個應(yīng)用的某一部分,每個任務(wù)被賦予一定的優(yōu)先級,有它自己的一套CPU寄存器和自己的??臻g。多任務(wù)運行的實現(xiàn)實際上是靠CPU在許多任務(wù)之間轉(zhuǎn)換、調(diào)度。
CPU只有一個,輪番服務(wù)于一系列任務(wù)中的某一個。多任務(wù)運行使CPU的利用率得到最大的發(fā)揮,并使應(yīng)用程序模塊化。在實際應(yīng)用中,多任務(wù)的最大特點是,開發(fā)人員可以將很復(fù)雜的應(yīng)用程序?qū)哟位H蝿?wù)的狀態(tài)休眠、就緒、運行、掛起、被中斷系統(tǒng)內(nèi)核(Kernel)與調(diào)度(Scheduler)多任務(wù)系統(tǒng)中,內(nèi)核負責(zé)管理各個任務(wù),或者說為每個任務(wù)分配CPU時間,并且負責(zé)任務(wù)之間的通信。內(nèi)核提供的基本服務(wù)是任務(wù)切換。內(nèi)核本身也增加了應(yīng)用程序的額外負荷,代碼空間增加ROM用量,內(nèi)核本身的數(shù)據(jù)結(jié)構(gòu)增加了RAM的用量。內(nèi)核本身對CPU的占用時間一般在2到5個百分點之間。調(diào)度(Scheduler)是內(nèi)核的主要職責(zé)之一,就是要決定該輪到哪個任務(wù)運行了。多數(shù)實時內(nèi)核是基于優(yōu)先級調(diào)度法的。每個任務(wù)根據(jù)其重要程度的不同被賦予一定的優(yōu)先級?;趦?yōu)先級的調(diào)度法指,CPU總是讓處在就緒態(tài)的優(yōu)先級最高的任務(wù)先運行。非占先式與占先式非占先式(non-preemptive)非占先式調(diào)度法也稱作合作型多任務(wù)(cooperativemultitasking),各個任務(wù)彼此合作共享一個CPU。中斷服務(wù)可以使一個高優(yōu)先級的任務(wù)由掛起狀態(tài)變?yōu)榫途w狀態(tài)。但中斷服務(wù)以后控制權(quán)還是回到原來被中斷了的那個任務(wù),直到該任務(wù)主動放棄CPU的使用權(quán)時,那個高優(yōu)先級的任務(wù)才能獲得CPU的使用權(quán)。非占先式內(nèi)核的一個特點是幾乎不需要使用信號量保護共享數(shù)據(jù)。運行著的任務(wù)占有CPU,而不必擔(dān)心被別的任務(wù)搶占。非占先式內(nèi)核的最大缺陷在于其響應(yīng)高優(yōu)先級的任務(wù)慢,任務(wù)已經(jīng)進入就緒態(tài),但還不能運行,也許要等很長時間,直到當(dāng)前運行著的任務(wù)釋放CPU。內(nèi)核的任務(wù)級響應(yīng)時間是不確定的,不知道什么時候最高優(yōu)先級的任務(wù)才能拿到CPU的控制權(quán),完全取決于應(yīng)用程序什么時候釋放CPU。非占先式(Non-Preemptive)低優(yōu)先級任務(wù)ISR高優(yōu)先級任務(wù)(1)(2)(3)(4)(5)(6)(7)中斷服務(wù)程序使高優(yōu)先級任務(wù)就緒低優(yōu)先級任務(wù)釋放CPU使用權(quán)TIME當(dāng)系統(tǒng)響應(yīng)時間很重要時,要使用占先式(preemptive)內(nèi)核。最高優(yōu)先級的任務(wù)一旦就緒,總能得到CPU的控制權(quán)。當(dāng)一個運行著的任務(wù)使一個比它優(yōu)先級高的任務(wù)進入了就緒態(tài),當(dāng)前任務(wù)的CPU使用權(quán)就被剝奪了,或者說被掛起了,那個高優(yōu)先級的任務(wù)立刻得到了CPU的控制權(quán)。使用占先式內(nèi)核時,應(yīng)用程序不應(yīng)直接使用不可重入型函數(shù)。如果調(diào)入不可重入型函數(shù)時,低優(yōu)先級的任務(wù)CPU的使用權(quán)被高優(yōu)先級任務(wù)剝奪,不可重入型函數(shù)中的數(shù)據(jù)有可能被破壞。占先式(preemptive)占先式(Preemptive)低優(yōu)先級任務(wù)ISR高優(yōu)先級任務(wù)(1)(2)(3)(4)(5)(6)中斷服務(wù)程序使高優(yōu)先級任務(wù)就緒高優(yōu)先級任務(wù)得到CPU使用權(quán)TIME可以被一個以上的任務(wù)調(diào)用,而不必擔(dān)心數(shù)據(jù)的破壞??芍厝胄秃瘮?shù)任何時候都可以被中斷,一段時間以后又可以運行,而相應(yīng)數(shù)據(jù)不會丟失。可重入型函數(shù)只使用局部變量,即變量保存在CPU寄存器中或堆棧中。一個不可重入型函數(shù)的例子intTemp;Voidswap(int*x,int*y){ Temp=*x;*X=*Y;*y=Temp;}可重入型函數(shù)一個可重入型函數(shù)的例子:Voidswap(int*x,int*y){intTemp;
Temp=*x;*X=*Y;*y=Temp;}任務(wù)優(yōu)先級靜態(tài)優(yōu)先級應(yīng)用程序執(zhí)行過程中諸任務(wù)優(yōu)先級不變,則稱之為靜態(tài)優(yōu)先級。在靜態(tài)優(yōu)先級系統(tǒng)中,諸任務(wù)以及它們的時間約束在程序編譯時是已知的動態(tài)優(yōu)先級應(yīng)用程序執(zhí)行過程中,任務(wù)的優(yōu)先級是可變的,則稱之為動態(tài)優(yōu)先級。實時內(nèi)核應(yīng)當(dāng)避免出現(xiàn)優(yōu)先級反轉(zhuǎn)問題。優(yōu)先級反轉(zhuǎn)(PriorityInversion)優(yōu)先級反轉(zhuǎn)發(fā)生在一個高優(yōu)先級的任務(wù)被迫等待一段不確定時間,圖1中3個任務(wù)分別為task1、task2和task3,其優(yōu)先級由高到低。從圖1可知,當(dāng)task3占有由信號量(semaphore)保護的某種共享資源而進入臨界區(qū)執(zhí)行時,task1就緒,由于系統(tǒng)的搶占式調(diào)度策略,出現(xiàn)task1搶占task3執(zhí)行。task1執(zhí)行一段時間后也進入臨界區(qū),但此時task3仍占有此臨界資源的信號量,task1被阻塞,等待task3釋放此信號量。在經(jīng)過這么一段時間后,task2已處于就緒狀態(tài),于是系統(tǒng)調(diào)度task2執(zhí)行。如果task3在task2的執(zhí)行期間一直沒有能夠被調(diào)度執(zhí)行的話,那task1和task3將一直等到task2執(zhí)行完后才能執(zhí)行,task1更要等到task3釋放它所占有的信號量才能執(zhí)行;如果這段時間超出task1的最后期限,task1的調(diào)度出現(xiàn)了問題,此時輕則任務(wù)被長時間阻塞,重則造成系統(tǒng)崩潰。優(yōu)先級反轉(zhuǎn)原因可歸納為:高優(yōu)先級的任務(wù)task1由于要等待被低優(yōu)先級任務(wù)task3占有的臨界資源而被task2阻塞,而此時具有中優(yōu)先級的任務(wù)task2搶占了task3的CPU時間,導(dǎo)致task2先于task1執(zhí)行。信號量(Semaphore)信號量是60年代中期EdgserDijkstra發(fā)明的。信號量實際上是一種約定機制,在多任務(wù)內(nèi)核中普遍使用.信號量用于:控制共享資源的使用權(quán)(滿足互斥條件)標(biāo)志某事件的發(fā)生使兩個任務(wù)的行為同步信號與信號量在英文中都叫做Semaphore,并不加以區(qū)分,它有兩種類型,二進制型(binary)和計數(shù)器型(counting)二值信號量(0、1)計數(shù)式信號量信號量是一個可以用來控制多個進程存取共享資源的計數(shù)器。它經(jīng)常作為一種鎖定機制來防止當(dāng)一個進程正在存取共享資源時,另一個進程也存取同一資源。
信號量的值是與相應(yīng)資源的使用情況有關(guān)的。當(dāng)它的值大于0時,表示當(dāng)前可用資源的數(shù)量;當(dāng)它的值小于0時,其絕對值表示等待使用該資源的進程個數(shù),即在該信號量隊列的節(jié)點個數(shù)。
設(shè)信號量為S,P操作順序執(zhí)行下述兩個動作:①信號量的值減1,即S=S-1;②如果S≥0,則該進程繼續(xù)執(zhí)行;如果S<0,則把該進程的狀態(tài)置為阻塞態(tài),把相應(yīng)的鏈表節(jié)點連入該信號量隊列的末尾并放棄處理機,進行等待(直至其它進程在S上執(zhí)行V操作,把它釋放出來為止)。V操作順序執(zhí)行下述兩個動作:①S值加1,即S=S+1;②如果S>0,則該進程繼續(xù)運行;如果S≤0,則釋放信號量隊列上的第一個PCB(即信號量指針項所指向的PCB)所對應(yīng)的進程(把阻塞態(tài)改為就緒態(tài)),執(zhí)行V操作的進程繼續(xù)運行。死鎖Deadlock死鎖指兩個任務(wù)無限期地互相等待對方控制著的資源。設(shè)任務(wù)T1正獨享資源R1,任務(wù)T2在獨享資源R2,而此時T1又要獨享R2,T2也要獨享R1,于是哪個任務(wù)都沒法繼續(xù)執(zhí)行,發(fā)生了死鎖。最簡單的防止發(fā)生死鎖的方法是讓每個任務(wù)都:先得到全部需要的資源再做下一步的工作用同樣的順序去申請多個資源釋放資源時使用相反的順序任務(wù)同步信號量是實現(xiàn)任務(wù)同步的主要手段。全程變量或共享內(nèi)存郵箱或消息隊列任務(wù)間的通訊(IntertaskCommunication)消息郵箱郵箱是μC/OS-II中另一種通訊機制,它可以使一個任務(wù)或者中斷服務(wù)子程序向另一個任務(wù)發(fā)送一個指針型的變量。該指針指向一個包含了特定"消息"的數(shù)據(jù)結(jié)構(gòu)。消息隊列消息隊列與其他方式的一些比較:1、信號量使用方便,可以解決很多任務(wù)間的協(xié)調(diào)問題,但是信號量所傳遞的信息有限,而內(nèi)存共享雖然傳遞信息可以大些,但是不標(biāo)準(zhǔn)。消息隊列作為一種折忠方式用于線程之間的信息交換。2、消息隊列允許許多的消息排隊,而每個信息可以有不同長度,而傳統(tǒng)管道中的數(shù)據(jù)僅僅是一個數(shù)據(jù)流,沒有邊界。(注:Vxworks中采用管道方式)全程變量用全程變量時,必須保證每個任務(wù)或中斷服務(wù)程序獨享該變量。中斷服務(wù)中保證獨享的唯一辦法是關(guān)中斷。如果兩個任務(wù)共享某變量,各任務(wù)實現(xiàn)獨享該變量的辦法可以是關(guān)中斷再開中斷,或使用信號量1324嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式BSP的基本概念嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)設(shè)計方法5一個嵌入式設(shè)計方法實例嵌入式系統(tǒng)的軟/硬件框架嵌入式系統(tǒng)設(shè)計步驟系統(tǒng)需求分析:確定設(shè)計任務(wù)和設(shè)計目標(biāo),并提煉出設(shè)計規(guī)格說明書,作為正式設(shè)計指導(dǎo)和驗收的標(biāo)準(zhǔn)。系統(tǒng)的需求一般分功能性需求和非功能性需求兩方面。功能性需求是系統(tǒng)的基本功能,如輸入輸出信號、操作方式等;非功能需求包括系統(tǒng)性能、成本、功耗、體積、重量等因素。體系結(jié)構(gòu)設(shè)計:描述系統(tǒng)如何實現(xiàn)所述的功能和非功能需求,包括對硬件、軟件和執(zhí)行裝置的功能劃分以及系統(tǒng)的軟件、硬件選型等。一個好的體系結(jié)構(gòu)是設(shè)計成功與否的關(guān)鍵。硬件/軟件協(xié)同設(shè)計:基于體系結(jié)構(gòu),對系統(tǒng)的軟件、硬件進行詳細設(shè)計。為了縮短產(chǎn)品開發(fā)周期,設(shè)計往往是并行的。應(yīng)該說,嵌入式系統(tǒng)設(shè)計的工作大部分都集中在軟件設(shè)計上,采用面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)、模塊化設(shè)計是現(xiàn)代軟件工程經(jīng)常采用的方法。系統(tǒng)集成:把系統(tǒng)的軟件、硬件和執(zhí)行裝置集成在一起,進行調(diào)試,發(fā)現(xiàn)并改進單元設(shè)計過程中的錯誤。系統(tǒng)測試:對設(shè)計好的系統(tǒng)進行測試,看其是否滿足規(guī)格說明書中給定的功能要求。嵌入式開發(fā)工具與開發(fā)環(huán)境
JTAG(JointTestActionGroup,聯(lián)合測試行動小組)是一種國際標(biāo)準(zhǔn)測試協(xié)議(IEEE1149.1兼容),主要用于芯片內(nèi)部測試?,F(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如DSP、FPGA器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。
JTAG最初是用來對芯片進行測試的,基本原理是在器件內(nèi)部定義一個TAP(TestAccessPort,測試訪問口)通過專用的JTAG測試工具對內(nèi)部節(jié)點進行測試。JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,能實現(xiàn)對各個器件分別測試?,F(xiàn)在,JTAG接口還常用于實現(xiàn)ISP(In-Systemprogrammable,在線編程),對FLASH等器件進行編程。
JTAG編程方式是在線編程,傳統(tǒng)生產(chǎn)流程中先對芯片進行預(yù)編程現(xiàn)再裝到板上因此而改變,簡化的流程為先固定器件到電路板上,再用JTAG編程,從而大大加快工程進度。JTAG接口可對PSD芯片內(nèi)部的所有部件進行編程.
開發(fā)平臺簡介網(wǎng)口JTAGUSB串口0擴展板接口ARM微處理器S3C44B0X擴展口2網(wǎng)卡JTAG仿真器ARM3000開發(fā)板集成開發(fā)環(huán)境運行平臺開始新工程編輯源代碼交叉編譯連接仿真調(diào)試程序下載臺式/筆記本式PC機并口JTAG仿真器網(wǎng)絡(luò)接口JTAG接口USB接口串口0ARM3000開發(fā)板串口USB接口以太網(wǎng)口ARMSDTDebugArmDvkARM7處理器執(zhí)行監(jiān)測結(jié)果超級終端ARM3000開發(fā)板實驗流程結(jié)束嵌入式軟件開發(fā)流程嵌入式系統(tǒng)軟件開發(fā)是在傳統(tǒng)軟件工程方法基礎(chǔ)上,增加了實時、并發(fā)等設(shè)計技術(shù)。幾種常用的開發(fā)方法指令集模擬器一種利用PC機端的仿真開發(fā)軟件模擬調(diào)試的方法。駐留監(jiān)控軟件駐留監(jiān)控程序運行在目標(biāo)板上,PC機端調(diào)試軟件可通過并口、串口、網(wǎng)口與之交互,以完成程序執(zhí)行、存儲器及寄存器讀寫、斷點設(shè)置等任務(wù)JTAG仿真器通過ARM芯片的JTAG邊界掃描口與ARM核進行通信,不占用目標(biāo)板的資源,是目前使用最廣泛的調(diào)試手段在線仿真器使用仿真頭代替目標(biāo)板上的CPU,可以完全仿真ARM芯片的行為。但結(jié)構(gòu)較復(fù)雜,價格昂貴,通常用于ARM硬件開發(fā)中本節(jié)提要1324嵌入式系統(tǒng)硬件基礎(chǔ)嵌入式BSP的基本概念嵌入式系統(tǒng)軟件基礎(chǔ)嵌入式系統(tǒng)設(shè)計方法5一個嵌入式設(shè)計方法實例工程機械體系結(jié)構(gòu)可靠設(shè)計環(huán)境分析成本計算芯片選擇設(shè)計接口調(diào)試…關(guān)鍵技術(shù)主要系統(tǒng)平地機環(huán)境可靠性實驗裝載機攪拌機挖掘機
…軟件選擇開發(fā)…攤鋪機壓路機四、嵌入式設(shè)計方法實例——工程機械監(jiān)控器需求分析與評估功能定義與軟硬件選型概要設(shè)計與軟硬件劃分軟硬件協(xié)同詳細設(shè)計集成調(diào)試維護與升級設(shè)計步驟工程機械方面應(yīng)用
工程機械六大市場領(lǐng)域,均符合國家經(jīng)濟發(fā)展四大戰(zhàn)略所規(guī)定的資金投向,500億投資,一個企業(yè)僅裝載機銷售7000臺。發(fā)展國家基礎(chǔ)設(shè)施建設(shè)西部大開發(fā)發(fā)展城鄉(xiāng)化可持續(xù)發(fā)展交通運輸能源工業(yè)原材料工業(yè)農(nóng)林水利城鄉(xiāng)建設(shè)國防工程建設(shè)工程機械4.1需求分析與評估瀝青路面施工機群資源配置不合理,施工過程施工過程質(zhì)量、進度控制不到位;設(shè)備運行狀況不能及時掌握,故障不能及時排除;分期付款控制技術(shù);智能控制,動力平衡,安全操作存在突出問題監(jiān)控器最重要,及時掌握設(shè)備運行狀況,并進行必要故障診斷;其次是智能控制,動力平衡,安全操作;GPS定位與GSM通訊,是一個很好演示,盡量選用汽車使用模塊;協(xié)同控制,機群化資源配置,并提高施工過程施工過程質(zhì)量,控制進度,目前僅僅是一個發(fā)展方向,還不實用。監(jiān)控器成本,建議控制在2000-3000元,才有競爭力。開發(fā)時間,6個月主要需求4.2功能定義與軟硬件選型8-10臺單機智能化,攪拌機、裝載機、自卸機、攤鋪機、壓路機等,設(shè)計具有GPS(GlobalPositionSystem)/GSM監(jiān)控器;建立通訊網(wǎng)絡(luò)設(shè)立機群化控制中心,數(shù)據(jù)庫、顯示屏、施工調(diào)度算法、工藝文件管理等;單機智能化采用監(jiān)控器,網(wǎng)絡(luò)通訊采用現(xiàn)成設(shè)備,中繼站或短消息,控制中心PC,數(shù)據(jù)庫Ms-SQL,投影儀等;其中這里討論智能化監(jiān)控器機群通訊與定位方案設(shè)備制造商設(shè)備使用商Internet中央控制室攪拌站GPS移動通訊車無線電臺Wirelessnet無線電臺壓路機無線電臺攤鋪機無線電臺轉(zhuǎn)運車GPS自卸卡車機群智能化通訊方案圖GPSGPSGPS“”表示因特網(wǎng)“”表示無線以太網(wǎng)“”表示物料轉(zhuǎn)運方向該課題的研究目標(biāo)研究智能化的監(jiān)控器:可視化,多級界面可控化,具有人機接口內(nèi)嵌的故障診斷,結(jié)合數(shù)據(jù)庫進行通訊功能通過實際測試,提高其可靠性,產(chǎn)品化降低成本,提高性能,最終取代國外產(chǎn)品4.3概要設(shè)計與軟硬件劃分國外同類產(chǎn)品工程機械智能監(jiān)控器的功能監(jiān)控器的硬件選型——CPU32位CPU將成為未來各種電子設(shè)備的核心ARM系列具有精簡指令集,在各種行業(yè)中已經(jīng)獲得了廣泛的應(yīng)用各種開發(fā)、仿真支持工具比較完善,國內(nèi)也應(yīng)經(jīng)形成了開發(fā)熱潮監(jiān)控器的硬件設(shè)計方法-1接口:串行口、CAN總線是主要的通訊接口功能:首先是自動顯示狀態(tài)參數(shù)、報警,并具有通訊功能以通用硬件平臺為基礎(chǔ)首先平臺對于監(jiān)控器開發(fā)適用:人機接口、通訊擴展等已有的研發(fā)工作使我們的開發(fā)更為快捷而且硬件可以裁減、擴充監(jiān)控器的硬件設(shè)計方法在這一平臺上我們進行功能裁減、擴充
擴展性能I/O接口預(yù)留,A/D口預(yù)留,必要時可以擴展采集數(shù)據(jù)總線預(yù)留,便于使用總線擴展芯片擴展接口監(jiān)控器的硬件結(jié)構(gòu)ARM為CPU,8M內(nèi)存,16MFLASH存儲器兩個UART分別連接GPS、GSM模塊USB高速下載,JTAG調(diào)試口擴展CAN總線接口監(jiān)控器的軟件需求分析監(jiān)控器軟件的特點:圖形界面重要:數(shù)字化儀表、模擬顯示儀表加強操作性能:可以控制、菜單顯示多種方式報警:聲、圖像顯示通訊功能強大:本地通訊和近遠程通信操作系統(tǒng)選型分析操作系統(tǒng)選型主要考慮如下幾個方面:車輛設(shè)備要求實時操作系統(tǒng)外設(shè)很多,所以必須支持多任務(wù)根據(jù)不同的車輛軟件可裁剪開發(fā)工具要完善,能夠快捷的開發(fā)監(jiān)控器的軟件設(shè)計方法采用COS-II作為操作系統(tǒng)它是一個實時內(nèi)核支持多任務(wù)管理擴展的文件管理系統(tǒng)擴展的各種設(shè)備驅(qū)動免費使用工程機械智能監(jiān)控器體系結(jié)構(gòu)設(shè)計智能化監(jiān)控器的指導(dǎo)思想功能和可靠性是工程機械監(jiān)控器的兩大要素,必須在兩者之間尋找一個契合點??煽啃栽O(shè)計要求:一體化設(shè)計,軟件精簡基本功能軟件考慮:模板設(shè)計,實用簡單
解決的方法:列舉各種功能,保留必要,去除冗余,插接可靠構(gòu)件設(shè)計,對象封裝,功能的模塊化,軟件的模板化,便于調(diào)用。使技術(shù)人員能夠快速編程學(xué)習(xí)4.4軟硬件協(xié)同詳細設(shè)計劃分功能模塊:系統(tǒng)驅(qū)動模塊、通訊模塊、圖形顯示模塊、數(shù)據(jù)處理模塊等,在大的模塊下面又分為小的模塊。根據(jù)功能加減模塊:比如機群智能化就要求具有GPS和GSM功能模塊,而在以后的復(fù)雜機器中還要有控制功能模塊等。模塊化設(shè)計方法
首先作出一臺機器的軟件,對其進行提煉作為系統(tǒng)模板:比如首先設(shè)計攤鋪機的軟件,根據(jù)它提煉功能模塊,并設(shè)計壓路機和裝載機的軟件。軟件模板要求結(jié)構(gòu)清晰,可以根據(jù)該模板并參考程序添加代碼,完成專用機型的軟件。模板化使用方法監(jiān)控器的功能要求能實時接受總線信息(CAN),簡單處理后在液晶屏上動態(tài)刷新能夠針對信息進行故障診斷、可以自動報警(液晶屏)接受GPS地理位置信息,確定當(dāng)前位置定時發(fā)送GSM信息,包括地理、狀態(tài)信息,接收中心站的GSM指令手動輸入故障和需要停機時間監(jiān)控器的功能模塊1.GPS數(shù)據(jù)處理:使用NMEA01832.GSM數(shù)據(jù)處理:使用AT指令集3.CAN總線數(shù)據(jù)處理4.鍵盤消息處理5.數(shù)據(jù)顯示6.GSM數(shù)據(jù)發(fā)送:使用GSM模塊NationalMarineElectronicsAssociation全國海洋電子協(xié)會[美]軟件的實現(xiàn)和技巧采用多任務(wù)任務(wù)一:串行口掃描由于GPS每秒向串行口發(fā)送數(shù)據(jù),GSM指令也送入串行口,因此系統(tǒng)掃描串行口,處理進入信息。任務(wù)二:CAN總線掃描系統(tǒng)每隔幾個毫秒掃描CAN總線的SJA1000內(nèi)部寄存器,查詢是否有新的信息。任務(wù)三:鍵盤掃描 作為人機接口的重要部分,鍵盤掃描可以手工輸入指令,查詢系統(tǒng)信息。軟件的實現(xiàn)和技巧CAN總線消息的管理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 23093-5:2025 EN Information technology - Internet of media things - Part 5: IoMT autonomous collaboration
- 【正版授權(quán)】 IEC 61215:2005 FR-D Crystalline silicon terrestrial photovoltaic (PV) modules - Design qualification and type approval
- 【正版授權(quán)】 IEC 61558-1:1997+AMD1:1998 CSV EN-D Safety of power transformers,power supply units and similar - Part 1: General requirements and tests
- 【正版授權(quán)】 IEC 61058-1:2000+AMD1:2001 CSV EN-D Switches for appliances - Part 1: General requirements
- 2025年主題教育活動實施方案
- 2025年五一主題勞動光榮活動方案
- 放射性腸炎的評估及護理
- 校園安全教育活動方案2025年模板
- 伺服系統(tǒng)與工業(yè)機器人 課件匯 第6-13章 伺服驅(qū)動器的參數(shù)配置-工業(yè)機器人工程應(yīng)用及實例
- 迎接2025年元旦節(jié)聯(lián)歡晚會活動方案
- 天津市南開區(qū)2024-2025學(xué)年高三下學(xué)期質(zhì)量監(jiān)測(一)地理試卷(原卷版+解析版)
- 【原創(chuàng)】學(xué)校書記中央八項規(guī)定精神學(xué)習(xí)心得
- 樓梯踏步抹灰標(biāo)準(zhǔn)合同7篇
- 【廈門大學(xué)】DeepSeek大模型賦能高校教學(xué)和科研
- 西安房屋租賃合同(官方版)6篇
- 2025年商丘職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫含答案
- 2025年榆林城市投資經(jīng)營集團有限公司招聘筆試參考題庫含答案解析
- 液氯鋼瓶應(yīng)急堵漏工具操作指導(dǎo)規(guī)程
- 2025屆高三化學(xué)二輪復(fù)習(xí) 化學(xué)工藝流程 課件
- 2024廣東深圳市龍崗區(qū)產(chǎn)服集團“春雨”第二批招聘筆試筆試參考題庫附帶答案詳解
- PLC應(yīng)用技術(shù)課件 任務(wù)7. S7-1200 PLC控制電動機星三角啟動(定時器)
評論
0/150
提交評論