OUR EXPERT
Tam Hanna
has seen a wide array of real-time operating systems. This gives him the necessary experience to analyse this new market entrant.
OUR EXPERT
Tam Hanna has seen a wide array of real-time operating systems. This gives him the necessary experience to analyse this new market entrant.
Real-time OSes are designed to run on embedded devices, so break out your spare Pi Picos!
As the demands placed on embedded systems A have become ever more complex, real-time operating systems have evolved into integral parts of embedded system design. Amazon’s decision to purchase Real Time Engineers (the company behind FreeRTOS) injected venture capital into what was previously a somewhat tranquil market dominated by professional nerds.
Real-time operating systems, however, share the name with the packages of software commonly considered an operating system. While Windows, Linux, and Mac OS are focused on providing a wide field of user-facing parts, a real-time operating system’s raison d’être is shuffling around computer resources and tasks, ideally by providing a guaranteed response latency to interrupts and other events. User-facing components are not a central part of the equation, with command-line interfaces and similar comfort features being considered a complete waste – a real-time operatingsystem-based application is a monolith, where the operating system and application code are compiled into one ROM image.
BreadboardOS aims to shake this up. While it is based on FreeRTOS, the development team has added command-line utilities intended to make developers’ lives easier. Given that the operating system works well on the Raspberry Pi Pico, let’s look at what the latest contender in the real-time operating system market has to offer.
Start wrapping
Given that BreadboardOS is a wrapper around FreeRTOS, parts of the installation and deployment process should not be completely new to developers experienced with the system.
The following steps occur on an Ubuntu 20.04 LTS-based workstation – compiling the operating system using WSL is also possible but not recommended due to problems when interacting with serial hardware. Be that as it may, you should first check for the presence of relevant packages:
$ sudo apt-get install build-essential gcc-arm-noneeabi newlib-arm-none-eabi cmake
$ sudo apt install cmake gcc-arm-none-eabi libnewlibarm-none-eabi libstdc++-arm-none-eabi-newlib
Installing the library newlib-arm-none-eabi sometimes fails. If
apt-get
complains about errors related to this library, it can be ignored without peril.
Base filesystem
Real-time operating-system-based applications are combined into a package with application source code. Starting the compile process commences by erecting the file structure and pulling the relevant components from their respective GitHub repositories:
$ mkdir bbosspace
$ cd bbosspace/