nano RTOS

realtime operating system for time-critical applications

Highlights

☂︎ BLE UART support with Nordic Semiconductor hardware
☂︎ Low latency event handling
☂︎ Tickless kernel: wake from sleep with micro-second accuracy
☂︎ Static tasks with infinite synchronisation objects
☂︎ Use with Arduino projects to provide multitasking
☂︎ UART low latency API that never drops data
☂︎ printf based log system available pre-boot
☂︎ Posix compliant read, write, printf
☂︎ ARM support for Cortex-M microcontrollers
☂︎ Easy to configure and expand

Notes

Tasks waiting for an event are activated as soon as the condition to continue is met.
The UART API is hybrid blocking, meaning that data is queued to send and the call
returns immediately so long as buffer space is available, but will block when the
buffer is full. Receive calls return as soon as any data is available.
All communication is handled in the background, allowing one task to read, process,
and write without dropping any data.

Architectures

☂︎ Cortex-M3
☂︎ Cortex-M4
☂︎ Cortex-M33

Supported Boards

Nordic Semiconductor

☂︎ supported hardware
☂︎ nRF52840dk nRF52840
☂︎ nRF9160dk nRF52840, nRF9160
☂︎ Thingy91 nRF52840, nRF9160

ST Microelectronics

☂︎ Blue Pill STM32F103x

I2C Sensors

☂︎ ADP5360 battery management PMIC
☂︎ BH1749 ambient light sensor
☂︎ BME680 temperature, pressure, humidity
☂︎ HMC5883 compass
☂︎ MPU6050 accelerometer and gyroscope

SPI Sensors

☂︎ ADXL362 accelerometer
☂︎ ADXL372 accelerometer, 200g

Download nanoRTOS examples

Prerequisites UNIX: use a package manager

☂︎ macOS: install brew
☂︎ macOS: brew install make
☂︎ macOS: brew install cask gcc-arm-embedded
☂︎ Linux: apt install make gcc-arm-none-eabi
☂︎ FreeBSD: pkg install gmake arm-none-eabi-gcc

Prerequisites Windows

☂︎ Download and extract the Arm GNU Toolchain to tools/compilers
☂︎ Or specify the path as an environment variable NANO_GCC
☂︎ Tools required make rm saferun, optional clear colour gfc
☂︎ Install in tools or add to path
☂︎ Chocolatey: choco install make coreutils
☂︎ Or download and extract make.exe to the root directory of nano
☂︎ rm is available in git for Windows, during install select:
☂︎ Git and optional Unix tools from the Command Prompt
☂︎ or add %ProgramFiles%\Git\usr\bin to path

Prerequisites Arduino

© 2022-2024 Georgi Valkov

https://httpstorm.com/
https://nanortos.com/
gvalkov@gmail.com