• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      FreeRTOS與μC/OS—III內(nèi)核分析及選型研究

      2018-01-03 10:20:10楊玥邵浩然張索非
      科技視界 2018年24期

      楊玥 邵浩然 張索非

      【摘 要】FreeRTOS與μC/OS-III是當今主流實時操作系統(tǒng)的代表,使用量位于嵌入式應用前列。從任務管理、同步與通信、時間管理及軟件定時器、內(nèi)存管理、中斷管理等方面分析FreeRTOS與μC/OS-III內(nèi)核。介紹了FreeRTOS和μC/OS-III授權(quán)方式,并說明了μC/OS-III符合行業(yè)認證標準情況。分析了行業(yè)因素、自身開發(fā)實力、可利用資源以及成本等方面的影響,為實時操作系統(tǒng)選型提供思路。

      【關(guān)鍵詞】FreeRTOS;μC/OS-III;實時操作系統(tǒng)

      中圖分類號: TP316.2 文獻標識碼: A 文章編號: 2095-2457(2018)24-0011-003

      DOI:10.19694/j.cnki.issn2095-2457.2018.24.005

      【Abstract】Today,F(xiàn)reeRTOS and μC/OS-III are the representatives of the mainstream real-time operating systems, and they are used by many embedded projects.FreeRTOS and μC/OS-III kernels are analyzed from the aspects of task management,synchronization and communication,time management and software timer,memory management and interrupt management.The licensing methods of FreeRTOS and μC/OS-III are introduced,and the situation of μC/OS-III compliance with some certification standards is explained.This paper analyzes the influence of industry factors, development ability,available resources and cost,and provides ideas for the selection of real-time operating system.

      【Key words】FreeRTOS;μC/OS-III;RTOS

      0 引言

      嵌入式系統(tǒng)相關(guān)技術(shù)在當今發(fā)展迅速,嵌入式設備滲透到生產(chǎn)、生活的方方面面。很多嵌入式系統(tǒng)也是實時系統(tǒng),實時系統(tǒng)不僅要求計算結(jié)果正確,而且要求結(jié)果具有時效性[1]。嵌入式系統(tǒng)包括硬件和軟件,其硬件主要依賴各種類型處理器,包括微控制器(Microcontroller Unit,MCU)、微處理器(Microprocessor Unit,MPU)、數(shù)字信號處理器(Digital Signal Processor,DSP)等。

      嵌入式系統(tǒng)軟件,對于簡單系統(tǒng)控制邏輯不復雜、計算復雜度較小,可以采用前臺/后臺系統(tǒng)(Foreground/Background System)[2],即一個應用包含一個無限循環(huán),這個循環(huán)調(diào)用模塊執(zhí)行相應操作(后臺),而中斷服務例程(Interrupt Service Routine,ISR)處理異步事件(前臺)。顯然對于復雜的嵌入式實時系統(tǒng)僅采用前臺/后臺系統(tǒng)設計方式是無法實現(xiàn)的,因此需要采用嵌入式實時操作系統(tǒng)(Embedded Real-time Operation System,RTOS)。RTOS是嵌入式系統(tǒng)中的核心軟件,包括系統(tǒng)內(nèi)核、底層驅(qū)動軟件、設備驅(qū)動接口、通信協(xié)議處理軟件等,甚至還包括交互界面[3]。RTOS用于管理處理器的時間和資源,采用RTOS使得應用軟件開發(fā)更加容易,軟件便于維護的同時提高了系統(tǒng)穩(wěn)定性和可靠性。

      當前的RTOS種類很多,比較常用的有FreeRTOS、μC/OS-II(III)、RT Linux、VxWorks等等。FreeRTOS是開源軟件,而μC/OS-II(III)是商業(yè)軟件。FreeRTOS和μC/OS-III用戶數(shù)量領先[4]并且各具特色,因此針對這兩種嵌入式實時操作系統(tǒng)進行分析,對新入門的嵌入式軟件開發(fā)人員理解RTOS內(nèi)核有一定幫助。嵌入式應用軟件開發(fā)之初還存在RTOS選型問題,論文通過對影響選型的幾個因素進行分析,為RTOS選型提供依據(jù)。

      1 FreeRTOS、μC/OS-III內(nèi)核分析

      RTOS內(nèi)核的基本功能包括任務管理、同步與通信、時間管理及軟件定時器、內(nèi)存管理、中斷管理等。下面在閱讀文獻[5,6]并理解兩種操作系統(tǒng)內(nèi)核源碼的基礎上從各個功能方面分析FreeRTOS和μC/OS-III內(nèi)核。

      1.1 任務管理

      “任務(task)”是RTOS中的術(shù)語,這里的“任務”類似于通用操作系統(tǒng)中的進程或線程[7]。RTOS中任務管理包括任務創(chuàng)建、改變?nèi)蝿諆?yōu)先級、任務刪除、任務掛起、任務恢復,μC/OS-III和FreeRTOS都有相應函數(shù)用于任務管理。FreeRTOS的任務創(chuàng)建函數(shù)xTaskCreate()有6個參數(shù):任務函數(shù)、任務名字、任務堆棧大小、傳遞給任務函數(shù)的參數(shù)、任務優(yōu)先級、任務句柄。然而,μC/OS-III的任務創(chuàng)建函數(shù)OSTaskCreate()有13個參數(shù),這些參數(shù)中除了與xTaskCreate()前5個基本相同的參數(shù)外,還有任務控制塊指針、任務堆棧基地址指針、堆棧水印限制、任務可接受消息最大數(shù)量、時間份額、用作任務控制塊擴展的內(nèi)存地址指針、選項標志位、錯誤代碼指針。任務創(chuàng)建函數(shù)參數(shù)數(shù)量的不同其實反映了兩種RTOS實現(xiàn)細節(jié)的差異。

      嵌入式實時系統(tǒng)通常運行多個任務,因此存在“調(diào)度”問題,這也是內(nèi)核的主要職責之一,即決定輪到哪個任務運行。調(diào)度機制分為優(yōu)先級搶占式調(diào)度和時間片輪轉(zhuǎn)調(diào)度,F(xiàn)reeRTOS與μC/OS-III內(nèi)核調(diào)度都支持這兩種機制。對于不同優(yōu)先級任務采用優(yōu)先級搶占式調(diào)度,而對于相同優(yōu)先級任務采用時間片輪轉(zhuǎn)調(diào)度,并且對于優(yōu)先級數(shù)量、相同優(yōu)先級任務數(shù)量都不做限制。

      1.2 同步與通信

      應用系統(tǒng)包含若干任務和ISR,任務之間、任務與ISR以及ISR之間必須協(xié)調(diào)配合,為此RTOS提供任務同步與通信機制。FreeRTOS和μC/OS-III內(nèi)核提供的同步與通信機制如表1所示。

      表1中“√”表示具有該項機制,“╳”表示無該項機制。雖然從表1中可以看出μC/OS-III沒有郵箱功能,但是μC/OS-III內(nèi)核設計人員認為不需要郵箱,因為可以利用其它機制實現(xiàn)與郵箱等同的功能。

      1.3 時間管理及軟件定時器

      操作系統(tǒng)都需要一個系統(tǒng)時鐘,每個系統(tǒng)時鐘周期都會觸發(fā)內(nèi)核執(zhí)行一些系統(tǒng)調(diào)用。處理器硬件提供系統(tǒng)節(jié)拍定時器,英文名字為SysTick,內(nèi)核則有ISR完成相應操作。此外,內(nèi)核還必須維持相對時間和日歷時間,而這些都屬于內(nèi)核時間管理的范疇。FreeRTOS和μC/OS-III內(nèi)核都有相應函數(shù)實現(xiàn)獲取當前節(jié)拍、設置節(jié)拍、相對延時、絕對延時等功能。

      處理器都有硬件定時器,雖然功能強大,但是數(shù)量受限。FreeRTOS和μC/OS-III內(nèi)核提供軟件定時器,與硬件定時器或計數(shù)器沒有關(guān)系。相比于硬件定時器,軟件定時器的定時精度不太高,但是對于普通的、精度要求不高的周期性處理任務足夠了。FreeRTOS和μC/OS-III內(nèi)核對軟件定時器的絕對數(shù)量沒有限制,僅僅受限于內(nèi)存大小,因為軟件定時器需要占用一定的內(nèi)存。

      1.4 內(nèi)存管理

      應用程序可以使用標準C編譯器提供的malloc()和free()函數(shù)分配和釋放動態(tài)內(nèi)存,但是在小型嵌入式實時系統(tǒng)中使用這兩個函數(shù)比較危險,最終可能因為碎片而無法獲得單個連續(xù)的內(nèi)存區(qū)域。因此,μC/OS-III和FreeRTOS都有替代函數(shù)用于內(nèi)存管理,但是兩者思路和方法又有所不同。

      在μC/OS-III中將一片連續(xù)內(nèi)存區(qū)域作為一個分區(qū),每個分區(qū)又分成整數(shù)個相同大小的內(nèi)存塊。一個應用可以有多個內(nèi)存分區(qū),每個分區(qū)有不同數(shù)量的內(nèi)存塊,不同分區(qū)的內(nèi)存塊大小可以不同。應用程序能夠基于需求獲得不同大小的內(nèi)存塊,但是特定內(nèi)存塊釋放時必須還回到分配它的分區(qū)。這種內(nèi)存管理方法不會產(chǎn)生碎片,除非程序運行溢出內(nèi)存塊。

      而FreeRTOS內(nèi)核設計者認為:不同嵌入式系統(tǒng)對于存分配和時序要求不同,某個具體的動態(tài)內(nèi)存分配方案僅適用于一部分應用。因此,F(xiàn)reeRTOS將動態(tài)內(nèi)存分配函數(shù)從內(nèi)核代碼庫中移除,使得內(nèi)存管理成為可移植層的一部分,允許應用程序編寫者提供特定的動態(tài)內(nèi)存管理實現(xiàn)代碼。此外,F(xiàn)reeRTOS提供了5個實現(xiàn)案例,分別對應5個不同的內(nèi)存分配機制和算法。

      1.5 中斷管理

      中斷是硬件機制,用于通知處理器發(fā)生了異步事件。當處理器識別到中斷,保護現(xiàn)場并跳轉(zhuǎn)到ISR中執(zhí)行。ISR處理完事件,要么返回原先被中斷的任務繼續(xù)執(zhí)行,要么執(zhí)行更高優(yōu)先級的任務。處理器通過開、關(guān)中斷從而達到響應、忽略中斷的目的。

      在實時環(huán)境中,內(nèi)核最重要指標之一是總的關(guān)中斷時間。中斷關(guān)閉時間盡可能短,因為關(guān)中斷可能會影響中斷響應時間并導致中斷信號丟失。然而,實時系統(tǒng)中進入臨界區(qū)必須關(guān)閉中斷。另一個方面,ISR盡可能短,它的主要作用最好只是發(fā)送信號或者消息給相應任務去處理具體事務,從而減少中斷處理時間。此外,某些處理器支持多個中斷優(yōu)先級并允許中斷嵌套,還有處理器所有中斷的向量對應唯一的中斷處理程序,有些則每個中斷向量對應一個中斷處理程序。

      FreeRTOS和μC/OS-III不強加特定的事件處理策略于應用設計,但是提供一組函數(shù)和機制使應用開發(fā)工程師以簡單和可維護的方式實現(xiàn)某種中斷管理策略。μC/OS-III內(nèi)核提供了從ISR向任務發(fā)送信號、標志、消息的函數(shù),而發(fā)送模式有兩種:直接發(fā)布和延遲發(fā)布。FreeRTOS則提供延遲中斷處理機制,即ISR僅記錄中斷原因并清除中斷,而大量與中斷相關(guān)的處理則通知相應任務完成,利用系統(tǒng)函數(shù)提高該任務的優(yōu)先級,從而保證在中斷退出后該任務最先得到執(zhí)行。

      2 版權(quán)及認證

      2.1 內(nèi)核、中間件版權(quán)

      FreeRTOS內(nèi)核是開源軟件,內(nèi)核采用GPL授權(quán)方式,并做了修改給出一個例外條件[8]:“即這些獨立模塊如果使用的是FreeRTOS API與FreeRTOS進行通信,并且這些獨立模塊不涉及內(nèi)核和內(nèi)核調(diào)度,也沒有對任務、任務通信和信號量等內(nèi)核功能作出改動,這些模塊可以不按照GPL方式公開源代碼?!盕reeRTOS還開發(fā)了附在內(nèi)核上的中間件FreeRTOS+TCP和FreeRTOS+FAT,這些同樣是開源軟件。而其他第三方公司開發(fā)的中間件,其授權(quán)不在FreeRTOS內(nèi)核授權(quán)范圍,授權(quán)方式由軟件開發(fā)方確定。

      μC/OS系列RTOS內(nèi)核是商用軟件產(chǎn)品,Micrium公司對其擁有知識產(chǎn)權(quán)。這些產(chǎn)品以源代碼方式提供給客戶,具有極大的適用性。但是,該產(chǎn)品不是免費軟件,也不是開源軟件,因此,不能免費使用。Micrium公司還提供μC/OS相關(guān)中間件μC/GUI、μC/FS、μC/TCP-IP、μC/USB、μC/Probe等,這些也是商業(yè)軟件。

      2.2 認證

      FreeRTOS內(nèi)核沒有經(jīng)過認證,然而FreeRTOS內(nèi)核衍生出另一個系統(tǒng)SAFERTOS支持廣泛的國際設計安全標準,但是SAFERTOS是商用軟件。

      μC/OS-III內(nèi)核符合航空電子設備DO-178B Level E至Level A、工業(yè)控制IEC 61508 SIL 3、醫(yī)藥IEC 62304 Class A到Class C[FDA 510(k)]的認證標準。

      3 嵌入式實時操作系統(tǒng)選型考慮因素

      從以上分析來看,μC/OS-III和FreeRTOS作為RTOS內(nèi)核,具備的功能基本相當。雖然不盡相同,但是純粹從技術(shù)角度選擇哪一種操作系統(tǒng)并沒有太大差別。因此,行業(yè)因素、自身開發(fā)實力、可利用資源以及成本等方面成為選型的決定因素。

      a)行業(yè)因素

      除了通用產(chǎn)品,對于某些特定的行業(yè)應用產(chǎn)品,需要調(diào)查了解這些行業(yè)產(chǎn)品需要遵守哪些標準?需要做哪些認證?獲得這些信息后,對照μC/OS-III和FreeRTOS所獲得認證以及遵守的標準,然后做出選擇。當然,行業(yè)中的主流選擇也應該是考慮因素之一。

      b)自身開發(fā)實力

      如果自身開發(fā)能力有限,需要技術(shù)支持無疑需要選擇商業(yè)軟件μC/OS-III。而自主開發(fā)能力強,同時希望節(jié)省軟件許可費用,可以選擇開源FreeRTOS。開源軟件沒有技術(shù)支持,因此對自身技術(shù)實力要求較高。

      c)可利用資源

      對于產(chǎn)品開發(fā),盡可能利用現(xiàn)有參考案例的設計代碼、操作系統(tǒng)附加組件或者第三方組件,從而能夠壓縮開發(fā)周期,盡早將產(chǎn)品推向市場。因此,開發(fā)具體產(chǎn)品時優(yōu)選具有更多可利用資源的RTOS。

      d)成本

      成本包括多個方面,軟件許可費用僅是其中一部分,其他方面還應該包括開發(fā)時間成本、影響產(chǎn)品上市時間的間接成本。

      4 結(jié)束語

      FreeRTOS和μC/OS-III是當今主流的嵌入式實時操作系統(tǒng)內(nèi)核,從內(nèi)核功能角度對這兩種操作系統(tǒng)進行分析可以看出兩者實現(xiàn)思想和方式上的異同。因為FreeRTOS是開源軟件,而μC/OS-III是商業(yè)軟件,所以兩者的授權(quán)方式不同,μC/OS-III還符合多種行業(yè)認證標準。兩個實時操作系統(tǒng)內(nèi)核雖然有差異,但是選型時應該主要考慮行業(yè)因素、自身開發(fā)實力、可利用資源以及成本等方面。

      【參考文獻】

      [1]Abraham Silberschatz,Peter Baer Galvin,Greg Gagne. Operating System Concepts(Seventh Edition)[M].鄭扣根譯.北京: 高等教育出版社,2010.

      [2]李志明,檀永,徐石民.STM32嵌入式系統(tǒng)開發(fā)實戰(zhàn)指南FreeRTOS與LwIP聯(lián)合移植[M].北京:機械工業(yè)出版社,2013.

      [3]劉俞,劉恒,章懿雯.嵌入式實時操作系統(tǒng)中優(yōu)先級反轉(zhuǎn)問題的研究[J].齊齊哈爾大學學報(自然科學版),2017,33(1):5-8.

      [4]2017 Embedded Markets Study Integrating IoT and Advanced Technology Designs,Application Development & Processing Environments[EB/OL].www.embedded.com.

      [5]Mastering the FreeRTOS Real Time Kernel[EB/OL].www.freertos.com.

      [6]μC/OS-III The Real-Time Kernel Users Manual[EB/OL].www.micrium.com.

      [7]Raj Kamal.嵌入式系統(tǒng)體系結(jié)構(gòu)、編程與設計(第3版)[M].郭俊鳳譯.北京:清華大學出版社,2017.

      [8]何小慶.談談FreeRTOS及其授權(quán)方式[J].單片機與嵌入式系統(tǒng)應用,2015,10:3-4.

      海口市| 鹿邑县| 孟州市| 太湖县| 慈利县| 张家口市| 陈巴尔虎旗| 益阳市| 郧西县| 井陉县| 桃江县| 三门峡市| 乐东| 泸西县| 清镇市| 温泉县| 肇东市| 平阴县| 石门县| 临沭县| 遂宁市| 墨脱县| 玛沁县| 噶尔县| 永登县| 雷波县| 象州县| 崇信县| 罗平县| 恩平市| 闻喜县| 镇原县| 汶上县| 雷波县| 资溪县| 辰溪县| 彭泽县| 镶黄旗| 汉源县| 吉水县| 疏附县|