When I first started looking for different RTOS, I was overwhelmed by their shier number. Structuring and grouping them helped me to get a picture of the features most of them offer. The concept of the Bern RTOS now already includes these features even though it will take ages before I can even consider to, for example, support a file system. The concept has to be taken with a grain of salt in general, it is the best case scenario with many uncertainties. I will refine the architecture as soon as I have more experience with Rust on embedded devices.
The tooling of Zephyr is beyond everything I have ever seen for a microcontroller. In embedded projects I always try to isolate hardware dependencies and board configurations, Zephyr solved this elegantly with the Devicetree. The μC/OS-III book is the best documentation of an RTOS kernel I have seen so far, and I will consult the book once more during the implementation. The Zephyr documentation is good place to cross-reference, as the project uses modern strategies.
I have also enjoyed writing my first embedded Rust application. It took some time until compiler stopped rejecting my code. But at least the error messages were helpful. I believe that Rusts concepts do fit the needs and concerns of embedded systems well. The limiting factor currently is the hardware support, which is maintained by the community instead of the microcontroller vendor.
If I were to redo this project, I would probably squeeze in the scheduler implementation I originally planned for. Mainly to test my understanding of Rusts ownership more. I would also start to write the documentation earlier.
Currently, I am looking forward to a challenging second project, where I will get a chance to dig deep into the ARM architecture, work on my concept again and struggle with Rust a little more.