PX5 RTOS

Last updated

PX5 RTOS
Developer William Lamie
Written in ANSI C
OS family POSIX
Working stateCurrent
Source model Source-available
Initial releaseJanuary 2023;1 year ago (2023-01)
Marketing target Embedded systems, IoT
Available in English
Platforms ARM, AMD, NXP, Renesas, RISC-V, STM32
Kernel type Embedded, deterministic, real-time microkernel
License Proprietary
Official website px5rtos.com/px5-rtos/

PX5 RTOS is a real-time operating system (RTOS) designed for embedded systems. It is implemented using the ANSI C programming language. [1]

Contents

Overview

The PX5 RTOS, created by William Lamie, is an embedded real-time operating system (RTOS) that was launched in January 2023. Lamie, who also developed other RTOSes such as Nucleus RTX, Nucleus PLUS, and ThreadX (acquired by Microsoft), [2] [3] currently serves as the President and CEO of PX5, an embedded software company headquartered in San Diego, California, United States. [4] [5] Among these RTOSes, approximately 10 billion devices are operated by the ThreadX RTOS, [6] while the Nucleus RTOS is used in around 3 billion devices. [7]

The name PX5 is an abbreviation where P stands for POSIX threads, X stands for thread switching, and 5 represents fifth generation RTOS. Written in ANSI C, the PX5 RTOS is compatible with various embedded microcontroller unit (MCU) and memory protection unit (MPU) architectures. It has minimal resource requirements, needing less than 1KB of FLASH and 1KB of RAM for basic operations on microcontrollers. [8]

One of the notable features of the PX5 RTOS is its native support for POSIX Threads (pthreads), which is an industry-standard API often absent in many other RTOS solutions. Additionally, it offers real-time extensions such as event flags, fast queues, tick timers, and memory management. [9]

The PX5 RTOS executes most API calls and context switches in less than a microsecond on typical 32-bit microcontrollers. It is also deterministic – ensuring predictable processing for each API and context switch regardless of the number of active threads.

The PX5 RTOS incorporates Pointer/Data Verification (PDV) technology, which verifies function return addresses, function pointers, system objects, global data, memory pools, and more. [10] [11]

In November 2023, PX5 introduced PX5 NET adding TCP/IP networking to the PX5 RTOS. Like PX5 RTOS, PX5 NET has a small minimal footprint (under 6KB) and leverages PDV for run-time safety and security. [12]

Supported platforms

PX5 RTOS supports most of the embedded MCU and MPU architectures, including ARM's Cortex-M, Cortex-R, Cortex-A, and RISC-V architecture families. It supports both 32-bit and 64-bit architectures, and provides support for both asymmetric multiprocessing (AMP) and symmetric multiprocessing (SMP) configurations. [13]

Technology

The PX5 RTOS uses a microkernel which enhances device security by integrating with Arm TrustZone technology, specifically designed for Cortex-M23 and Cortex-M33 microcontrollers. As a fifth-generation RTOS, PX5 is tailored for industrial-grade applications, enabling the separation of secure and non-secure MCU functions at the hardware level. [14]

To further strengthen security measures, PX5 RTOS incorporates a technology called Pointer/Data Verification (PDV). This technology identifies and prevents computer program errors, including buffer errors. In addition, the operating system is constructed using industry-standard POSIX pthreads APIs, facilitating the development of multi-threaded programs in C/C++. This allows for the execution of multiple tasks simultaneously across different operating systems. [14] [15]

The POSIX pthreads APIs in PX5 RTOS offer support for various mechanisms, such as signals, condition variables, semaphore, mutex, and message queues. Furthermore, extensions like event flags, fast queues, tick timers, and memory management are also included. PX5 RTOS maintains a small footprint and exhibits rapid scalability. Its installation process involves a 3-step procedure, aided by two accessible source files: px5.c and px5_binding.s. Additionally, the operating system automatically promotes one "main" file to the first system thread. [14]

PX5 RTOS accommodates read-only memory (ROM) Flash, ranging from a minimum of 1KB to a maximum of less than 40KB. The solution also ensures portability through its support for portable ANSI C for system programming. Moreover, PX5 RTOS has been verified by C-STAT static analysis and adheres to MISRA compliance standards. [14]

Partnerships

In January 2023, PX5 and Clarinox have joined forces to facilitate wireless connectivity in resource-constrained embedded systems. [10] [16] They integrated ClarinoxBlue and ClarinoxWiFi protocol stack software with the PX5 RTOS. [16]

On 25 January 2023, Cypherbridge made an announcement regarding the integration of its SDKPac and uLoadXL IoT software with PX5 RTOS. [10]

In March 2023, Percepio AB entered into a partnership agreement with PX5. The PX5 integrated the Percepio Tracealyzer trace recorder and Percepio supported the RTOS PX5 in a commercially available version. [17]

Related Research Articles

The Portable Operating System Interface is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system and user-level application programming interfaces (APIs), along with command line shells and utility interfaces, for software compatibility (portability) with variants of Unix and other operating systems. POSIX is also a trademark of the IEEE. POSIX is intended to be used by both application and system developers.

RTLinux is a hard realtime real-time operating system (RTOS) microkernel that runs the entire Linux operating system as a fully preemptive process. The hard real-time property makes it possible to control robots, data acquisition systems, manufacturing plants, and other time-sensitive instruments and machines from RTLinux applications. The design was patented. Despite the similar name, it is not related to the Real-Time Linux project of the Linux Foundation.

In computing, POSIX Threads, commonly known as pthreads, is an execution model that exists independently from a programming language, as well as a parallel execution model. It allows a program to control multiple different flows of work that overlap in time. Each flow of work is referred to as a thread, and creation and control over these flows is achieved by making calls to the POSIX Threads API. POSIX Threads is an API defined by the Institute of Electrical and Electronics Engineers (IEEE) standard POSIX.1c, Threads extensions .

Nucleus RTOS is a real-time operating system (RTOS) produced by the Embedded Software Division of Mentor Graphics, a Siemens Business, supporting 32- and 64-bit embedded system platforms. The operating system (OS) is designed for real-time embedded systems for medical, industrial, consumer, aerospace, and Internet of things (IoT) uses. Nucleus was released first in 1993. The latest version is 3.x, and includes features such as power management, process model, 64-bit support, safety certification, and support for heterogeneous computing multi-core system on a chip (SOCs) processors.

<span class="mw-page-title-main">FreeRTOS</span> Real-time operating system

FreeRTOS is a real-time operating system kernel for embedded devices that has been ported to 35 microcontroller platforms. It is distributed under the MIT License.

Eclipse ThreadX is a highly deterministic, embedded real-time operating system (RTOS) programmed mostly in the language C.

<span class="mw-page-title-main">Segger Microcontroller Systems</span> Private company in the embedded systems industry

Segger Microcontroller, founded in 1992, is a private company involved in the embedded systems industry. It provides products used to develop and manufacture four categories of embedded systems: real-time operating systems (RTOS) and software libraries (middleware), debugging and trace probes, programming tools, and in-system programmers. The company is headquartered in Monheim am Rhein, Germany, with remote offices in Gardner, Massachusetts; Milpitas, California; and Shanghai, China.

DSPnano is an embedded real-time operating system (RTOS) which is compatible with POSIX and embedded Linux. It was first created in 1996 and was one of the first pthread based real-time kernels. Its entire focus was on tiny real-time digital signal processing systems and has been optimized to deliver high performance DSP on embedded digital signal controllers and digital signal processors. Its parent was the Unison Operating System.

TI-RTOS is an embedded tools ecosystem created and offered by Texas Instruments (TI) for use across a range of their embedded system processors. It includes a real-time operating system (RTOS) component named TI-RTOS Kernel, networking connectivity stacks, power management, file systems, instrumentation, and inter-processor communications like DSP/BIOS Link. It is free and open-source software, released under a BSD license.

<span class="mw-page-title-main">ChibiOS/RT</span> Real-time operating system

ChibiOS/RT is a compact and fast real-time operating system supporting multiple architectures and released under a mix of the GNU General Public License version 3 (GPL3) and the Apache License 2.0. It is developed by Giovanni Di Sirio.

EFM32 Gecko MCUs are a family of mixed-signal 32-bit microcontroller integrated circuits from Energy Micro based on ARM Cortex-M CPUs, including the Cortex-M0+, Cortex-M3 and Cortex-M4.

<span class="mw-page-title-main">XtratuM</span> Hypervisor

XtratuM is a bare-metal hypervisor specially designed for embedded real-time systems available for the instruction sets LEON2/3/4, ARM v7 and V8 processors and RISC-V processor.

<span class="mw-page-title-main">QP (framework)</span>

QP is a family of open source real-time embedded frameworks (RTEFs) and runtime environments based on active objects (actors) and hierarchical state machines. The QP family consists of the lightweight QP/C and QP/C++ frameworks, written in C (C99) and C++ (C++11), respectively.

RT-Thread is an open-source real-time operating system (RTOS) for embedded systems and Internet of things (IoT). It is developed by the RT-Thread Development Team based in China. RT-Thread is aimed to change the current situation in China that there is no well used open-source real-time operating system in the microcontroller field.

Mbed is a development platform and real-time operating system (RTOS) designed for internet-connected devices that utilize 32-bit ARM Cortex-M microcontrollers. These internet-enabled devices are often categorized under the Internet of Things (IoT) umbrella. The Mbed project is a collaborative effort led by Arm Holdings, in partnership with various technology companies and contributors.

NuttX is a free and open-source Real-Time Operating System (RTOS) with an emphasis on technical standards compliance and on having a small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the main governing standards in NuttX are from the Portable Operating System Interface (POSIX) and the American National Standards Institute (ANSI). Further standard application programming interfaces (APIs) from Unix and other common RTOSes are adopted for functions unavailable under these standards, or inappropriate for deeply embedded environments, such as the fork system call.

<span class="mw-page-title-main">Apache Mynewt</span> Real-time operating system

Apache Mynewt is a modular real-time operating system for connected Internet of things (IoT) devices that must operate for long times under power, memory, and storage constraints. It is free and open-source software incubating under the Apache Software Foundation, with source code distributed under the Apache License 2.0, a permissive license that is conducive to commercial adoption of open-source software.

<span class="mw-page-title-main">FatFs</span> Software library for microcontrollers

FatFs is a lightweight software library for microcontrollers and embedded systems that implements FAT/exFAT file system support. Written on pure ANSI C, FatFs is platform-independent and easy to port on many hardware platforms such as 8051, PIC, AVR, ARM, Z80. FatFs is designed as thread-safe and is built into ChibiOS, RT-Thread, ErlendOS, and Zephyr real-time operating systems.

William (Bill) Lamie is an American software engineer. He is known as the author of the Nucleus, ThreadX and PX5 real-time operating systems (RTOS).

References

  1. "PX5 RTOS Simplifies Development of 64-bit Hard Real-Time Applications with Support for IAR Embedded Workbench for Arm". Yahoo! Finance . San Diego. 12 June 2023. Retrieved 22 August 2023.
  2. Janakiram MSV (21 April 2019). "How Does The Express Logic Acquisition Help Microsoft And The IoT Ecosystem". Forbes . Retrieved 1 September 2023.
  3. Wiggers, Kyle (18 April 2019). "Microsoft acquires Express Logic for its real-time internet of things operating system". VentureBeat . Retrieved 1 September 2023.
  4. "Bill Lamie: Story of a man and his real-time operating systems". embedded.com. 3 September 2010. Retrieved 31 August 2023.
  5. "William Lamie". Electronic Design . Retrieved 31 August 2023.
  6. Tuip, Martin (9 June 2021). "Building IoT solutions with RTOS". Microsoft Tech Community . Retrieved 31 August 2023.
  7. Flaherty, Nick (26 March 2023). "Nucleus RTOS hits 30, boosts safety certifications". eeNews Europe. Retrieved 31 August 2023.
  8. Jagdale, Saumitra (27 February 2023). "PX5: a new RTOS for real-time multithread scheduling in under 1KB". Embedded.com. Retrieved 29 August 2023.
  9. "IAR Systems Fully Supports the Brand-new Industrial-Grade PX5 RTOS". Automation.com. 26 January 2023. Retrieved 29 August 2023.
  10. 1 2 3 Maxfield, Max (9 February 2023). "New PX5 RTOS Boasts Native Support for POSIX pthreads API". Electronic Engineering Journal. Retrieved 25 August 2023.
  11. "Reducing safety and security risks for embedded systems". MMG Publishing. Retrieved 29 August 2023.
  12. "PX5 Launches PX5 NET to Reduce Development Effort & Risk in TCP/IP Networking for Embedded IoT Applications". Yahoo! Finance . San Diego, USA. 7 November 2023. Retrieved 8 January 2024.
  13. "IAR Systems implements PX5 RTOS for its IAR Embedded Workbench". IoT Now. 17 June 2023. Retrieved 29 August 2023.
  14. 1 2 3 4 "Product of the Week: PX5 RTOS with Arm TrustZone Support". Embedded Computing Design. 1 May 2023. Retrieved 27 August 2023.
  15. Bush, Steve (26 January 2023). "IAR Systems adds support for PX5 industrial-grade RTOS". Electronics Weekly . Retrieved 29 August 2023.
  16. 1 2 Haywood Queen, Karen (6 May 2023). "Clarinox, PX5 Partner to Improve Embedded Device Connectivity". Electronic Engineering Times . Retrieved 27 August 2023.
  17. Cox, Chad (27 January 2023). "Percepio's Tracealyzer 4.6 Supports PX5 RTOS". Embedded Computing Design. Västerås, Sweden. Retrieved 27 August 2023.

See also