rnk is a RTOS targeting ARM architecture.
- Targeting Cortex-M
- Premptive scheduling
- Support static and dynamic application (using custom file format - RFLAT)
- Support isolation using MPU and privileged/unprivileged modes
- Device tree support
- POSIX API
- SEGGER SystemView support
- STM32F4 family (actually developed and tested on a STM32F401)
- STM32L4 family (actually developed and tested on a STM32L44X)
- arm-none-eabi toolchain (https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads)
- kconfiglib (https://github.com/ulfalizer/Kconfiglib)
- export ARCH=arm
- export your cross compiler bin/ folder in PATH
- export CROSS_COMPILE=arm-none-eabi- or
- edit the cross compiler path in "setup.sh" and use it like: $. setup.sh
then
- make the boards config you wanted (take a look at: arch/arm/configs), for example: make stm32f429_disco_defconfig
- and then: make clean && make
- flash the kernel on the board & enjoy
Build configurations are powered by Kconfig, and can be used by typing: make menuconfig (or nconfig)
Please check the wiki entries: https://github.com/raphui/rnk/wiki/Overview