Nitinchandra Hegade
Safe Rust Multi-core Development on PSoC Microcontrollers
Status: Available NowEmbedded systems are being deployed in a variety of safety-critical applications. In such systems, failures can have severe consequences. Thus, the safety requirements and reliability expectations from real-time systems have increased drastically over time. Hence Rust programming language is well suited for embedded software development due to its focus on safety, performance, and concurrency. It is designed to prevent common programming errors such as null pointer dereferences, buffer overflows, and data races, which can lead to system crashes and security vulnerabilities. Additionally, Rust's strict ownership model and lifetime tracking help to ensure that resources are used safely and efficiently.
Furthermore, Rust's strong support for concurrency and its lightweight threading model help to make it well-suited for developing systems that need to handle multiple tasks simultaneously. It also has a growing ecosystem of libraries and frameworks specifically designed for embedded development, such as the embedded-hal, and RTIC framework. The RTIC is an open-source, community-driven project designed specifically for real-time systems. It leverages hardware acceleration through the NVIC in Cortex-M microcontrollers to perform scheduling, rather than relying on traditional software-based kernels. The framework also includes a set of APIs for managing tasks and synchronization primitives, making it easy to implement complex, real-time systems. Additionally, RTIC provides fine-grained control over available resources for each task, ensuring stability and responsiveness even under heavy loads.
The RTIC framework does not currently support multi-core architecture. However, this presentation will demonstrate how RTIC can be extended using the Multi-core abstraction trait to support secure multicore applications on PSoC Microcontrollers.