久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
嵌入式操作系統(tǒng)μC/OS-III相關(guān)改動
[打印本頁]
作者:
liuyang
時間:
2013-11-22 00:19
標題:
嵌入式操作系統(tǒng)μC/OS-III相關(guān)改動
邵老師長期從事單片機和嵌入式系統(tǒng)教學(xué)和應(yīng)用工作,并負責清華大學(xué)飛思卡爾實驗室工作。邵老師與大家分享了μC/OS的發(fā)展經(jīng)歷,即將發(fā)布的μC/OS-III的細節(jié),以及他對未來嵌入式操作系統(tǒng)的認識。
以下是文字實錄。
大家好,我講講μC/OS-III,原來是μC/OS-II,現(xiàn)在到了μC/OS-III。今年第一期《電子產(chǎn)品世界》里有一篇調(diào)查,有627份中國嵌入式系統(tǒng)工程師的調(diào)查問卷,顯示出現(xiàn)在用的最多的38%使用Linux,排在第二個就是μC/OS-II占到34%,其中μC/OS-II還是專門為嵌入式設(shè)計的實時操作系統(tǒng),說明μC/OS-II從前幾年進到中國以來,是有影響力的操作系統(tǒng),據(jù)我了解,在美國好像還沒有這么多的影響。影響力比較大的是中國和印度這樣大的發(fā)展中國家,也包括日本和韓國。我們可以看到幾乎能想到的CPU,在網(wǎng)上都可以下載到、移植的范例,這還不是全部,很多像Altera軟核里面都有μC/OS的移植。
最早μC/OS是一本書,是93年出的,95年我到意大利國際物理中心準備做instructor,開一個叫做《嵌入式實時系統(tǒng)在物理學(xué)應(yīng)用》的一個講習(xí)班,講習(xí)班大部分是印度人、中國人等,講課老師大部分從歐洲核研究中心和美國大學(xué)來的,其中就拿了這個東西作為教材。它最早是為摩托羅拉68HC11增強型單片機寫的,管理四個任務(wù),用查表的辦法來確定優(yōu)先級。90%以上的代碼是自己寫的,和硬件無關(guān),相關(guān)的代碼不到200行,書上提供了一個可以在PC上跑的一個8088范例,可裁剪可固化,其實μC/OS這本書是個很好的教材,只有261頁,其中有100頁是源代碼,解釋了150頁。后來這本書,96年以后,在我們實驗室,給研究生用的較多,一直沒找到哪個出版社愿意買它的版權(quán)。
到了2000年的時候,再想回到μC/OS的時候,已經(jīng)不太可能,μC/OS-II出來了,后來第二年,電力出版社買了版權(quán),我們就翻譯了一下,到了第三本書,μC/OS-II這本書,這個就有了差不多600頁,而且把源碼附在光盤上,就被美國航空航天管理局認可的可以上直升飛機的一個操作系統(tǒng),是一個很好用的操作系統(tǒng),對于學(xué)校教學(xué)來說,這個功能很強,又很復(fù)雜。在教學(xué)上不如老版本了。這是第三本書的中譯文,2003年出的。我們看它的發(fā)展,在μC/OS一開始,書上有個μC/OS的故事,講到他寫的這個東西,當時發(fā)表文章都沒人理他,后來放到網(wǎng)上,下載的人很多,慢慢得到認可,所以最早1.08的版本,是放在網(wǎng)上,是不要版權(quán)的。到了1.10版本以后,被認可了,如果想要拿去牟利的話,就要給他一些回報。但作為教學(xué)研究,不謀利的時候,還是可以使用的。μC/OS也好,μC/OS-II也好,它是基于優(yōu)先級的,用查表的算法去管理64個任務(wù),只能取0~63這64個優(yōu)先級。今年3月,已經(jīng)有μC/OS-III發(fā)布可以使用了。
那么從μC/OS-II到μC/OS-III有哪些不同的地方呢?增加了什么,我們看改動還是很大的。一個是原來只有0~63個優(yōu)先級,而且優(yōu)先級不能重復(fù),現(xiàn)在允許幾個任務(wù)使用同一個優(yōu)先級,在同一個優(yōu)先級里面,支持時間片調(diào)度法;第二個是允許用戶在程序運行中動態(tài)配置實時操作系統(tǒng)內(nèi)核資源,比如,任務(wù)、任務(wù)棧、信號量、事件標志組、消息隊列、消息數(shù)、互斥型信號量、存儲塊劃分和定時器,可以在程序運行中變更。這樣,用戶可以避免在程序編譯過程中出現(xiàn)資源不夠分配的問題。在資源復(fù)用上,也做了一些改進。μC/OS-II中,最多任務(wù)數(shù)有64個,到了版本2.82以后是256個,μC/OS-III中,用戶可以由任意多的任務(wù)、任意多的信號量、互斥型信號量、事件標志、消息列表、定時器和任意分配的存儲塊容量,僅受限于用戶CPU可以使用的RAM量。這個也是一個很大的擴展。(問:邵老師,它的這個數(shù)是啟動時就固定的,還是啟動后隨便定?)它是配置的時候可以自由定義的,只有你的RAM足夠大的話。第四點是增加了很多功能,功能總是越來越多的,大伙可以看一下的。原來這些功能在μC/OS-II里面是沒有的。
下面一點:除每個任務(wù)的最長關(guān)中斷時間,內(nèi)在性能測試允許用戶測得系統(tǒng)的最長關(guān)中斷時間。就是它提供了一些工具可以測量每個任務(wù)關(guān)中斷的時間;用戶在測得每個任務(wù)的最長禁止調(diào)度時間基礎(chǔ)上,可以測得系統(tǒng)禁止任務(wù)調(diào)度的最長時間,也是說做了個測量;每次發(fā)出的信息都帶有時間戳,用戶也容易得到任務(wù)級的響應(yīng)時間;性能測試還包括任務(wù)切換次數(shù)計數(shù)器和每個任務(wù)的CPU使用率等,這個在調(diào)試的時候,還是蠻有用的。第六,μC/OS-III設(shè)計成能方便地按照CPU架構(gòu)優(yōu)化,特別是其數(shù)據(jù)類型可按照CPU能適應(yīng)的最佳位數(shù)寬度修改(8-16-32);選擇和確定優(yōu)先級的算法可以用匯編語言寫,以發(fā)揮一些有特殊指令的CPU的優(yōu)勢,有很多CPU有置位和復(fù)位指令,計數(shù)器計到零,還有就是找出第一個不為零位指令等。第七條,有很多數(shù)需要自行處理的內(nèi)部據(jù)結(jié)構(gòu)和變量,是通過給調(diào)度器上鎖的方式保護這些臨界段代碼的,不使用關(guān)中斷的方式,內(nèi)核關(guān)中斷的時鐘周期幾乎為零,這就保證了μC/OS-III能夠響應(yīng)哪些最快的中斷等。第八,μC/OS-III還支持內(nèi)核覺察式調(diào)試,用戶友好地使內(nèi)置內(nèi)核覺察調(diào)試器檢查、顯示μC/OS-III的變量、數(shù)據(jù)結(jié)構(gòu)、支持μC/Probe工具在程序運行過程中動態(tài)顯示修改各種變量。從這些改動上來看,μC/OS-III還是比以前做了很大的優(yōu)化的,和以前的產(chǎn)品有很多的區(qū)別。
我覺得從小內(nèi)核μC/OS-II到μC/OS-III,已經(jīng)有17年過去了,很多性能在往大的比較出名的操作系統(tǒng),像VxWorks、Wind River上靠攏,何小慶告訴我Wind River最近被Intel收購了,看了Wind River的基本情況,應(yīng)該說VxWorks是公認的最好的嵌入式RTOS,是一個完整的自成體系的軟件包,但是在過去很多年,它曾經(jīng)是一個靠BSP支持的黑盒子,用戶可以不關(guān)心這些源碼,它是這樣一種思路。近年來也在公開源碼。
看到消息說,Wind River打算進一步轉(zhuǎn)向Linux用于ARM和PowerPC,Intel為支持多核設(shè)計,打算發(fā)展軟件,如嵌入式應(yīng)用、Linux。多核應(yīng)用是為了INTEL的重點。面前μC/OS-II的商業(yè)模式還是主要靠出書,讓學(xué)生學(xué)習(xí)使用,現(xiàn)在它的團隊有10人左右,比較小。我們知道如果一個軟件沒人維護,也是沒有生命力的,它僅僅維護一個內(nèi)核,在第三方有很多單位和它合作,做很多其他的事情,像人機界面、文件系統(tǒng)、TCP/IP等等,從網(wǎng)站上我們看到,大部分都是第三方合作開發(fā)的,我看第三方的報價也都不便宜,都在6000美元以上,當然有很多自由軟件也在和它在結(jié)合。用戶根據(jù)自己需要可以去組合。商業(yè)模式這些事情,其實我并不是很懂,我教書就想用老的,教書挺好的,所以商業(yè)模式這一塊我也是瞎說,呵呵。
思考和體會,經(jīng)過17年,從1個小內(nèi)核發(fā)展成為1個可以和大的商業(yè)RTOS媲美的專門用于嵌入式系統(tǒng)的成熟的RTOS體系,一個特點就是開放源代碼,讓很多工程師,從學(xué)習(xí),到認識,到使用。作為一個軟件,一個內(nèi)核,就需要維護,需要團隊,它的團隊現(xiàn)在很小,大概有10人;需要第三方的支持,靠這樣的形式來組織起來的;也需要和它發(fā)展相適應(yīng)的商業(yè)模式;也會是對VxWorks等大公司產(chǎn)品的一種沖擊。我就總結(jié)了這么幾條。關(guān)于μC/OS的實時性問題,其實有一個函數(shù)就是delay這個函數(shù),如果有64個任務(wù)的話,就有64個需要delay的計數(shù)器,每次時間中斷的時候,都要來查這張表,一個一個地把它去delay,任務(wù)多的時候,時間就長,任務(wù)少的時候,時間就少,這是μC/OS唯一達不到硬實時的地方,。在這個地方上,還不能說實時性還是硬實時,除非你把時間定義為這個表上的時間,解決辦法呢?這是我們最近做的一些工作,就是用雙核16位的freescale的HC12S這樣一個單片機,它有一個協(xié)處理器是專門來響應(yīng)中斷的,把定時這個功能放到協(xié)處理器來做,一個是定時器timer可以很短,從10毫秒可以到微秒級,可以到50微秒,我們做了一個測試,就是把時鐘節(jié)拍放到33微秒或者62微秒這樣來處理的話,如果不加協(xié)處理器的話,時鐘節(jié)拍就占到53%,那就沒法用了。如果用協(xié)處理器做這些事,協(xié)處理器處理這些事大概在75微秒,這樣就把硬實時用雙內(nèi)核就實現(xiàn)了,所以雙內(nèi)核對這個還是很有好處的。
實時多任務(wù)操作系統(tǒng)uCOS-III的特點
uCOS-III是一個全新的實時內(nèi)核,源于世界上最流行的實時內(nèi)核uC/OS-II,除了提供熟悉的一系列系統(tǒng)服務(wù),全面修訂了API接口,使uC/OS-III更直觀,更容易使用。該產(chǎn)品可以廣泛應(yīng)用于通信,工業(yè)控制,儀器儀表,汽車電子,消費電子,辦公自動化設(shè)備等的設(shè)計開發(fā)。
uCOS-III是一個搶占的多任務(wù)內(nèi)核,支持優(yōu)先級相同的任務(wù)輪詢調(diào)度。它可以移植到許多不同的CPU架構(gòu)。uC/OS-III是專為嵌入式系統(tǒng)設(shè)計,可以與應(yīng)用程序代碼一起固化到ROM中。
uCOS-III可在運行時配置實時操作系統(tǒng)。所有內(nèi)核對象,如任務(wù),堆棧,信號量,事件標志組,消息隊列,消息數(shù)量,互斥信號量,內(nèi)存分區(qū)和定時器,由用戶在運行時進行分配。這可以防止在編譯的時候分配過多資源。
uCOS-III允許有任意數(shù)量的任務(wù),信號量,互斥信號量,事件標志,消息隊列,定時器和內(nèi)存分區(qū)(僅受限于處理器可用的RAM大小)。
uCOS-III添加了許多非常有用的功能,如:可嵌套互斥信號量,可嵌套任務(wù)暫停,不需要信號量可發(fā)信號給任務(wù),不需要消息隊列可發(fā)送消息給任務(wù),等待多個內(nèi)核對象,針對'errno'或其他任務(wù)的特定狀況的任務(wù)注冊,內(nèi)置的性能測量,死鎖預(yù)防,用戶定義的鉤函數(shù)等。
uCOS-III還內(nèi)置了支持內(nèi)核感知調(diào)試。允許內(nèi)核感知調(diào)試器以用戶友好的方式檢測和顯示uC/OS-III的變量和數(shù)據(jù)結(jié)構(gòu),也允許uC/Probe在運行時顯示和改變變量。
μCOS-III是可以搶占的多任務(wù)內(nèi)核,始終運行進入就緒態(tài)的最重要的任務(wù)。μC/OS-III支持無限數(shù)量的任務(wù),并允許在運行時,監(jiān)測堆棧增長的任務(wù)。它還支持無限數(shù)量的優(yōu)先級。然而,通常情況下,對于大多數(shù)應(yīng)用,32至256個不同的優(yōu)先級是足夠的。
對于今天的設(shè)計,特別有用的是具有同等優(yōu)先級的輪轉(zhuǎn)調(diào)度的任務(wù)。μC/OS-III允許多個任務(wù)運行在同一優(yōu)先級,每一個任務(wù)運行由用戶指定的時間片。每個任務(wù)可以定義自己的時間單元,如果其完整的時間單元并不是必需的,每個任務(wù)可以放棄時間片。μC/OS-III還允許無限數(shù)量的內(nèi)核對象,如任務(wù),信號量,互斥,信號旗,消息隊列,計時器和內(nèi)存分區(qū)。μC/OS-III大部分是運行時可以配置。
μC/OS-III提供接近零的中斷停用時間。μC/OS-III有一些內(nèi)部數(shù)據(jù)結(jié)構(gòu)和變量,需要獲得原子訪問權(quán)(不能夠被打斷的)。這些關(guān)鍵區(qū)域的保護由鎖調(diào)度,而不是由禁用中斷實現(xiàn)。中斷被禁用的時鐘周期幾乎為零,確保了實時操作系統(tǒng)將能夠響應(yīng)一些最快的中斷源。
允許任務(wù)使用同一優(yōu)先級。對同一優(yōu)先級的多個任務(wù),采用時間片調(diào)度法。
可以有任意多的任務(wù),任意多的信號量(semaphore)、互斥型信號量(mutex)、事件標志(event flag)、消息隊列(queue)、定時器(timer)和任意分配的存儲塊容量(僅受限于用戶 CPU 可以使用的 RAM 量)
可嵌套的互斥型信號量,可嵌套的任務(wù)掛起。
向無信號量請求的任務(wù)發(fā)送信號量,向無消息隊列請求的任務(wù)發(fā)送消息。
任務(wù)可被內(nèi)核的多個元素掛起(多重掛起)。
增加為其他任務(wù)的狀態(tài)或“出錯代碼”服務(wù)的任務(wù)。
內(nèi)在的性能測試。不僅能得到每個任務(wù)的最長關(guān)中斷時間和最長禁止調(diào)度時間,還能得到系統(tǒng)的最長關(guān)中斷時間和最長禁止調(diào)度時間。
選擇和確定優(yōu)先級的算法可以用匯編語言寫,以發(fā)揮一些有特殊指令的CPU的優(yōu)勢,如:置位和復(fù)位指令;計數(shù)器清零(CLZ);找出第一個不為零位(FF1)指令等。
訪問臨界資源的方法由關(guān)中斷改為給調(diào)度器上鎖的方式,使得內(nèi)核關(guān)中斷的時鐘周期數(shù)幾乎為零,保證了 μC/OS-III 能以最快的速度響應(yīng)中斷。
作者:
hclin
時間:
2015-1-7 00:28
Good job !!!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
99久久电影
|
国产成人精品免高潮在线观看
|
免费观看av
|
欧美性大战xxxxx久久久
|
精品久久久网站
|
亚洲品质自拍视频网站
|
网站黄色av
|
中文字字幕一区二区三区四区五区
|
日本h片在线观看
|
亚洲欧美中文日韩在线v日本
|
日本精品视频一区二区
|
亚洲精品日韩欧美
|
日韩中文在线观看
|
国产黄色小视频
|
亚洲精品久久久一区二区三区
|
国产四虎
|
国产福利在线
|
精品国产视频
|
大香网伊人
|
99视频免费
|
亚洲精品久久久久久首妖
|
国产综合av
|
av一级毛片
|
免费色网址
|
91精品国产综合久久婷婷香蕉
|
99免费在线观看视频
|
四虎影院欧美
|
色姑娘av
|
在线免费观看亚洲
|
欧美日韩中文字幕在线
|
日韩黄色小视频
|
99精品久久
|
欧美日日
|
午夜成人免费视频
|
免费视频一区二区
|
天天想天天干
|
亚洲精品电影在线
|
一级毛片在线视频
|
先锋av资源在线
|
久久久久久91
|
欧美日韩一区二区三区在线观看
|