HeliOS is a multitasking kernel for use in embedded applications. Using the Arduino framework via the Arduino IDE or PlatformIO, HeliOS supports AVR, SAM, SAM D, ESP8266 and Teensy (ARM) architectures directly out-of-the-box. Professional developers, wishing to use ARM CMSIS (define CMSIS_ARCH_CORTEXM in the build configuration) or manufacturer specific HALs (modify the port.c and port.h files), can integrate HeliOS into the development environment of their choice in minutes.
HeliOS has a rich, fully documented and stable API that allows the developer to control every aspect of the system through kernel services (system calls) which include task (process) management, scheduler management, inter-process communication, memory management and device management. HeliOS does all of this while maintaining a small foot print for low power devices.
Features
- Multi-Tasking (Event Driven & Co-Op)
- Direct to Task Notifications
- Message Queues
- Stream Buffers
- Task Watchdog Timers
- Application Timers
- Device Drivers
- Multiple Memory Regions
- Memory Management
To support users at every skill level, HeliOS may be obtained through a variety of means. For beginners, HeliOS may be added to his or her project directly from the Arduino IDE or PlatformIO. HeliOS includes several example Arduino sketches to get started developing with HeliOS quickly.
For more advanced or professional users, HeliOS can be downloaded directly from GitHub and dropped, along with the board support package, directly into the development environment of their choosing.
For ESP32 users, HeliOS cannot be built using the Arduino framework on ESP32 based boards. The reason for this is the ESP32 Arduino core includes FreeRTOS and two embedded operating systems cannot coexist in the same embedded application. If you are wanting to build HeliOS for the ESP32 line of MCU’s, you will need to use the ESP-IDF available directly from Espressif.