Simplifying Concepts.
Accelerating Innovation.

Jacob's Blog

Jacob Beningo
| |

CEC – Embedded Software using Rust

Rust is a memory-safe systems programming language that can be used in embedded systems like IoT devices. In this course, you will learn how to use Rust to develop microcontroller-based embedded systems. You’ll also learn about Rust’s syntax, data types, and control flow. By the end of the course, you will have the skills to develop reliable, efficient, and easy to maintain embedded software using Rust. Additionally, you will learn about best practices for security, testing, and debugging.

Hardware used for this course include the STM32F3 Discovery Board.

Registration and Playback are located here (May require login to access)

February 27 – Day 1 – Introduction to Rust for Embedded Systems

Selecting the right embedded software language is no longer as simple as just choosing C or C++. Rust, a memory-safe programming language offers an interesting use case to help businesses develop reusable, scalable, and higher quality software. In the session, we are going to explore Rust, its capabilities, and how it fits into embedded software development.

February 28 – Day 2 – “Hello Rust!”, using QEMU

Before writing an application for hardware, it’s helpful to learn a language and the process using emulation. In this session, we will explore how to create a project, leverage Rusts cargo tools, and write a Rust application for the Arm Cortex®-M processor. Attendees will walk away understanding how to run an emulated Rust application and debug it using GDB.  

March 1 – Day 3 – “Hello Rust!”, using the STM32F3

With the understanding learned from using QEMU, we are now ready to deploy an application to hardware. In this session, we will deploy our first application to the STM32F3 Discovery board and debug it. In addition, we will learn about memory mapping registers using the microarchitecture, peripheral access (PAC), and HAL crates. Attendees will walk away understanding the fundamentals of memory-mapping registers.

March 2 – Day 4 – Interfacing to Peripherals in Rust

A common activity in many embedded applications is to interface with the microcontroller’s peripherals. In this session, we will examine the differences between interfacing with an mcu’s registers in C and Rust. Attendees will learn about important Rust keywords, wrappers, exceptions, and more.

March 3 – Day 5 – Becoming a Rust Expert

Rust is a complex language, one that will take time and effort to master, especially for embedded systems. In this session, we will explore some concepts in portability and concurrency, before discussing resources to help attendees master Rust.

Course Resources

Jacob’s General Embedded Software Resources

  • Sign-Up for the Embedded Bytes Newsletter here
  • Developing Reusable Firmware – A Practical Guide to API’s, HAL’s and Drivers here
  • MicroPython Projects Book here
  • Jacob’s YouTube Channel – here

Additional Course Resources

* * *

Struggling to keep your development skills up to date or facing outdated processes that slow down your team, raise costs, and impact product quality?

Here are 4 ways I can help you:

  • Embedded Software Academy: Enhance your skills, streamline your processes, and elevate your architecture. Join my academy for on-demand, hands-on workshops and cutting-edge development resources designed to transform your career and keep you ahead of the curve.
  • Consulting Services: Get personalized, expert guidance to streamline your development processes, boost efficiency, and achieve your project goals faster. Partner with us to unlock your team's full potential and drive innovation, ensuring your projects success.
  • Team Training and Development: Empower your team with the latest best practices in embedded software. Our expert-led training sessions will equip your team with the skills and knowledge to excel, innovate, and drive your projects to success.
  • Customized Design Solutions: Get design and development assistance to enhance efficiency, ensure robust testing, and streamline your development pipeline, driving your projects success.

Take action today to upgrade your skills, optimize your team, and achieve success.

Similar Posts

2 Comments

  1. The link point to other course not RUST
    Registration and Playback are located here (May require login to access)

    1. Yikes! Thank you for letting me know. Nothing like a copy / paste error!

      The link has been updated.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.