μClinux、μC/OS-II、eCos、FreeRTOS和djyos作業系統的特點及不足

2021-01-08 電子產品世界

  基於STM平臺且滿足實時控制要求作業系統,有以下5種可供移植選擇。分別為μClinux、μC/OS-II、eCos、FreeRTOS和都江堰作業系統(djyos)。

本文引用地址:http://www.eepw.com.cn/article/201809/391845.htm

  下面分別介紹這五種嵌入式作業系統的特點及不足。

  1、μClinux

  μClinux是一種優秀的嵌入式Linux版本,其全稱為micro-control Linux,從字面意思看是指微控制Linux。同標準的Linux相比,μClinux的內核非常小,但是它仍然繼承了Linux作業系統的主要特性,包括良好的穩定性和移植性、強大的網絡功能、出色的文件系統支持、標準豐富的API,以及TCP/IP網絡協議等。因為沒有MMU內存管理單元,所以其多任務的實現需要一定技巧。

  μClinux在結構上繼承了標準Linux的多任務實現方式,分為實時進程和普通進程,分別採用先來先服務和時間片輪轉調度,僅針對中低檔嵌入式CPU特點進行改良,且不支持內核搶佔,實時性一般。

  綜上可知,μClinux最大特點在於針對無MMU處理器設計,這對於沒有MMU功能的stm32f103來說是合適的,但移植此系統需要至少512KB的RAM空間,1MB的ROM/FLASH空間,而stmf103擁有256K的FLASH,需要外接存儲器,這就增加了硬體設計的成本。

  μClinux結構複雜,移植相對困難,內核也較大,其實時性也差一些,若開發的嵌入式產品注重文件系統和與網絡應用則μClinux是一個不錯的選擇。

  2、μC/OS-II

  μC/OS-II是在μC/OS的基礎上發展起來的,是用C語言編寫的一個結構小巧、搶佔式的多任務實時內核。μC/OS-II能管理64個任務,並提供任務調度與管理、內存管理、任務間同步與通信、時間管理和中斷服務等功能,具有執行效率高、佔用空間小、實時性能優良和擴展性強等特點。

  在文件系統的支持方面,由於μC/OS-II是面向中小型嵌入式系統的,即使包含全部功能,編譯後內核也不到10 KB,所以系統本身並沒有提供對文件系統的支持。但是μC/OS-II具有良好的擴展性能,如果需要也可自行加入文件系統的內容。

  在對硬體的支持上,μC/OS-II能夠支持當前流行的大部分CPU,μC/OS-II由於本身內核就很小,經過裁剪後的代碼最小可以為2KB,所需的最小數據RAM空間為4 KB,μC/OS-II的移植相對比較簡單,只需要修改與處理器相關的代碼就可以。

  綜上可知,μC/OS-II是一個結構簡單、功能完備和實時性很強的嵌入式作業系統內核,針對於沒有MMU功能的CPU,它是非常合適的。它需要很少的內核代碼空間和數據存儲空間,擁有良好的實時性,良好的可擴展性能,並且是開源的,網上擁有很多的資料和實例,所以很適合向stm32f103這款CPU上移植。

  3、eCos

  eCos(embedded Configurable operating system),即嵌入式可配置作業系統。

  它是一個原始碼開放的可配置、可移植、面向深度嵌入式應用的實時作業系統。

  最大特點是配置靈活,採用模塊化設計,核心部分由小同的組件構成,包括內核、C語言庫和底層運行包等。

  每個組件可提供大量的配置選項(實時內核也可作為可選配置),使用eCos提供的配置工具可以很方便地配置,並通過不同的配置使得eCos能夠滿足不同的嵌入式應用要求。

  eCos作業系統的可配置性非常強大,用戶可以自己加入所需的文件系統。eCos作業系統同樣支持當前流行的大部分嵌入式CPU,eCos作業系統可以在16位、32位和64位等不同體系結構之間移植。

  eCos由於本身內核就很小,經過裁剪後的代碼最小可以為10 KB,所需的最小數據RAM空間為10 KB。

  在系統移植方面 eCos作業系統的可移植性很好,要比μC/OS-II和μClinux容易。

  綜上所述,eCos最大特點是配置靈活,並且支持無MMU的CPU的移植,開源且具有很好的移植性,也比較合適於移植到stm32平臺的CPU上。但eCOS的應用還不是太廣泛,還沒有像μC/OS-II那樣普遍,並且資料也沒有μC/OS-II多。eCos適合用於一些商業級或工業級對成本敏感的嵌入式系統,例如消費電子領域中的一些應用。

  4、FreeRTOS

  由於RTOS需佔用一定的系統資源(尤其是RAM資源),只有μC/OS-II、embOS、salvo、FreeRTOS等少數實時作業系統能在小RAM單片機上運行。

  相對於C/OS-II、 embOS等商業作業系統,FreeRTOS作業系統是完全免費的作業系統,具有源碼公開、可移植、可裁減、調度策略靈活的特點,可以方便地移植到各種單片機上運行,其最新版本為6.0版。

  作為一個輕量級的作業系統,FreeRTOS提供的功能包括:任務管理、時間管理、信號量、消息隊列、內存管理、記錄功能等,可基本滿足較小系統的需要。

  FreeRTOS內核支持優先級調度算法,每個任務可根據重要程度的不同被賦予一定的優先級,CPU總是讓處於就緒態的、優先級最高的任務先運行。

  FreeRT0S內核同時支持輪換調度算法,系統允許不同的任務使用相同的優先級,在沒有更高優先級任務就緒的情況下,同一優先級的任務共享CPU的使用時間。

  FreeRTOS的不足:

  相對於常見的μC/OS—II作業系統,FreeRTOS作業系統既有優點也存在不足。

  其不足之處, 一方面體現在系統的服務功能上,如FreeRTOS只提供了消息隊列和信號量的實現,無法以後進先出的順序向消息隊列發送消息;另一方 面,FreeRTOS只是一個作業系統內核,需外擴第三方的GUI(圖形用戶界面)、TCP/IP協議棧、FS(文件系統)等才能實現一個較複雜的系統, 不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等無縫結合。

  5、都江堰作業系統(djyos)

  都江堰作業系統,簡稱djyos,得名於一個偉大的水利工程:都江堰。

  與傳統作業系統不同,djyos不是以線程而是以事件為調度核心,這種調度算法使程式設計師擺脫模擬計算機執行過程編寫程序的思維方式,而是按人類認知世界的方式編寫應用程式,就如同在嵌入式編程中引入了VC似的。

  djyos的調度算法使程式設計師可以擺脫線程和進程的束縛,djyos沒有有關線程的api,一個完全不懂線程知識的程式設計師也可以順利地在djyos下編寫應用程式。

  djyos 作業系統是以事件為核心進行調度的,這種調度策略使程式設計師可以按人類認知事物的習慣而不是計算機的習慣來編程。

  由上所述,對於stm32f103來說,移植μC/OS-II、eCos、FreeRTOS、都江堰作業系統是合適的。

相關焦點

  • 基於Nios II自助點菜系統的μC/GUI應用
    由於嵌入式系統硬體資源有限,從而要求圖形用戶界面具有輕型、佔用資源少、高性能等特點。μC/GUI是一種用於嵌入式應用的Windows風格圖形支持軟體,它為任何使用圖形LCD的應用提供一個有效的不依賴於處理器和LCD控制器的圖形用戶接口,工作在單任務或多任務系統環境下,適用於使用任何LCD控制和任何CPU尺寸的物理或虛擬顯示。因此,掌握μC/GUI在嵌入式系統中的應用極為重要。
  • μC/OS-II在幾種處理器上的移植介紹
    μC/OS-II作業系統是一種搶佔式多任務、單內存空間、微小內核的嵌入式作業系統,具有高效緊湊的特點。它執行效率高,佔用空間小,可移植性強,實時性能良好且可擴展性強。
  • freertos與linux區別
    freertos與linux區別   freeRTOS是一個實時作業系統,主要實現了任務調度、內存管理、IPC、中斷管理這幾個模塊,它要求快速的處理任務,gui、驅動框架、shell 這些都不是它的核心功能,而且大部分情況下都不會做,因為一旦freertos 運行起來之後,是不會有人工介入的,可以 google 一下什麼是實時作業系統。
  • 基於μCLinux的USB驅動程序實現
    摘 要:μClinux是一種面向嵌入式微處理器的微型作業系統,已經在嵌入式作業系統中佔有重要地位。在此介紹FTDI公司的USB晶片FT245BL的主要性能、工作原理,並將其應用在Blackfin ADSP-BF533微處理器的嵌入式開發平臺上,說明在μClinux下編寫與加載USB接口晶片FT245BL的驅動程序方法,實現了DSP主板的 USB埠通信。
  • 基於通信晶片SI4432和μC/OS-II作業系統實現無線通信系統的設計
    基於通信晶片SI4432和μC/OS-II作業系統實現無線通信系統的設計 李鵬飛 發表於 2020-03-06 09:35:10 引言 隨著信息技術的飛速發展
  • 基於NiosⅡ嵌入式平臺實現μC/GUI在可攜式醫療監護儀上的移植
    該界面軟體被設計用於為任何使用一個圖形LCD的應用提供一個有效的不依賴於處理器和LCD控制器的圖形用戶接口。它能工作於單任 務或多任務的系統環境下。μC/GUI適用於使用任何LCD控制器和CPU的任何尺寸的物理和虛擬顯示,具有原始碼開放及模塊化設計的特點。  μC/GUI的代碼全部用ANSI的C語言編寫的,具有很強的移植性。
  • μC/GUI在嵌入式智能監控系統中的移植研究與應用
    關鍵詞:人機互動;μC/GUI;移植;NiosⅡ0 引言 人機互動是智能化嵌入式產品一項重要功能,在設計智能監控系統時人機互動需要界面設計軟體,常用的圖形界面軟體有MiniGUI,QT/Embedded,OpenGUI等。Altera公司NiosⅡ已經集成了μC/OS-Ⅱ系統。μC/OS-Ⅱ是一個實時多任務內核,不具有現代作業系統的線程,上述GUI不能方便的運行。
  • 一種基於μC/OS-III及STM32的多功能控制器
    採用μC/OS-III作業系統、STM32F103RC微控制器、12864液晶屏、PVC按鍵、無線串口模塊、鋰電池等實現具有人機界面、無線串口功能的總線主控器。該控制器具有人機界面、軌道車主控器、遙控接收器、遙控面板等多種功能,並且能在不同項目中使用。μC/OS-III從官網上下載,文件名為Micrium_uC-Eval-STM32F107_uCOS-III,版本為V1.29.01.00.
  • 基於嵌入式處理器S3C44B0X的μC/GUI設計
    通用嵌入式圖形模塊μC/GUIμC/GUI是Micrium公司開發的通用的嵌入式用戶圖形界面軟體。它給任何使用圖形LCD的應用程式提供獨立於處理器和LCD控制器之外的有效的圖形用戶接口。可以應用於單一任務環境,也可以應用於多任務環境中。μC/GUI能夠應用於任何LCD控制器和CPU的任何尺寸的物理顯示或者模擬顯示中。
  • STM32平臺的μC/GUI移植與圖形界面設計
    本文詳細介紹了μC/GUI的結構框架和基於STM32平臺的μC/OS-II上的μC/GUI移植過程,並在此基礎上進行圖形界面設計;闡述了μC/GUI的窗口管理機制,提出了實現μC/GUI中文小型字庫的兩種方法並採用存儲設備解決了圖形顯示的閃爍問題。
  • 嵌入式μC/OS-II系統中基於ECB基本存儲單元實現信號量管理的設計
    嵌入式μC/OS-II系統中基於ECB基本存儲單元實現信號量管理的設計 李巖;谷萍萍 發表於 2020-03-10 10:25:12 隨著嵌入式技術的發展,實時作業系統
  • 用Lewis鹼打開CoIII,IV2(μ-O)2鑽石核心可以提高C-H鍵的裂解反應性
    ,用Lewis鹼打開CoIII,IV2(μ-O)2的「鑽石核心」可以提高C-H鍵的裂解反應性。研究人員認為,1首先與X通過快速平衡形成開環化合物X–CoIII–O–CoIV–O (1-X),並通過電子自旋共振譜和密度泛函計算表徵了1-X。
  • 盤點Linux作業系統下C語言編程注意事項
    linux作業系統文章專題:linux作業系統詳解(linux不再難懂)  2、學會makefile文件的編寫規則,並結合使用工具aclocal、autoconf和automake生成makefile文件。  3、掌握gcc和gdb的基本用法。
  • 基於NXP iMX7 ARM處理器部署FreeRTOS實時作業系統
    NXP iMX7 ARM處理器是NXP最新推出的異構雙核處理器, 主核心為單核或者雙核Cortex-A7,通常運行Linux/WinCE作業系統來作為嵌入式應用主程序界面環境; 副核心為Cortex-M4, 通常運行實時作業系統來為嵌入式應用提供高效可靠的實時應用處理. 一個簡略的iMX7晶片框圖如下所示.
  • 【用家體驗】W4S「威勢」μLINK界面、μDAC解碼的聽後感
    備註:這篇文字是用戶購買μLINK界面、μDAC解碼套裝後的體驗聽感,我們添加的注釋會以斜體字出現最近入手了美國Wyred4Sound「威勢」的數字界面μLINK和解碼器家族中的小弟弟μDAC,μ就是微小的意思,所以這兩者都是體積小小的,放在電腦桌上倒是不佔用多少空間。上圖為μLINK
  • C語言學習篇(31)——linux中製作動態連結庫
    引言前面我們講解了什麼是函數庫(函數庫就是一些事先寫好的函數集合),函數庫有什麼作用(可以打包我們的編寫的原始碼,供他人使用,同時源碼不可見,保護了自己的智慧財產權)以及函數庫有2種提供方式:靜態連結庫和動態連結庫,前面2篇分別講解了如何在linux中使用
  • 採用抗反射膜提高a-Si:H/μc-Si:H串結薄膜太陽能電池的轉換效率
    在文獻中可以找到有可能適用於PV的一些抗反射材料、膜結構和製備技術的評論。現在,ARC的商業應用已在基於c-Si的PV組件規模生產中實現。但是,把ARC應用於串結或多結薄膜太陽能電池的研究還很少見,大多是由於在ARC與薄膜太陽能電池製造工藝間的兼容性,以及抗反射光譜滿足子電池間的電流匹配要求的緣故。
  • Linux下C編程基礎之:Linux下C語言編程概述
    儘管C語言不是專門針對UNIX作業系統或機器編寫的,但它與UNIX系統的關係十分緊密。由於它的硬體無關性和可移植性,使C語言逐漸成為世界上使用最廣泛的計算機語言。C語言的成功並不是偶然的,它強大的功能和它的可移植性讓它能在各種硬體平臺上遊刃自如。總體而言,C語言有如下特點。(1)C語言是「中級語言」。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C語言可以像彙編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元。(2)C語言是結構化的語言。
  • 物聯網有哪些作業系統?物聯網作業系統匯總
    規範為基礎,2009年底在世界上第一個研發出支持Cortex M3 和μT-Kernel 規範的實時作業系統內核,後來逐漸加上Linux 上的成熟輕量級開源中間件,推出了中國人自己的物聯網開源實時作業系統——μTenux,在μTenux 中遵循μT-Kernel 規範的內核被命名為μT/OS。