999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

FreeRTOS與μC/OS—III內核分析及選型研究

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

楊玥 邵浩然 張索非

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

【關鍵詞】FreeRTOS;μC/OS-III;實時操作系統

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

DOI:10.19694/j.cnki.issn2095-2457.2018.24.005

【Abstract】Today,FreeRTOS 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 引言

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

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

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

1 FreeRTOS、μC/OS-III內核分析

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

1.1 任務管理

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

嵌入式實時系統通常運行多個任務,因此存在“調度”問題,這也是內核的主要職責之一,即決定輪到哪個任務運行。調度機制分為優先級搶占式調度和時間片輪轉調度,FreeRTOS與μC/OS-III內核調度都支持這兩種機制。對于不同優先級任務采用優先級搶占式調度,而對于相同優先級任務采用時間片輪轉調度,并且對于優先級數量、相同優先級任務數量都不做限制。

1.2 同步與通信

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

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

1.3 時間管理及軟件定時器

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

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

1.4 內存管理

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

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

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

1.5 中斷管理

中斷是硬件機制,用于通知處理器發生了異步事件。當處理器識別到中斷,保護現場并跳轉到ISR中執行。ISR處理完事件,要么返回原先被中斷的任務繼續執行,要么執行更高優先級的任務。處理器通過開、關中斷從而達到響應、忽略中斷的目的。

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

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

2 版權及認證

2.1 內核、中間件版權

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

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

2.2 認證

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

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

3 嵌入式實時操作系統選型考慮因素

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

a)行業因素

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

b)自身開發實力

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

c)可利用資源

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

d)成本

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

4 結束語

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

【參考文獻】

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

[2]李志明,檀永,徐石民.STM32嵌入式系統開發實戰指南FreeRTOS與LwIP聯合移植[M].北京:機械工業出版社,2013.

[3]劉俞,劉恒,章懿雯.嵌入式實時操作系統中優先級反轉問題的研究[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.嵌入式系統體系結構、編程與設計(第3版)[M].郭俊鳳譯.北京:清華大學出版社,2017.

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

主站蜘蛛池模板: 国产性爱网站| 日韩精品无码不卡无码| 毛片免费视频| 久久公开视频| 制服丝袜一区二区三区在线| 欧美人与动牲交a欧美精品| 欧美色99| 精品无码人妻一区二区| 午夜精品久久久久久久无码软件| 国产菊爆视频在线观看| 国产精品亚洲а∨天堂免下载| 综合社区亚洲熟妇p| 国产黄视频网站| 九九九九热精品视频| 欧美色亚洲| 欧美a在线| 久久6免费视频| 性色在线视频精品| 欧美午夜小视频| 亚洲国产精品美女| 日本一区高清| 国产污视频在线观看| 亚洲成人一区二区三区| 欧洲成人在线观看| h网址在线观看| 日本黄网在线观看| 亚洲国产综合精品一区| 亚洲综合中文字幕国产精品欧美| 最新国产午夜精品视频成人| 国产大片喷水在线在线视频| 亚洲a级毛片| 国产黑丝一区| 日本五区在线不卡精品| 亚洲国产在一区二区三区| 欧美不卡视频一区发布| 亚洲综合极品香蕉久久网| 蝌蚪国产精品视频第一页| 在线观看亚洲天堂| a天堂视频| 欧美 国产 人人视频| 久久a毛片| 久久精品国产国语对白| 中文字幕久久波多野结衣| 亚洲Av激情网五月天| 欧美亚洲国产精品第一页| 国产在线视频自拍| lhav亚洲精品| 一区二区三区四区精品视频| 丁香五月激情图片| 国产玖玖玖精品视频| 亚洲日本中文字幕天堂网| 国产青青草视频| 67194在线午夜亚洲| 久久综合伊人 六十路| 亚洲乱码在线播放| 国产精品hd在线播放| 久久人人爽人人爽人人片aV东京热| 夜夜高潮夜夜爽国产伦精品| 在线观看精品国产入口| 91国内在线观看| 国产成人久视频免费| 久久中文无码精品| 国产综合亚洲欧洲区精品无码| 91色在线视频| 亚洲男人的天堂在线观看| 欧美不卡视频一区发布| 亚洲人成网站观看在线观看| 日本免费福利视频| 精品国产亚洲人成在线| 日本亚洲最大的色成网站www| 午夜三级在线| 久久精品国产在热久久2019| 视频一区视频二区中文精品| 国禁国产you女视频网站| 亚洲黄网视频| 妇女自拍偷自拍亚洲精品| 国产理论最新国产精品视频| 亚洲综合色区在线播放2019| 国产自在线拍| 日韩精品一区二区三区中文无码| 欧美日韩国产精品综合| 91久久夜色精品国产网站|