跳到內容

嵌入式系統/Atmel AVR/作業系統和任務管理器

來自 Wikibooks,開放世界中的開放書籍
Nut/OS Nut/OS 是專為 ATmega128 設計的簡單 RTOS,它提供最少的服務來執行 Nut/Net(TCP/IP 協議棧)。它的功能包括
  • 非搶佔式多執行緒
  • 事件
  • 週期性和一次性定時器
  • 動態堆記憶體分配
  • 中斷驅動的流式 I/O

TCP/IP 協議棧的主要功能是

  • 基本協議:ARP、IP、ICMP、UDP、TCP
  • 使用者協議:DHCP、DNS、HTTP
  • 套接字 API
  • 主機、網路和預設路由
  • 中斷驅動的乙太網驅動程式

根據 網站,它至少需要 ATmega128。


Contiki Contiki 是一款開源、高度可移植、多工作業系統,專為聯網的記憶體受限嵌入式系統設計。典型的 Contiki 配置為 2 KB 的 RAM 和 40 KB 的 ROM。

Contiki 包含兩個通訊協議棧:uIP 和 Rime。uIP 是一個小型 RFC 相容的 TCP/IP 協議棧,使 Contiki 可以透過網際網路進行通訊。Rime 是一個為低功耗無線電設計的輕量級通訊協議棧,它提供了廣泛的通訊原語和協議,例如多跳資料收集、多跳單播網狀路由和可靠的多跳網路泛洪。

Contiki 已獲得 IPv6 Ready 階段 1 認證,因此有權使用 IPv6 Ready 銀色徽標。

Contiki 由一個事件驅動的核心組成,應用程式程式在執行時動態載入和解除安裝到核心之上。Contiki 程序使用輕量級 protothreads,它在事件驅動的核心之上提供線性、類似執行緒的程式設計風格。Contiki 還支援每個程序可選的搶佔式多執行緒、使用事件透過訊息傳遞進行程序間通訊,以及一個可選的 GUI 子系統,該子系統要麼直接圖形支援本地連線的終端,要麼透過 VNC 或 Telnet 進行網路虛擬顯示。

Contiki 執行在各種平臺上,從 MSP430 和 AVR 等嵌入式微控制器到舊的家庭電腦。程式碼佔用空間在千位元組級,記憶體使用量可以配置為低至幾十位元組。


TinyOS

TinyOS 是一款開源作業系統,專為無線嵌入式感測器網路設計。它具有基於元件的架構,這使得快速創新和實現成為可能,同時最大限度地減少了感測器網路固有的嚴格記憶體限制所要求的程式碼大小。TinyOS 的元件庫包括網路協議、分散式服務、感測器驅動程式和資料採集工具 - 所有這些都可以按原樣使用,也可以進一步改進以用於自定義應用程式。TinyOS 的事件驅動執行模型支援細粒度的電源管理,同時允許無線通訊和物理世界介面不可預測的性質所必需的排程靈活性。

TinyOS 已移植到十幾個平臺和眾多感測器板。一個龐大的社群在模擬中使用它來開發和測試各種演算法和協議。新版本下載量超過 10,000 次。500 多個研究小組和公司在 Berkeley/Crossbow Motes 上使用 TinyOS。許多小組正在積極地向 sourceforge 網站貢獻程式碼,並共同努力在開放環境中建立標準的、可互操作的網路服務,這些服務建立在直接經驗的基礎上,並透過競爭性分析不斷完善。


PicOS 來自 Olsonet Communications 的 PicOS 是一款佔用空間小的作業系統,用於組織在資源有限的小型 CPU 上執行的嵌入式反應式應用程式的多個活動。它提供協作式多工處理(可在非常小的 RAM 內實現),以及用於程序間通訊的簡單正交工具。

PicOS 可以使用下面的安裝實用程式下載並安裝在 eCOG1 開發套件上。應用說明 AN009 提供了有關安裝過程的完整說明。

PicOS 也可以從 Olsonet 網站免費下載,並在 GPL 許可下分發。


FreeRTOS FreeRTOS 是一款專為嵌入式裝置設計的即時作業系統,已移植到多個微控制器。

FreeRTOS 的設計目標是小型和簡單。核心本身僅由三個或四個 C 檔案組成。為了使程式碼易讀、易於移植和維護,它主要用 C 語言編寫,但包含一些必要的彙編程式函式(主要是在特定於體系結構的排程程式例程中)。下載內容包含每個埠和編譯器的預製配置和演示,從而可以快速進行應用程式設計。FreeRTOS.org 網站還包含 RTOS 教程、RTOS 設計的詳細資訊以及各種微控制器的效能比較結果。


OpenRTOS OpenRTOS™ 是 FreeRTOS.org 的商業許可版本。OpenRTOS 許可證不包含任何關於 GPL 的引用。
AvrX AvrX 是一款即時多工核心。
XMK eXtreme Minimal Kernel 是一款專為微控制器設計的搶佔式多執行緒即時作業系統。XMK 的主要設計目標是小型、極小型,而不犧牲效能或功能。XMK 的最小佔用空間使其成為在 8 位微控制器上執行的理想選擇,而其功能內容使其成為 16 位和 32 位微控制器的絕佳選擇。

XMK 是 100% 可配置的,從無功能的執行緒排程程式到具有 TCP/IP 網路功能的完整功能的 RTOS。

根據 網站,它適用於:ATmega103、AT90s8515、ATmega128。


JacOS 根據 論壇,原始碼可以從作者處獲得。

它適用於:atmega103、atmega603、atmega8、atmega83、atmega85、atmega16、atmega161、atmega163、atmega32、atmega323、atmega64、atmega128。


ChibiOS/RT ChibiOS/RT 是一款緊湊且快速的 RTOS,專為嵌入式應用程式設計。它提供執行緒、互斥量、訊號量、訊息、事件、定時器、具有超時功能的靈活 I/O。
SST 這是一個名為“超級簡單任務排程器” - SST 的輕量級排程器的實現。這個想法來自 Robert Ward 的文章 - “實用的即時技術”http://www.quantum-leaps.com/resources/Ward03.pdf。SST 允許顯著減少對寶貴 RAM 和 ROM 的需求,同時仍然允許保持排程程式的即時特性(例如,任務優先順序和搶佔)。
uSmartX uSmartX 是一款非搶佔式、多工、基於優先順序的 RTOS。它具有用於任務間通訊和基本任務和時間控制功能的機制。
BeRTOS BeRTOS 是一款即時開源作業系統,它提供驅動程式和庫,專為快速開發嵌入式軟體而設計。

核心功能

  • 搶佔式和協作式迴圈排程
  • 堆,用於動態分配程序記憶體
  • 堆疊程序監視器,用於防止堆疊溢位
  • 程序間訊息傳遞系統。(開銷極低)
  • 二進位制訊號量
  • 訊號

它支援 Arduino Duemilanove。


華夏公益教科書