Nim interface and library for Zephyr RTOS. Run Nim on any microcontroller Zephyr supports!
WIP! The API and package layout are still prone to large changes. That being said, it's possible to run Nim code on Zephyr and once it compiles it's appears very stable.
devel
branch is currently required: choosenim devel --latest
pip3 install west
west init -m https://github.com/EmbeddedNim/zephyr.git --mr nephyr-v2.7-branch-patched --narrow $HOME/zephyrproject/
nephyrcli
but it's not ready for public use yetnimble develop
as the library will be changing frequently:
git clone https://github.com/EmbeddedNim/nephyr.git
cd nephyr/
nimble develop
The library layout is broken into two main portions:
src/nephyr/
src/zephyr/
See Nephyr Examples repo for examples.
Zephyr is taking a great approach to modernize RTOS & embedded development. It has support from multiple MCU vendors (NXP, Nordic, TI, etc). In some areas it's still less mature than other RTOS options, however it's rapidly improving and already boasts support for most modern MCU's. It also includes a bootloader, device drivers, and first class CI and testing. The primary downside is the lack of documentation especially when combined with the complicated nature of a very configurable RTOS.
Nephyr's goal is to provide a stable high-level wrapper around Zephyr. However, the hardware APIs are being designed with being compatible with other RTOS'es. Eventually Nim could replace parts of Zephyr C stack with pure Nim solutions.