跳到内容

嵌入式系统/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。


华夏公益教科书