rtos源碼
Ⅰ 嵌入式實時操作系統的特點
嵌入式實時操作系統應用十分廣泛,包括數據通信、信息家電、航空航天、工業控制、生物醫學電子、船舶工程、計算機外設、電信設備、交通運輸、國防武器控制等領域,已經形成IT產業爭奪的重點領域,它所帶來的工業年產值已超過1萬億美元。在嵌入式系統開發中使用嵌入式實時操作系統已成為一種不可逆轉的潮流與時尚。
1 背景
隨著計算機技術的迅速發展和晶元製造工藝的不斷進步,嵌入式系統的應用日益廣泛:從民用的電視、手機等電路設備到軍用的飛機、坦克等武器系統,到處都有嵌入式系統的身影。在嵌入式系統的應用開發中,采和嵌入式實時操作系統(簡稱RTOS)能夠支持多任務,使得程序開發更加容易,便於維護,同時能夠提高系統的穩定性和可靠性。這已逐漸成為嵌入式系統開發的一個發展方向。
2 嵌入式操作系統概述
嵌入式操作系統是一種支持嵌入式系統應用的操作系統軟體。它是嵌入式系統(包括硬、軟體系統)極為重要的組成部分,通常包括與硬體相關的底層驅動軟體、系統內核、設備驅動介面、通信協議、圖形界面、標准化瀏覽器Browser等。嵌入式操作系統具有通用操作系統的基本特點,如能夠有效管理越來越復雜的系統資源;能夠把硬體虛擬化,使得開發人員從繁忙的驅動程序移植和維護中解脫出來;能夠提供庫函數、標准設備驅動程序以及工具集等。與通用操作系統相比較,嵌入式操作系統在系統實時高效性、硬體的相關依賴性、軟體固態化以及應用的專用性等方面具有較為突出的特點。
嵌入式系統的出現至今已經有30多年的歷史。縱觀嵌入式技術的發展過程,大致經歷了四個階段。
(1)無操作系統的嵌入式演算法階段
這一階段的嵌入式系統是以單晶元為核心的系統,具有與一些監測、伺服、指示設備相配合的功能。一般沒有明顯的操作系統支持,而是通過匯編語言編程對系統進行直接控制。主要特點是系統結構和功能都相對單一,針對性強,無操作系統支持,幾乎沒有用戶介面。
(2)簡單監控式的實時操作系統階段
這一階段的嵌入式系統主要以嵌入式式器為基礎、以簡單監控式操作系統為核心。系統的特點是:處理器種類繁多,通用性比較弱;開銷小,效率高;一般配備系統模擬器,具有一定的兼容性和擴展性;用戶界面不夠友好,主要用來控制系統負載以及監控應用程序運行。
(3)通用的嵌入式實時操作系統階段
以通用型嵌入式實時操作系統為標志的嵌入式系統,如VxWorks、pSos、Windows CE就是這一階段的典型代表。這一階段嵌入式系統的特點是:能運行在各種不同的微處理器上;具有強大的能用型操作系統的功能,如具備了文件和目錄管理、多任務、設備驅動支持、網路支持、圖形窗口以及用戶界面等功能;具有豐富的API和嵌入式應用軟體。
(4)以Internet為標志的嵌入式系統
伴隨著通用型嵌入式實時操作系統的發展,面向Internet網路和特定應用的嵌入式操作系統正日益引起人們的重視,成為重要的發展方向。嵌入式系統與Internet的真正結合、嵌入式操作系統與應用設備的無縫結合代表著嵌入式操作系統發展的未來。
3 兩種源碼開放的RTOS
嵌入式實時操作系統有很多,如VxWorks、PalmOS、WindowsCE等。這些操作系統均屬於商品化產品,價格昂貴且由於源泉代碼不公開導致了諸如對設備的支持、應用軟體的移植等一系列的問題;而開放源碼的RTOS在成本和技術上有其特有的優勢,在RTOS領域佔有越來越重要的地位,本文將介紹μC/OS-II和eCos兩種優秀的源碼公開的實時操作系統,通過對它們各自的特點和性能進行分析和比較,給出相關的數據,為選擇一種合適的RTOS提供參考。
3.1 μC/OS-II
μC/OS-II的前射是μC/OS,最早出自於1992年美國嵌入式系統專家Jean J.Labrosse在《嵌入式系統編程》雜志的5月和6月刊上刊登的文章連載,並把μC/OS的源碼發布在該雜志的BBS上。當時就有500多人下載了這份源碼。世界上數以千計的工程技術人員將μC/OS應用到了各個領域,如照相機業、發動機控制、網路接入設備、高速公路電話系統、ATM機和工業機器人等。許多大學用μC/OS作教材,用於實時系統教學。1998年,作者決定出版μC/OS的第二本書《μC/OS-II The Real Time Kernel》,並設立了正式的網站:www. ΜC/OS-II.com,給μC/OS-II增加了一些新的功能,並且增加了約200頁的解釋。
μC/OS和μC/OS-II是專門為計算機的嵌入式應用設計的,絕大部分代碼是用C語言編寫的。CPU硬體相關部分是用匯編語言編寫的、總量約200行的匯編語言部分被壓縮到最低限度,為的是便於移植到任何一種其它的CPU上。許多移植的範例可以從網站上得到。用戶只要有標準的ANSI的C交叉編譯器,有匯編器、連接器等軟體工具,就可以將μC/OS嵌入到開發的產品中。
μC/OS具有執行效率高、佔用空間小、實時性能優良和可擴展性能等特點,最小內核可編譯至2KB。μC/OS-II已經移植到了幾乎所有知名的CPU上。
3.2 eCos
eCos(embedded Configurable operating system),即嵌入式可配置操作系統,最初起源於美國的Cygnus Solutions公司。Cygnus公司於1998年11月發布了第一個eCos版本eCos1.1,當時只支持有限的幾種處理器結構。1999年11月,RedHat公司以6.74億美元收購了Cygnus公司。在此後的幾年裡,eCos成為其嵌入式領域的關鍵產品,得到了迅速的發展。2002年,RedHat公司由於財務方面的原因,裁剪了eCos開發隊伍,但並沒有停止eCos的發展。RedHat公司隨後宣稱將繼續支持eCos的發展,而由原eCos主要開發人員組建了eCos Centric公司,並於2003年5月正式發布了eCos2.0。
雖然eCos是RedHat的產品,但是eCos並不是linux或Linux的派生,eCos彌補了Linux在嵌入式應用領域的不足。目前,一個最小配置的Linux內核大概有500KB,需要佔用1.5MB的內存空間,這還不包括應用程序和其它所需的服務;eCos可以提供實時嵌入式應用所需的基本運行基件,而只佔用幾十KB或幾百KB的內存空間。eCOS是一個源碼開放的可配置、可移植、無版稅、面向深嵌入式應用的實時操作系統。從eCOS的名稱可以看出,它最大的特點在於它是一個配置靈活的系統。ECOS的核心部分是由不同的組件組成的,包括內核、C語言庫和底層運行包等。每個組件以能提供大量的可配置選項,利用eCOS提供的配置工具可以很方便地進行配置。通過不同的配置使得eCOS能夠滿足不同的嵌入式應用。
4 μC/OS-II與eCOS的比較
對於以上兩種源泉碼公開的實時操作系統,我們主要從以下幾個方面進行比較。通過比較,能夠為大家選擇適合自己系統的RTOS提供參考。
4.1 內核調度機制
RTOS內核的核心是調度器。當系統包含多個任務或多個線程時,必須使用調度器來決定當前執行哪一個任務或線程。調度器對線程的運行進行控制,並為線程提供一種同步機制。表1列出了這兩種RTOS調度器(調度機制)的比較。
表1 調度器比較
調度方法 同優先順序調度 優先順序數/個 任務數量/個
uC/OS-II
固定
優先順序
搶占式
無
64
(8個保留)
56
eCos: 點陣圖
優先順序
搶占式
無
32
32
eCos:多級隊列
優先順序
搶占式
有
32
無限
eCos:獎券
測試中
測試中
測試中
測試中
μC/OS只支持固定優先順序搶占式,不支持時間片輪轉調度,調度方法簡單、實時性好,用法也簡單;eCOS調度方法豐富,適應性好。當然,目前的eCOS只允許在其目標系統中使用一個單獨的調度器,未來的版本將可以允許多個調度器協同工作。
4.2 任務間同步、通信機制
RTOS的功能一般要通過若干任務和中斷服務程序共同完成,任務與任務之間、任務與中斷服務程序之間必須協調動作,互相配合,這就牽涉到任務間的同步與通信問題。表2為這兩種操作系統同步與通信機制的比較。
表2 同步與通信機制的比較
uC/OS-II
eCos
同步與通信機制
信號量、郵箱、消息隊列
互斥、條件變數、計數型信號量、郵箱和事件標志
4.3 任務切換時間和中斷延遲時間
任務切換時間和中斷延遲時間是評估RTOS性能的兩個重要指標。任務切換時間可以反映出RTOS執行任務的速度,而中斷延遲時間可以反映出RTOS對外界變化的反應速度。表3為這兩種操作系統任務切換時間和中斷延遲時間的比較。
表3 任務切換時間和中斷延遲時間的比較
任務切換時間/us
中斷延遲時間/μs
測試環境
μC/OS-II
29.7~34.2
78.8
Intel80186(33MHz)
eCos
15.84
19.2
MPC860A3(33MHz)
4.4 對硬體的支持
μC/OS-II和eCOS支持當前流行的大部分嵌入式CPU,都具有很好的可移植特性。μC/OS-II支持從8位到32位的CPU;而eCOS可以在16位、32位和64位等不同體系結構之間移植。μC/OS-II和eCOS由於本身內核就很小,經過裁剪後的代碼最小可以分別為小於2KB和10KB,所需的最小數據RAM空間可以為4KB和10KB,因此它們對硬體的要求很低,具有極高的經濟性。
結語
通過比較可以看到:μC/OS-II相對eCOS來說,源代碼最小很多,特別適合學習和研究。它最大的特點是小巧,適合應用在一些RAM和ROM有限的小型嵌入式系統中,如單片機系統。ECOS最大的特點是配置靈活,適合於用在一些商業級或工業級的嵌入式系統,如一些消費電子、汽車領域等等。總之,選用什麼樣的操作系統,要根據目標系統的硬體條件和用戶應用程序的復雜度來確定。
Ⅱ 誰能給我介紹下Nucleus操作系統
NucleusPLUS是為實時嵌入式應用而設計的一個搶先式多任務操作系統內核,其95%的代碼是用ANSIC寫成的,因此非常便於移植並能夠支持大多數類型的處理器。從實現角度來看,NucleusPLUS是一組C函數庫,應用程序代碼與核心函數庫連接在一起,生成一個目標代碼,下載到目標板的RAM中或直接燒錄到目標板的ROM中執行。
簡介
NucleusPLUS是目前最受歡迎的嵌入式操作系統之一。
性能
在典型的目標環境中,NucleusPLUS核心代碼區一般不超過20K位元組大小。NucleusPLUS採用了軟體組件的方法。每個組件具有單一而明確的目的,通常由幾個C及匯編語言模塊構成,提供清晰的外部介面,對組件的引用就是通過這些介面完成的。除了少數一些特殊情況外,不允許從外部對組件內的全局進行訪問。由於採用了軟體組件的方法,NucleusPLUS各個組件非常易於替換和復用。NucleusPLUS的組件包括任務控制、內存管理、任務間通信、任務的同步與互斥、中斷管理、定時器及I/O驅動等。
編輯本段特點
Nucleus具有如下特點:
提供源代碼
1、提供源代碼 NucleusPLUS提供注釋嚴格的C源級代碼給每一個用戶。這樣,用戶能夠深入地了解底層內核的運作方式,並可根據自己的特殊要求刪減或改動系統軟體,這對軟體的規范化管理及系統軟體的測試都有極大的幫助。另外,由於提供了RTOS的源級代碼,用戶不但可以進行RTOS的學習和研究,而且產品在量產時也不必支付License,可以省去大量的費用。對於軍方來說,由於提供了源代碼,用戶完全可以控制內核而不必擔心操作系統中可能會存在異常任務導致系統崩潰。
性價比高
2、性價比高 NucleusPLUS由於採用了先進的微內核(Micro-kernel)技術,因而在優先順序安排,任務調度,任務切換等各個方面都有相當大的優勢。另外,對C++語言的全面支持又使得NucleusPLUS的Kernel成為名副其實的面向對象的實時操作系統內核。然而,其價格卻比較合理。所以,容易被廣大的研發單位接受。
易學易用
3、易學易用 NucleusPLUS能夠結合Paradigm,SDS以及ATI自己的多任務調試器組成功能強大的集成開發環境,配合相應的編譯器和動態聯結庫以及各類底層驅動軟體,用戶可以輕松地進行RTOS的開發和調試。另外,由於這些集成開發環境(IDE)為所有的開發工程師所熟悉,因而,容易學習和使用。
功能模塊豐富
4、功能模塊豐富 NucleusPLUS除提供功能強大的內核操作系統外,還提供種類豐富的功能模塊。例如用於通訊系統的局域和廣域網路模塊,支持圖形應用的實時化Windows模塊,支持Internet網的WEB產品模塊,工控機實時BIOS模塊,圖形化用戶介面以及應用軟體性能分析模塊等。用戶可以根據自己的應用來選擇不同的應用模塊。
Ⅲ 如何將linux下的程序,移植到freertos中
方法/步驟
嵌入式操作系統有分時操作系統和實時操作系統,如果操作系統能夠使計算機系統及時響應外部事件請求,並能控制所有實時設備和實時任務協調運行,且能在一個規定的時間內完成對事件的處理,怎麼這種系統稱為實時操作系統。
如果系統必須在極其嚴格的時間內完成的任務叫做硬體的實時操作系統,如果不是很嚴格的話就是軟體的實時操作系統。
Ⅳ 在學習freertos之前,應學習哪些東西
學習FreeRTOS前的准備工作這里只要做好兩點就可以了。1, 從官網下載最新的程序包2, 官網有FreeRTOS每個函數的API說明,已經相應API的例子,其實源碼的.h文件裡面也有大部分函數的使用例子 教程計劃1 先把自己做的這幾個例子講解一下,關鍵是分析一下源碼,源碼必須得分析,要不知其然不知其所以然。2 然後把官方的這幾個例子講解一下,說這幾個例子的主要目的是充分學習官方是如何使用這個RTOS的,非常有參考價值。3 針對我們板子自己的外設,做一套完整的,基於FreeRTOS的底層驅動,讓這些驅動能夠更加有效的在FreeRTOS下面工作。在學習freertos之前,應學習哪些東西
Ⅳ RT-Thread RTOS的RT-Thread / uCOS / FreeRTOS 簡單比較
1 、任務管理及調度:
RT-Thread - 32/256可選優先順序搶占式調度,線程數不限,相同優先順序線程時間片輪轉調度;支持動態創建/銷毀線程。
uCOS - 256優先順序搶占式調度,不允許相同優先順序任務存在
2、 同步/通信機制:
RT-Thread - 支持semaphore, mutex, mailbox, message queue, event。mailbox可存儲多條消息,任務等待可按優先順序進行排隊。
uCOS -semaphore,mutex, mailbox, message queue, event。mailbox只能存放1條消息
3、內存管理:
RT-Thread -固定分區內存管理,小內存系統動態內存管理,大內存系統SLAB內存管理
uCOS - 固定大小內存塊管理
4、定時器:
RT-Thread - 掛接到系統OS定時器的硬定時器
uCOS - 只能使用OSTimeDly進行時間間隔處理
5、中斷嵌套:
RT-Thread - 允許
uCOS - 允許
6、源碼許可證:
RT-Thread - 遵循GPLv2+許可證。可用於商業產品(只需要註明使用了RT-Thread)
uCOS - 商業收費
Ⅵ 新人剛剛入門FreeRTOS,想問怎麼在電腦上編譯
不需要什麼頭文件,其實freertos和ucosii這種小型系統一樣,本質是一個大的程序,因此需要它本身的所有源代碼就可以運行了,但是你要彈輸出窗口的話直接在你建的主文件裡面include一下iostream.h或者stdio.h這樣的文件就行了。
你把源碼搞到以後,自己建立一個app.c文件,編寫主函數,在裡面創建任務,簡單地輸出一些字元串,調通了自然就明白了。
Ⅶ 實時嵌入式系統有哪些
實時嵌入式系統有:
(1) DeltaOS
DeltaOS是電子科技大學嵌入式實時教研室和科銀公司 (專門從事嵌入式開發) 聯合研製開發的全中文的嵌入式操作系統,提供強實時和嵌入式多任務的內核,任務響應時間快速、確定,不隨任務負載大小改變,絕大部分的代碼由C語言編寫,具有很好的移植性。
(2) Hopen OS
Hopen OS是凱思集團自主研製開發的實時操作系統,由一個體積很小的內核及一些可以根據需要進行定製的系統模塊組成。其核心Hopen Kernel的規模一般為10KB左右,佔用空間小,並具有實時、多任務、多線程的系統特徵。
(3) EEOS
EEOS是中科院計算所組織開發的開放源碼的實時操作系統。該實時操作系統重點支持p-Java,要求一方面小型化,一方面能重用Linux的驅動和其他模塊。
(4) HBOS
HBOS系統是浙江大學自主研製開發的全中文實時操作系統。它具有實時、多任務等特徵,能提供瀏覽器、網路通信和圖形窗口等服務;可供進行一定的定製或二次開發;能為應用軟體開發提供API介面支持;可用於信息家電、智能設備和儀器儀表等領域開發應用。
(7)rtos源碼擴展閱讀:
常見的嵌入式操作系統:
一、VxWorks
VxWorks操作系統是美國WindRiver公司於1983年設計開發的一種嵌入式實時操作系統(RTOS),是Tornado嵌入式開發環境的關鍵組成部分。良好的持續發展能力、高性能的內核以及友好的用戶開發環境,在嵌人式實時操作系統領域逐漸占據一席之地。
二、Windows CE
Windows CE與Windows系列有較好的兼容性,無疑是Windows CE推廣的一大優勢。其中WinCE3.0是一種針對小容量、移動式、智能化、32位、了解設備的模塊化實時嵌人式操作系統。
三、嵌入式Linux
這是嵌入式操作系統的一個新成員,其最大的特點是源代碼公開並且遵循GPL協議,在近一年多以來成為研究熱點,據IDG預測嵌入式Linux將占未來兩年的嵌入式操作系統份額的50%。
四、μC/OS一Ⅱ
μC/OS一Ⅱ是著名的源代碼公開的實時內核,是專為嵌入式應用設計的,可用於8位,16位和32位單片機或數字信號處理器(DSP)。
Ⅷ FreeRTOS功能和特點有哪些
FeeRTOS功能和特點編輯用戶可配置內核功能多平台的支持提供一個高層次的信任代碼的完整性目標代碼小,簡單易用遵循MISRA-C標準的編程規范強大的執行跟蹤功能堆棧溢出檢測沒有限制的任務數量沒有限制的任務優先順序多個任務可以分配相同的優先權隊列,二進制信號量,計數信號燈和遞歸通信和同步的任務優先順序繼承免費開源的源代碼F
eeRTOS原理與實現編輯任務調度機制是嵌入式實時操作系統的一個重要概念,也是其核心技術