A Real-Time Operating System on the Raspberry Pi logo

A Real-Time Operating System on the Raspberry Pi

Free

A practical guide to RTOS on the Raspberry Pi

FreeFree tier
Type
Open Source
Company
Pebble Bay

About A Real-Time Operating System on the Raspberry Pi

This resource provides an in-depth exploration of using a real-time operating system (RTOS) on the Raspberry Pi single-board computer. Written by embedded software consultancy Pebble Bay, the article examines the hardware capabilities of the Raspberry Pi, including its Broadcom BCM2835 system-on-chip with ARM1176JZF-S CPU, and discusses the considerations for deploying an RTOS for professional or hobbyist real-time embedded control applications. It covers essential tools such as cross-compilers (YAGARTO, CrossWorks for ARM) and JTAG debugging via GPIO pins, as well as the limitations of the platform regarding documentation, hardware support, and industrial suitability. The page also introduces Pebble Bay's embedded software services and expertise.

Key Features

Explains the Raspberry Pi hardware (BCM2835 SoC, ARM1176JZF-S CPU, VideoCore GPU) for real-time embedded applications
Discusses required development tools including YAGARTO and CrossWorks for ARM cross-compilers
Covers JTAG debugging set up via GPIO pins without a dedicated header
Evaluates pros and cons of using Raspberry Pi as a professional embedded development platform
Provides context from Pebble Bay, an embedded software consultancy with experience in industrial and military sectors

Pros & Cons

Pros
  • Low-cost platform with active hobbyist and DIY community support
  • ARM1176 core is mature with freely available documentation from ARM
  • JTAG signals accessible via GPIO pins for debugging
  • Free and commercial cross-compiler options available (YAGARTO, CrossWorks for ARM)
Cons
  • Not designed for commercial/industrial applications; limited mechanical and EMC robustness
  • Only limited and error-prone documentation for Broadcom BCM2835 on-chip peripherals
  • No dedicated JTAG header; requires bootstrap code to reconfigure GPIO pins
  • Limited technical support for hardware and RTOS middleware compared to professional platforms

Best For

Learning real-time operating system concepts and ARM-based embedded developmentPrototyping real-time control systems on low-cost hardwareEvaluating the Raspberry Pi's suitability for professional embedded projectsExploring cross-compilation and board bring-up for ARM Cortex-A processors

FAQ

What cross-compilers are recommended for building RTOS software for the Raspberry Pi?
The article recommends YAGARTO (a free GNU ARM toolchain) and CrossWorks for ARM from Rowley Associates, which provides example board support files for the Raspberry Pi.
Does the Raspberry Pi have a JTAG header?
No, the Raspberry Pi does not have a dedicated JTAG header, but the JTAG signals are available as alternate functions on six GPIO pins on the 26-pin expansion header. A JTAG interface can be provided by reconfiguring these pins via bootstrap or initialization code.
Is the Raspberry Pi suitable for professional real-time embedded applications?
The website outlines several considerations: hardware availability, mechanical stability, EMC performance, and limited documentation. While possible, the platform was not designed with commercial or industrial applications in mind, though the Compute Module may change that.