The motivation for doing this is the fundamental principle that true understanding comes from building things from the ground up.
Here I plan on constructing a software stack for embedded and IoT applications entirely from scratch, using Rust programming language and Renode simulation.
The primary goal is to create a self-contained ecosystem, starting with a bare metal boot loader and extending to include components such as a memory manager, task scheduler, logger, and exception handler. By embarking on this journey, I aim to (re)gain a deep(er) understanding of the inner workings of ARM Cortex M7® based embedded systems while harnessing the power of Rust's safety and expressiveness.
To better understand and work with the STM32F746NG microcontroller, will need to refer to the following resources:
- STM32F746NG Development Board
- PM0253 STM32F7 Series and STM32H7 Series Cortex®-M7 processor programming manual
These documents provide in-depth information about the microcontroller's features, registers, and functionalities.
Getting started with this project is straightforward; you only need to install two essential components:
- Rust: You can install it by following the instructions on the official Rust website.
- Renode: Renode is an open-source hardware simulation framework that will help you test and debug your code in a controlled environment. You can find installation instructions for Renode on the Renode GitHub repository