Difference between revisions of "RTOS"

From OpenCircuits
Jump to navigation Jump to search
(link to Open Circuits articles that go into more detail)
(more zephyr info)
 
(One intermediate revision by the same user not shown)
Line 28: Line 28:
 
* AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. [https://web.archive.org/web/20060214193633/http://www.barello.net/ "Larry Barello's Home Page: AVR and Robotics ... AvrX"].
 
* AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. [https://web.archive.org/web/20060214193633/http://www.barello.net/ "Larry Barello's Home Page: AVR and Robotics ... AvrX"].
 
* FreeRTOS and SAFERTOS : ... [[freertos posix Development]] ... http://www.freertos.org/
 
* FreeRTOS and SAFERTOS : ... [[freertos posix Development]] ... http://www.freertos.org/
 +
* Zephyr is an open-source RTOS for 32-bit systems: ARM, MIPS, RISC-V, etc.: https://www.zephyrproject.org/ and https://community.tmpdir.org/tag/zephyr
 
* ''[FIXME: some of the links below are open-source RTOSes; move them up?]''
 
* ''[FIXME: some of the links below are open-source RTOSes; move them up?]''
  

Latest revision as of 16:09, 22 April 2025

A real-time operating system (RTOS) is a multitasking operating system for real-time computing applications. Typically a RTOS guarantees very short latencies between an input event on some sensor and an output response via some other transducer.

A RTOS is typically more like a "framework" or "API" than popular desktop operating systems: it typically specifies standardized APIs for hardware device drivers and software tools, and often includes libraries that deal with many common devices and software tools, so developers can get a system working without writing everything from scratch.

For example, highly dynamic robotic systems, such as balancing walking robots and multi-rotor helicopters, need their motors to start responding very quickly as soon as it detects it's a little off-balance, long before it tilts over and slams into the ground.

Many embedded systems (in particular, multi-purpose Embedded System) often use a RTOS.

Here at Open Circuits, we are most interested in (a) When developing new hardware (especially open hardware), what are the hardware requirements required to support a typical RTOS or some specific RTOS? (b) What sorts of RTOS are available (especially open-source RTOSes), and what demo boards support that RTOS so the software guys can start building software before the hardware is completely finished? (c) Are there ways of developing hardware to relax the constraints on the software and vice versa?

The combination of (a) a Raspberry Pi or similar device using standard Linux (which is, alas, not a RTOS) and (b) at least one Arduino or similar device for each and every input or output that requires low-latency (because each one handles only one thing, it doesn't necessarily require a RTOS) is one popular alternative to using an RTOS. (FIXME: link to page about combining Raspberry Pi with Arduino -- R Pi Notes ? Python Smart Terminal ?).

Some open-source RTOSes

Further reading