久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

uCosIII 學(xué)習(xí)

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年08月17日   【字體:

本人前言: 

很久沒有練習(xí)英語了,本想發(fā)點(diǎn)時(shí)間在工作之余,翻譯一下μC/OS III用戶手冊,發(fā)現(xiàn)還是有點(diǎn)吃力,于是乎,參見網(wǎng)絡(luò)上的嘉興學(xué)院的屈環(huán)宇同學(xué)的譯本,謝謝!

前言
做為Micrium 公司推出的第三代操作系統(tǒng), μC/OS III支持現(xiàn)代的實(shí)時(shí)內(nèi)核所期待的大部分功能;
μC/OS III是一個(gè)可裁剪、可固化、基于優(yōu)先級的實(shí)時(shí)內(nèi)核,支持例如資源管理、同步、任務(wù)間的通信等等。同時(shí)μC/OS III也具備一些很有特色的功能,是很多的其他的實(shí)時(shí)內(nèi)核所不具備的,比如完備的實(shí)際測量性能、直接發(fā)送信號或消息到任務(wù)、任何可同時(shí)等待多個(gè)內(nèi)核對象等。
與第二代μC/OS II相比,μC/OS III更加優(yōu)秀,μC/OS III中刪除或更新了μC/OS II中很少使用的一些功能;添加了更高效的功能和服務(wù),比如時(shí)間片輪轉(zhuǎn)調(diào)度(round robin)等,μC/OS II最多支持64個(gè)任務(wù),而μC/OS III在理論上任務(wù)數(shù)量沒有限
 

第一章  介紹

  實(shí)時(shí)系統(tǒng)
軟實(shí)時(shí)系統(tǒng)和硬實(shí)時(shí)系統(tǒng)的區(qū)別在于一旦沒有在規(guī)定的時(shí)間內(nèi)完 成任務(wù)所導(dǎo)致后果的嚴(yán)重性。超過時(shí)限后所得到的結(jié)果即使正確也可 能是毫無作用的。 硬實(shí)時(shí)系統(tǒng)中,運(yùn)算超時(shí)是不允許發(fā)生的。在很多情況下,超時(shí) 會(huì)導(dǎo)致巨大的災(zāi)難,會(huì)威脅人們的生命安全。但是在軟實(shí)時(shí)系統(tǒng)中, 超時(shí)不會(huì)導(dǎo)致嚴(yán)重后果。
 
  前后臺(tái)系統(tǒng)
簡單的小型系統(tǒng)設(shè)計(jì)一般是基于前后臺(tái)的或者無限循環(huán)的系統(tǒng)。 包含一個(gè)無限循環(huán)的模塊實(shí)現(xiàn)需要的操作(后臺(tái))。中斷處理程序?qū)?現(xiàn)異步事件(前臺(tái))。前臺(tái)也叫做中斷級,后臺(tái)也叫作任務(wù)級。
  多數(shù)高產(chǎn)量低成本微控制器的應(yīng)用軟件(例如微波爐,電話玩具等)都是基于前后臺(tái)系統(tǒng)的。
  
  實(shí)時(shí)內(nèi)核
  實(shí)時(shí)內(nèi)核是一個(gè)能管理MPU、MCU、DSP時(shí)間和資源的軟件。
  實(shí)時(shí)內(nèi)核的應(yīng)用包括迅速地響應(yīng),可靠地完成工作的各個(gè)部分。任務(wù)(也叫做線程)是一段簡單的程序,運(yùn)行時(shí)完全地占用CPU。在單CPU中,任何時(shí)候只有1個(gè)任務(wù)被執(zhí)行。
  內(nèi)核的責(zé)任是管理任務(wù),也做多任務(wù)處理。多任務(wù)處理的作用是協(xié)調(diào)和切換多個(gè)任務(wù)依次享用CPU。多任務(wù)處理最大化CPU的功能同時(shí)會(huì)讓我們感覺是多個(gè)CPU在同時(shí)運(yùn)行。多任務(wù)處理也有利于處理模塊化的應(yīng)用。多任務(wù)處理一個(gè)最重要的方面在于它允許程序員管理復(fù)雜的實(shí)時(shí)應(yīng)用。在多任務(wù)處理中程序員可以簡單的維護(hù)和升級產(chǎn)品。
  uC/OS-III是一個(gè)搶占式內(nèi)核,這意味著uC/OS-III總是執(zhí)行最重要的就緒任務(wù),
  uC/OS-III內(nèi)核也負(fù)責(zé)管理任務(wù)間的交流,系統(tǒng)的資源(內(nèi)存和I/O)。
  系統(tǒng)中加入內(nèi)核需要額外的支出,因?yàn)閮?nèi)核提供服務(wù)時(shí)需要時(shí)間去處理。大多數(shù)的額外支出取決于服務(wù)的調(diào)用頻繁度。在一個(gè)優(yōu)秀的設(shè)計(jì)中,內(nèi)核占用CPU的時(shí)間介于2%到4%之間。因?yàn)閡C/OS-III是一個(gè)軟件,添加到目標(biāo)系統(tǒng)中需要額外的ROM和RAM。低檔的單片機(jī)很有可能不支持像uC/OS-III那樣的實(shí)時(shí)內(nèi)核,因?yàn)樗挥泻苌俚腞AM可供訪問。uC/OS-III內(nèi)核需要1K到4K之間的RAM,加上每個(gè)任務(wù)自己所需的堆棧空間。至少有4K大小RAM的處理器才有可能成功移植uC/OS-III。最后,為了更好地使用CPU,uC/OS-III提供了大約70種常用的服務(wù)。當(dāng)用過像uC/OS-III那樣的具有實(shí)時(shí)內(nèi)核的系統(tǒng)后,你將不會(huì)再去使用前后臺(tái)系統(tǒng)了。
  實(shí)時(shí)系統(tǒng)(RTOS)
  一個(gè)實(shí)時(shí)系統(tǒng)通常包括一個(gè)實(shí)時(shí)內(nèi)核以及其他高級的服務(wù),例如:文件管理,堆棧協(xié)議,圖形用戶接口等等。大多數(shù)服務(wù)都是跟I/O有關(guān)的。
  Micrium提供了RTOS一套完整的組件,包括uC/FS、uC/TCP-IP、uC/GUI、uC/USB等。這些組件大部分都可以單獨(dú)執(zhí)除了uC/TCP-IP。實(shí)時(shí)內(nèi)核在應(yīng)用中不是必須的。事實(shí)上,用戶可以單獨(dú)選擇您的應(yīng)用所需用的組件。
  uC/OS-III
  uC/OS-III是一個(gè)可擴(kuò)展的,可固化的,搶占式的實(shí)時(shí)內(nèi)核,它管理的任務(wù)個(gè)數(shù)不受限制。它是第三代內(nèi)核,提供了現(xiàn)代實(shí)時(shí)內(nèi)核所期望的所有功能包括資源管理、同步、內(nèi)部任務(wù)交流等。uC/OS-III也提供了很多特性是在其他實(shí)時(shí)內(nèi)核中所沒有的。比如能在運(yùn)行時(shí)測量運(yùn)行性能,直接得發(fā)送信號或消息給任務(wù),任務(wù)能同時(shí)等待多個(gè)信號
量和消息隊(duì)列。
  以下列出uC/OS-III的特點(diǎn):
  源代碼、應(yīng)用程序接口(API)、搶占式多任務(wù)處理、時(shí)間片輪轉(zhuǎn)調(diào)度、快速響應(yīng)中斷、確定性的、可擴(kuò)展的、易移植的、可固化的、可實(shí)時(shí)配置的、任務(wù)數(shù)無限制、優(yōu)先級數(shù)無限制、內(nèi)核對象數(shù)無限制、各種系統(tǒng)服務(wù)、互斥信號量(Mutexes)、嵌套的任務(wù)停止、軟件定時(shí)器、掛起多個(gè)對象、任務(wù)信號量、任務(wù)消息、任務(wù)寄存器、錯(cuò)誤檢測、內(nèi)置的性能測量、可優(yōu)化、死鎖預(yù)防、任務(wù)級的時(shí)基處理、用戶可定義的鉤子函數(shù)、時(shí)間戳、嵌入的內(nèi)核調(diào)試器、對象名稱。
  時(shí)間片輪轉(zhuǎn)調(diào)度uC/OS-III允許多個(gè)任務(wù)擁有相同的優(yōu)先級。當(dāng)多個(gè)相同優(yōu)先級的任務(wù)就緒時(shí),并且這個(gè)優(yōu)先級是目前最高的。uC/OS-III會(huì)分配用戶定義的時(shí)間片給每個(gè)任務(wù)去運(yùn)行。每個(gè)任務(wù)可以定義不同的時(shí)間片。當(dāng)任務(wù)用不完時(shí)間片時(shí)可以讓出CPU給另一個(gè)任務(wù)。
  任務(wù)數(shù)無限制uC/OS-III對任務(wù)數(shù)量無限制。實(shí)際上,任務(wù)的數(shù)量限制于處理器能提供的內(nèi)存大小。每一個(gè)任務(wù)需要有自己的堆棧空間,uC/OS-III在運(yùn)行時(shí)監(jiān)控任務(wù)堆棧的生長。uC/OS-III對任務(wù)的大小無限制,
  優(yōu)先級數(shù)無限制uC/OS-III對優(yōu)先級的數(shù)量無限制。然而,配置uC/OS-III的優(yōu)先級在32到256之間已經(jīng)滿足大多數(shù)的應(yīng)用了
  內(nèi)核對象數(shù)無限制uC/OS-III支持任何數(shù)量的任務(wù)、信號量、互斥信號量、事件標(biāo)志組、消息隊(duì)列、軟件定時(shí)器、內(nèi)存分區(qū)。用戶在運(yùn)行時(shí)分配所有的內(nèi)核對象
  互斥信號量(Mutexes):互斥信號量用于資源管理。它是一個(gè)內(nèi)置優(yōu)先級的特殊類型信號量,用于消除優(yōu)先級反轉(zhuǎn)。互斥信號量可以被嵌套,因此,任務(wù)可申請同一個(gè)互斥信號量多達(dá)250次。當(dāng)然,互斥信號量的占有者需要釋放同等次數(shù)。
  嵌套的任務(wù)停止:uC/OS-III允許任務(wù)停止自身或者停止另外的任務(wù)。停止一個(gè)任務(wù)意味著這個(gè)任務(wù)將不再執(zhí)行直到被其他的任務(wù)恢復(fù)。停止可以被嵌套到250級。換句話說,一個(gè)任務(wù)可以停止另外的任務(wù)多達(dá)250次。當(dāng)然,這個(gè)任務(wù)必須被恢復(fù)同等次數(shù)才有資格再次獲得CPU。
  軟件定時(shí)器:可以定義任意數(shù)量的一次性的、周期性的、或者兩者兼有的定時(shí)器。定時(shí)器是倒計(jì)時(shí)的,執(zhí)行用戶定義的行為一直到計(jì)數(shù)減為0。每一個(gè)定時(shí)器可以有自己的行為,如果一個(gè)定時(shí)器是周期性的,計(jì)數(shù)減為0時(shí)會(huì)自動(dòng)重裝計(jì)數(shù)值并執(zhí)行用戶定義的行為。
  掛起多個(gè)對象:uC/OS-III允許任務(wù)等待多個(gè)事件的發(fā)生。特別的,任務(wù)可以同時(shí)等待多個(gè)信號量和消息隊(duì)列被提交。等待中的任務(wù)在事件發(fā)生的時(shí)候被喚醒。
  任務(wù)信號量:uC/OS-III允許ISR或者任務(wù)直接地發(fā)送信號量給其它任務(wù)。這樣就避免了必須產(chǎn)生一個(gè)中間級內(nèi)核對象如一個(gè)信號量或者事件標(biāo)志組只為了標(biāo)記一個(gè)任務(wù)。提高了內(nèi)核性能
  任務(wù)消息:uC/OS-III允許ISR或者任務(wù)直接發(fā)送消息到另一個(gè)任務(wù)。這樣就避免產(chǎn)生一個(gè)消息隊(duì)列,提高了內(nèi)核性能。
  內(nèi)置的性能測量:uC/OS-III有內(nèi)置性能測量功能。能測量每一個(gè)任務(wù)的執(zhí)行時(shí)間,每個(gè)任務(wù)的堆棧使用情況,任務(wù)的執(zhí)行次數(shù),CPU的使用情況,ISR到任務(wù)的切換時(shí)間,任務(wù)到任務(wù)的切換時(shí)間,列表中的峰值數(shù),關(guān)中斷、鎖調(diào)度器平均時(shí)間等。
  任務(wù)寄存器:每一個(gè)任務(wù)可以擁有用戶可定義的任務(wù)寄存器,不同于CPU寄存器。
  可優(yōu)化:uC/OS-III有內(nèi)置性能測量功能。能測量每一個(gè)任務(wù)的執(zhí)行時(shí)間,每個(gè)任務(wù)的堆棧使用情況,任務(wù)的執(zhí)行次數(shù),CPU的使用情況,ISR到任務(wù)的切換時(shí)間,任務(wù)到任務(wù)的切換時(shí)間,列表中的峰值數(shù),關(guān)中斷、鎖調(diào)度器平均時(shí)間等。
  用戶可定義的鉤子函數(shù):uC/OS-III允許程序員定義hook函數(shù),hook函數(shù)被uC/OS-III調(diào)用。hook函數(shù)允許用戶擴(kuò)展uC/OS-III的功能。有的hook函數(shù)在任務(wù)切換的時(shí)候被調(diào)用,有的在任務(wù)創(chuàng)建的時(shí)候被調(diào)用,有的在任務(wù)刪除的時(shí)候被調(diào)用。
  時(shí)間戳:為了測量時(shí)間,uC/OS-III需要一個(gè)16位或者32位的時(shí)時(shí)間戳計(jì)數(shù)器。這個(gè)計(jì)數(shù)器值可以在運(yùn)行時(shí)被讀取以測量時(shí)間。例如:當(dāng)ISR提交消息到任務(wù)時(shí),時(shí)間戳計(jì)數(shù)器自動(dòng)讀取并保存作為消息。當(dāng)接收者接收到這條消息,時(shí)間戳被提供在消息內(nèi)。通過讀取現(xiàn)在的時(shí)間戳,消息的響應(yīng)時(shí)間可以被確定。
  嵌入的內(nèi)核調(diào)試器:這個(gè)功能允許內(nèi)核調(diào)試器查看uC/OS-III的變量和數(shù)據(jù)結(jié)構(gòu)通過一個(gè)用戶定義的通道。(但是只能在調(diào)試器遇到斷點(diǎn)的時(shí)候查看)。uC/OS-III內(nèi)核也支持uC/Probe(探針)在運(yùn)行時(shí)顯示信息。
 





μC/OS III 的目錄和文件:



F2-1(1)應(yīng)用代碼包括與工程、產(chǎn)品相關(guān)文件。為了方便,這些被簡單地叫做APP.C和APP.H。Main()函數(shù)應(yīng)該在APP.C代碼中
F2-1(2)半導(dǎo)體廠家通常會(huì)提供庫函數(shù)以控制那些CPU或MCU的外設(shè)。這些庫非常有用并且高效。因?yàn)閷@些文件沒有規(guī)定。所以假定為*.C,*.H。
F2-1(3)板級支持包通常被用來初始化目標(biāo)板。例如打開或關(guān)閉LED、繼電器、讀取開關(guān)值、讀取溫度傳感器等。
F2-1(4)這些是uC/OS-III的與處理器無關(guān)的代碼。這些代碼都是高度遵循ANSIC標(biāo)準(zhǔn)。
F2-1(5)這些uC/OS-III代碼用于適應(yīng)不同架構(gòu)的CPU,在名為port的文件夾中。uC/OS-III源于uC/OS-II。uC/OS-II能移植成功的,只要稍有改動(dòng)便能移植uC/OS-III。詳見附錄C。
F2-1(6)在Micrium,我們喜歡去總結(jié)CPU的功能。這些包括中斷的使能和除能。CPU_???類型的文件都是獨(dú)立于CPU的,在編譯時(shí)用到,而且可能非常有用。
F2-1(7)uC/LIB是一系列的源文件,提供了常用基本的功能如內(nèi)存拷貝,字符串,ASCII相關(guān)的函數(shù)。一些可以代替編譯器提供的stdlib的功能。這些文件是應(yīng)用與應(yīng)用間,編譯器與編譯器間可移植。uC/OS-III不需要這些文件,但是uC/CPU需要。
F2-1(8)uC/OS-III功能的配置文件(OS_CFG.H)包含在應(yīng)用中,OS_CFG_APP.H定義了uC/OS-III所需的變量類型大小、數(shù)據(jù)的結(jié)構(gòu)、空閑任務(wù)堆棧的大小、時(shí)鐘速率、內(nèi)存池大小等。
 
 
應(yīng)用代碼
 
如果Micrium提供了例子。那么它將被包含在如下的目錄結(jié)構(gòu)。
\Micrium
\Software
\EvalBoards
\
\
\
\
\*.*
\Micrium
這是我們存放軟件或工程的地方,通常位于電腦的根目錄。
\Software
子目錄中是軟件成分。
\EvalBoards
子目錄中包含了評估版的工程。
\
制造商的名字名字中不包括"<"和">"。
\
評估板的名字。Micrium通常命名為uC-Eval-xxxx。用CPU或MCU
類型替代''xxxx''。
\
代碼所用編譯器的名字
\
工程名。例如,uC/OS-III工程會(huì)被命名為"OS-Ex1"。"-Ex1"表明
工程中值包含uC/OS-III。命名為OS-Probe-Ex1表示工程中包含
uC/OS-III和uC/Probe。
\*.*
這些是工程的源文件,main文件可以被命名為APP*.*。目錄中也
包括配置文件OS_CFG.H,OS_CFG_APP.H以及其它需要的源文件。
 
CPU
在這個(gè)目錄中,你會(huì)找到半導(dǎo)體廠商提供的外設(shè)庫文件。
\Micrium
  \Software
    \CPU
       \
          \
\*.*
板級支持包(BSP)
板級支持包通常是目標(biāo)器件的特殊配置。實(shí)時(shí)上,寫得好的話,
BSP將適用于多個(gè)工程
\Micrium
\Software
\EvalBoards
\
\
\
\BSP
\*.*
各目錄中有哪些文件都可以參考用戶手冊,加以了解。
關(guān)閉窗口
主站蜘蛛池模板: 欧美一区二区三区在线观看视频 | 中文字幕三区 | 久久国产精品亚洲 | 欧美一区二区三区视频在线观看 | 日韩影音 | 日韩中文一区 | 精品视频一二区 | 久久精品国产亚洲 | 2020国产在线 | 精品国产一区一区二区三亚瑟 | 7777久久 | 精品美女久久久 | 好姑娘影视在线观看高清 | 日韩免费在线观看视频 | 在线视频中文字幕 | 亚洲 欧美 日韩在线 | 国产精品二区三区在线观看 | 亚洲精品国产第一综合99久久 | 日韩欧美一区二区三区免费观看 | 欧美片网站免费 | 日韩一区二区在线播放 | 亚洲欧美国产一区二区三区 | 亚洲国产中文字幕 | 欧美日韩亚洲国产 | 国产情侣啪啪 | 亚洲精品九九 | 91精品国产乱码久久久久久久久 | 日日夜夜av | 超碰网址| 99国产精品久久久久 | 欧美精品在线一区 | 成年人网站免费视频 | 精品国产欧美一区二区 | 国产亚洲精品美女久久久久久久久久 | 成人二区| 日韩一区二区福利视频 | 四色成人av永久网址 | 亚洲人成人一区二区在线观看 | 中文字幕国产视频 | 日韩电影免费在线观看中文字幕 | 91视频一区二区三区 |