嵌入式實(shí)時(shí)操作系統(tǒng)uCOS-II_第1頁
嵌入式實(shí)時(shí)操作系統(tǒng)uCOS-II_第2頁
嵌入式實(shí)時(shí)操作系統(tǒng)uCOS-II_第3頁
嵌入式實(shí)時(shí)操作系統(tǒng)uCOS-II_第4頁
嵌入式實(shí)時(shí)操作系統(tǒng)uCOS-II_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

嵌入式實(shí)時(shí)操作系統(tǒng)uCOS-II講座的主要內(nèi)容一.計(jì)算機(jī)操作系統(tǒng)的基本概念二.操作系統(tǒng)中常用的數(shù)據(jù)結(jié)構(gòu)三.并發(fā)操作系統(tǒng)的概念四.任務(wù)的要素五.μC/OS-II的任務(wù)管理(任務(wù)調(diào)度)六.μC/OS-II的中斷和時(shí)鐘七.μC/OS-II的任務(wù)的同步與通信八.μC/OS-II的存儲(chǔ)管理九.硬件抽象層和測試臺操作系統(tǒng)是一種為應(yīng)用程序提供服務(wù)的系統(tǒng)軟件,是一個(gè)完整計(jì)算機(jī)系統(tǒng)的有機(jī)組成部分。從層次來看,操作系統(tǒng)位于計(jì)算機(jī)硬件之上,應(yīng)用軟件之下。所以也把它叫做應(yīng)用軟件的運(yùn)行平臺。什么是計(jì)算機(jī)操作系統(tǒng)(OperatingSystem,OS)它在計(jì)算機(jī)應(yīng)用程序與計(jì)算機(jī)硬件系統(tǒng)之間,屏蔽了計(jì)算機(jī)硬件工作的一些細(xì)節(jié),并對系統(tǒng)中的資源進(jìn)行有效的管理。通過提供函數(shù)(應(yīng)用程序接口(API)),從而使應(yīng)用程序的設(shè)計(jì)人員得以在一個(gè)友好的平臺上進(jìn)行應(yīng)用程序的設(shè)計(jì)和開發(fā),大大地提高了應(yīng)用程序的開發(fā)效率。計(jì)算機(jī)操作系統(tǒng)的作用從用戶的角度來看,它就是一大堆函數(shù)(API和系統(tǒng)函數(shù)),用戶可以調(diào)用(普通調(diào)用或系統(tǒng)調(diào)用)它們來對系統(tǒng)資源進(jìn)行操作。計(jì)算機(jī)硬件用匯編語言編寫的硬件抽象層高級語言的接口應(yīng)用軟件操作系統(tǒng)操作系統(tǒng)計(jì)算機(jī)操作系統(tǒng)的功能處理器的管理存儲(chǔ)管理網(wǎng)絡(luò)和通信的管理I/O設(shè)備管理文件管理任務(wù)管理任務(wù)表存儲(chǔ)分配表文件目錄設(shè)備表總之,需要一大堆表操作系統(tǒng)中經(jīng)常使用的數(shù)據(jù)結(jié)構(gòu)(數(shù)組)數(shù)組1。同一數(shù)據(jù)類型數(shù)據(jù)的集合;2。占用連續(xù)內(nèi)存空間;3。其中的所有元素名稱都相同,但每個(gè)元素都有一個(gè)編號;4。元素名去掉編號(下標(biāo)),得到的是數(shù)組名,數(shù)組名是個(gè)指針。inta[10]a[0]a[1]a[2]a[3]a[9]aa+1使用上的特點(diǎn):1。分類存放;2。檢索速度快且恒定;3。缺點(diǎn):占用連續(xù)空間大……a+2a+3a+9應(yīng)用:記錄同類事物的表操作系統(tǒng)中經(jīng)常使用的數(shù)據(jù)結(jié)構(gòu)(位圖)位圖是數(shù)組的一種特殊應(yīng)用a[10](可以記錄80個(gè)事物的狀態(tài))a[0]a[1]a[2]a[3]a[9]aa+1……a+2a+3a+9應(yīng)用:登記表1/0D7D6D5D4D3D2D1D0操作系統(tǒng)中經(jīng)常使用的數(shù)據(jù)結(jié)構(gòu)(結(jié)構(gòu))1。不同數(shù)據(jù)類型數(shù)據(jù)的集合;2。占用連續(xù)內(nèi)存空間;structStudent{intage;char*name;charsex;};使用上的特點(diǎn):1。不分類存放,但用來描述同一事物;2。檢索速度快且恒定;應(yīng)用:通訊錄中的一條記錄、工具箱、廚房等等nextnext兩個(gè)元素的鏈表操作系統(tǒng)中經(jīng)常使用的數(shù)據(jù)結(jié)構(gòu)(鏈表)structStudent{Student*nextintage;char*name;charsex;};1。同數(shù)據(jù)類型數(shù)據(jù)的集合;2。不占用連續(xù)內(nèi)存空間。使用上的特點(diǎn):1。分類存放,但空間上不連續(xù)(不需要大量的連續(xù)存儲(chǔ)空間);2。檢索速度慢,且耗費(fèi)的時(shí)間不固定;應(yīng)用:存放大量的較大的表,類似檔案柜操作系統(tǒng)中經(jīng)常使用的數(shù)據(jù)結(jié)構(gòu)(隊(duì)列)按照先進(jìn)先出的規(guī)則組織的數(shù)據(jù)結(jié)構(gòu)可以用數(shù)組也可以用鏈表來實(shí)現(xiàn)主要用于對象的排隊(duì)操作系統(tǒng)中經(jīng)常使用的數(shù)據(jù)結(jié)構(gòu)(堆棧)按照先進(jìn)后出規(guī)則組織的數(shù)據(jù)結(jié)構(gòu)主要用數(shù)組來實(shí)現(xiàn)主要用于程序模塊的嵌套運(yùn)行什么是多任務(wù)系統(tǒng)簡單地說,就是能用一個(gè)處理器并發(fā)(注意,不是同時(shí)!)地運(yùn)行多個(gè)程序的計(jì)算機(jī)管理系統(tǒng)。并發(fā):由同一個(gè)處理器輪換地運(yùn)行多個(gè)程序。或者說是由多個(gè)程序輪班地占用處理器這個(gè)資源。且在占用這個(gè)資源期間,并不一定能夠把程序運(yùn)行完畢。并發(fā)過程示意圖處理器如何進(jìn)行程序的切換?程序的切換(兩句話)處理器是個(gè)傻瓜,PC讓它干啥,它就干啥。PC是個(gè)指路器,它指向哪兒,處理器就去哪兒。從此可以知道,哪個(gè)程序占有了PC,哪個(gè)程序就占有了處理器。

=PC深刻地理解PC是理解系統(tǒng)進(jìn)行程序切換動(dòng)作的關(guān)鍵。所謂切換就是:PC目標(biāo)地址如何操作PC指令:不同的計(jì)算機(jī)類型的指令是不同的。數(shù)據(jù)傳送指令子程序返回指令(由堆棧彈出)中斷服務(wù)程序返回指令(由堆棧彈出)小結(jié)系統(tǒng)是通過把待運(yùn)行程序的地址賦予程序計(jì)數(shù)器PC來實(shí)現(xiàn)程序的切換的。任務(wù)代碼任務(wù)堆棧內(nèi)存處理器PCSP任務(wù)運(yùn)行時(shí)與處理器之間的關(guān)系處理器通過兩個(gè)指針寄存器(PC和SP)來與任務(wù)代碼和任務(wù)堆棧建立聯(lián)系并運(yùn)行它寄存器組程序運(yùn)行環(huán)境運(yùn)行環(huán)境包括了兩部分:處理器中的運(yùn)行環(huán)境和內(nèi)存中的運(yùn)行環(huán)境任務(wù)代碼任務(wù)堆棧內(nèi)存處理器PCSP多任務(wù)時(shí)的問題任務(wù)代碼任務(wù)堆棧內(nèi)存任務(wù)代碼任務(wù)堆棧內(nèi)存?當(dāng)有多個(gè)任務(wù)時(shí),處理器中的運(yùn)行環(huán)境應(yīng)該怎么辦?寄存器組程序運(yùn)行環(huán)境程序虛擬處理器PCSP虛擬處理器PCSP虛擬處理器PCSP虛擬處理器PCSP調(diào)度器多任務(wù)時(shí)任務(wù)與處理器之間關(guān)系的處理程序處理器PCSP在內(nèi)存中為每個(gè)任務(wù)創(chuàng)建一個(gè)虛擬的處理器(處理器部分的運(yùn)行環(huán)境由操作系統(tǒng)的調(diào)度器按某種規(guī)則來進(jìn)行這兩個(gè)復(fù)制工作復(fù)制當(dāng)需要運(yùn)行某個(gè)任務(wù)時(shí)就把該任務(wù)的虛擬處理器復(fù)制到實(shí)際處理器中復(fù)制當(dāng)需要中止當(dāng)前任務(wù)時(shí),則把任務(wù)對應(yīng)的虛擬處理器復(fù)制到內(nèi)存復(fù)制再把另一個(gè)需要運(yùn)行的任務(wù)的虛擬處理器復(fù)制到實(shí)際處理器中寄存器組寄存器組也就是說,任務(wù)的切換是任務(wù)運(yùn)行環(huán)境的切換虛擬處理器虛擬處理器應(yīng)該存儲(chǔ)的主要信息:1。程序的斷點(diǎn)地址(PC)2。任務(wù)堆棧指針(SP)3。程序狀態(tài)字寄存器(PSW)4。通用寄存器內(nèi)容5。函數(shù)調(diào)用信息(已存在于堆棧)另外再用一個(gè)數(shù)據(jù)結(jié)構(gòu)保存任務(wù)堆棧指針(SP),這個(gè)數(shù)據(jù)結(jié)構(gòu)叫做任務(wù)控制塊,它除了保存任務(wù)堆棧指針之外還要負(fù)責(zé)保存任務(wù)其他信息。這些內(nèi)容通常保存在任務(wù)堆棧中,這些內(nèi)容也常叫做任務(wù)的上下文。任務(wù)控制塊是由操作系統(tǒng)另行構(gòu)造的一個(gè)數(shù)據(jù)結(jié)構(gòu),每個(gè)任務(wù)都有一個(gè)。任務(wù)控制塊結(jié)構(gòu)的主要成員typedefstructos_tcb{

OS_STK*OSTCBStkPtr; //指向任務(wù)堆棧棧頂?shù)闹羔?/p>

……

INT8U OSTCBStat; //任務(wù)的當(dāng)前狀態(tài)標(biāo)志

INT8U OSTCBPrio; //任務(wù)的優(yōu)先級別

……}OS_TCB;

任務(wù)代碼任務(wù)堆棧內(nèi)存任務(wù)控制塊其實(shí),程序切換的關(guān)鍵是把程序的私有堆棧指針賦予處理器的堆棧指針SP實(shí)質(zhì)上系統(tǒng)是通過SP的切換來實(shí)現(xiàn)程序的切換的。要建立一個(gè)概念:具有控制塊的程序才是一個(gè)可以被系統(tǒng)所運(yùn)行的任務(wù)。程序代碼、私有堆棧、任務(wù)控制塊是任務(wù)的三要件。任務(wù)控制塊提供了運(yùn)行環(huán)境的存儲(chǔ)位置。任務(wù)的基本概念

把一個(gè)大型任務(wù)分解成多個(gè)小任務(wù),然后在計(jì)算機(jī)中通過運(yùn)行這些小任務(wù),最終達(dá)到完成大任務(wù)的目的。在μC/OS-II中,與上述那些小任務(wù)對應(yīng)的程序?qū)嶓w就叫做“任務(wù)”(實(shí)質(zhì)上是一個(gè)線程),μC/OS-II就是一個(gè)能對這些小任務(wù)的運(yùn)行進(jìn)行管理和調(diào)度的多任務(wù)操作系統(tǒng)。

從應(yīng)用程序設(shè)計(jì)的角度來看,μC/OS-II的任務(wù)就是一個(gè)用戶編寫的C函數(shù)和與之相關(guān)聯(lián)的一些數(shù)據(jù)結(jié)構(gòu)而構(gòu)成的一個(gè)實(shí)體。

任務(wù)代碼任務(wù)堆棧內(nèi)存在內(nèi)存中應(yīng)該存有任務(wù)的代碼和與該任務(wù)配套的堆棧任務(wù)切換過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論