任哲嵌入式實時操作系統(tǒng)uCOSII講座課件_第1頁
任哲嵌入式實時操作系統(tǒng)uCOSII講座課件_第2頁
任哲嵌入式實時操作系統(tǒng)uCOSII講座課件_第3頁
任哲嵌入式實時操作系統(tǒng)uCOSII講座課件_第4頁
任哲嵌入式實時操作系統(tǒng)uCOSII講座課件_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

嵌入式實時操作系統(tǒng)

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

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

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

……

INT8U OSTCBStat; //任務的當前狀態(tài)標志

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

……}OS_TCB;

任務代碼任務堆棧內存任務控制塊其實,程序切換的關鍵是把程序的私有堆棧指針賦予處理器的堆棧指針SP實質上系統(tǒng)是通過SP的切換來實現(xiàn)程序的切換的。要建立一個概念:具有控制塊的程序才是一個可以被系統(tǒng)所運行的任務。程序代碼、私有堆棧、任務控制塊是任務的三要件。任務控制塊提供了運行環(huán)境的存儲位置。虛擬處理器虛擬處理器應該存儲的主要信息:另外再用一個數(shù)據(jù)結構20任務的基本概念

把一個大型任務分解成多個小任務,然后在計算機中通過運行這些小任務,最終達到完成大任務的目的。在μC/OS-II中,與上述那些小任務對應的程序實體就叫做“任務”(實質上是一個線程),μC/OS-II就是一個能對這些小任務的運行進行管理和調度的多任務操作系統(tǒng)。

從應用程序設計的角度來看,μC/OS-II的任務就是一個用戶編寫的C函數(shù)和與之相關聯(lián)的一些數(shù)據(jù)結構而構成的一個實體。

任務代碼任務堆棧內存在內存中應該存有任務的代碼和與該任務配套的堆棧把一個大型任務分解成多個小任務,然后在計算機中通過運行這些小21任務切換過程獲得待運行

溫馨提示

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

評論

0/150

提交評論