Home-Made RTOS on Renode Simulation
MOS is a self-made RTOS written in C++, which was running on a STM32F4 series board.
(1)Original repository with FatFS and GuiLite: https://github.com/Eplankton/mos-stm32
(2)Renode version (pretty trivial, only for Cortex-M): https://github.com/Eplankton/mos-renode
I have been working on this project for over a year, and now it can run smoothly on Renode simulation platform under Linux environment just like what I've done on a real dev-kit board, also debug and tracing works just fine.
For anyone who wonders what Renode is, to be simplified, it's an alternative to Qemu simulator, for better infrastrutures in embedded MCU/Soc, Cortex/RISC-V etc.For more information, check this link if you'd like: https://renode.io/
Looks really nice. Is there any document or guide comparing it to the common RTOS (FreeRTOS, Zephyr etc)?
Also which boards are supported?
The original document is written in Chinese so far, and I'll release an English version with further development. But the major recognizable difference is the RAII-wrapper for many synchronous primitives like mutex/semaphore/message queue/spin-lock, also I've been trying to add async programming mechanism that is similar to those in Rust by taking advantage of C++20 coroutines, including an trivial implementation of future<T> that needs no dynamic allocation(which is crucial in embedded system context).
By now, only Cortex-M serires are tested, but the transportation to RISC-V(ESP32C-x series for a start) platform has been added to future todo-list, since I've split the layer between hardware abstraction and software kernel into `vendor-hal` and `kernel`, along with the user application layer `user`.