• No hay productos en el carrito.

Inicio / Cursos / Mastering Embedded Rust: Bare Metal, FFI, Crates, Projects
Impartido por FastBit Embedded Brain AcademyPago único de $2,800 MXN · acceso por 12 meses

Mastering Embedded Rust: Bare Metal, FFI, Crates, Projects

Master safe, modern embedded systems in Rust with bare-metal, FFI, drivers, crates & projects on STM32 microcontrollers

Certificado oficial emitido por la SEPA través del Gobierno del Estado de México
12 meses de acceso En línea · 60 h 16 unidades Nivel principiante
Qué aprenderás

Lo que serás capaz de hacer

==> Looking to add another embedded programming language to your arsenal? Give Rust a shot — you won’t be disappointed!! <== This course is your starting point for using Rust on ARM Cortex Mx based microcontrollers such as STM32, even if you are new to embedded systems. This is a fully hands on course that takes you from scratch into real world embedded Rust development on STM32. Each video builds on the previous, helping you progress step-by-step, from writing bare metal code to advanced topics like FFI, crates, driver development, and traits. Ideal for those new to Rust and embedded systems. Why Rust for embedded? Rust prevents many common memory issues (like null pointer dereferencing, buffer overflows, and use-after-free errors) through: Ownership model : Rust’s strict rules around ownership, borrowing, and lifetimes prevent most accidental memory misuse. Type safety : Rust’s type system ensures that you access data correctly and helps prevent certain types of invalid memory access by enforcing strict variable usage patterns. Thanks to Cargo, Rust’s official package manager, you can easily add features by simply including external libraries, or "crates," which are like plug-and-play components. What will you learn? Here’s what you will master in this course: A beginner-friendly introduction to Rust, tailored for embedded systems Complete toolchain setup for cross-compiling, flashing, and debugging Debugging and logging with defmt and probe-rs for real-time tracing High-level peripheral programming with STM32 HAL crate Step-by-step, build a real-world Flappy Bird game application using Rust Interface with real sensors (MPU6050) to control game mechanics Clean, modular coding practices and hardware abstraction Build hardware-agnostic drivers using the embedded-hal traits Writing and understanding your own linker scripts and startup code Building generic embedded code using Rust generics and traits Safe and seamless Rust + C integration through FFI Confidence to write robust, reusable, and production-grade embedded firmware in Rust Hardware Requirements Note: If you already have a microcontroller development board, we recommend continuing with it. This course is designed with such thoroughness that the concepts and steps can be applied to most development boards though some minor adjustments may be needed. But, if you prefer to use the exact same board as the instructor for a smoother experience, you can check out the recommended hardware 1) Microcontroller development board Option-1. STM32F303-Based Board The course primarily utilizes Fastbit STM32 Nano board which is based on the STM32F303 microcontroller and onboard MPU6050 sensor. Option 2. Any STM32 Microcontroller Board You can use any development board featuring an STM32 microcontroller. The course content is designed to be adaptable, allowing you to follow along with the specific STM32 board you have available. 2) SWD-Based Debugger An SWD (Serial Wire Debug) based debugger is required for programming and debugging your STM32 microcontroller. This tool is essential for loading your programs onto the microcontroller and for debugging your projects in real-time. 3) LCD shield In one of the projects, you will need a TFT LCD module for experimentation. This course uses the Fastbit 1.28" TFT LCD with an 8-bit parallel interface, based on the GC9A01 LCD driver. However, you are free to use the same or a similar compatible module 4) MPU6050 sensor Software requirements VS Code STM32CubeIDE

  • Rust programming language from scratch
  • Build your first bare-metal Rust application from scratch
  • Learn how to set up the Rust toolchain for building firmware that runs on ARM Cortex-M microcontrollers
  • Write your own linker script and startup file, and understand how memory layout and bootstrapping work in embedded Rust
  • Use cargo-binutils to inspect and analyze ELF files
  • Set up a modern and efficient workflow using VS Code to build, flash, and debug your Rust code with embedded targets

Temario

UNIDAD 1 - Introduction · 2 lecciones

UNIDAD 1 - Introduction

  • WelcomeVideo · 4 min
  • Course repositoryLectura · 0 min
UNIDAD 2 - Rust Toolchain Installation · 5 lecciones

UNIDAD 2 - Rust Toolchain Installation

  • Toolchain installation for HostVideo · 6 min
  • Toolchain components and target triple of Tier 1 targetsVideo · 3 min
  • Install VS Code IDEVideo · 1 min
  • Creating a Rust project using Cargo and Important VS code extensionsVideo · 9 min
  • Important tools: rustfmt, cargo fix , ClippyVideo · 14 min
UNIDAD 3 - Rust Fundamentals: Quick intro to core concepts · 35 lecciones

UNIDAD 3 - Rust Fundamentals: Quick intro to core concepts

  • How Rust ensures memory safety compared to C/C++ part 1Video · 16 min
  • Variables and numerical data typesVideo · 15 min
  • Byte literalVideo · 4 min
  • Char and unicode representationVideo · 6 min
  • StaticsVideo · 6 min
  • ConstantsVideo · 3 min
  • How Rust ensures memory safety compared to C/C++ part 2Video · 7 min
  • ArraysVideo · 11 min
  • ReferencesVideo · 10 min
  • Borrow(&T and &mut T)Video · 10 min
  • Can you help us?Lectura · 0 min
  • slice data typeVideo · 19 min
  • if..else as a statement and expressionVideo · 10 min
  • match statementVideo · 16 min
  • if..let statementVideo · 5 min
  • How Rust ensures memory safety compared to C/C++ part 3Video · 10 min
  • Comparison and logical operatorsVideo · 7 min
  • Bitwise operatorsVideo · 8 min
  • StringsVideo · 20 min
  • UTF8 encoded stringVideo · 5 min
  • String literal type(&str)Video · 9 min
  • Function declaration and parametersVideo · 14 min
  • StructuresVideo · 7 min
  • Printing the structureVideo · 5 min
  • Initializing struct with defaultsVideo · 5 min
  • Passing struct variables to functionsVideo · 2 min
  • Creating methods for a structVideo · 11 min
  • Associated functions(Constructor) of structVideo · 8 min
  • EnumsVideo · 18 min
  • Methods and associated functions of an enum typeVideo · 9 min
  • Option<T>Video · 13 min
  • Result<T, E>.Video · 2 min
  • Error handling using Result typeVideo · 7 min
  • Error propagation using ?Video · 5 min
  • Generics.Video · 15 min
UNIDAD 4 - Cross compilation · 6 lecciones

UNIDAD 4 - Cross compilation

  • About the hardwareVideo · 1 min
  • Intro to cross compilation for target architectureVideo · 7 min
  • Exercise 001: Generating ELF file for the very basic rust program part 1Video · 13 min
  • Generating ELF file for the very basic rust program part 2Video · 10 min
  • About Type 'never'(!)Video · 4 min
  • Inspecting ELF file using cargo-binutilsVideo · 4 min
UNIDAD 5 - Writing start-up code and linker script for bare metal Rust program · 13 lecciones

UNIDAD 5 - Writing start-up code and linker script for bare metal Rust program

  • Writing start-up code part-1Video · 5 min
  • About Linker, Linker flags and Linker scriptVideo · 6 min
  • Writing linker script from scratch part 1 [MEMORY]Video · 10 min
  • Different types of data in a programVideo · 6 min
  • Writing linker script from scratch part 2 [SECTIONS]Video · 7 min
  • Writing linker script from scratch part 3Video · 19 min
  • Writing start-up code part-2 [Vector table]Video · 15 min
  • Writing start-up code part-3 [extern "C"]Video · 11 min
  • Writing start-up code part-4 [Default_Handlers]Video · 9 min
  • Writing start-up code part-5 [Reset_Handler]Video · 6 min
  • Raw pointers in RustVideo · 14 min
  • Writing start-up code part-6 [Reset_Handler]Video · 7 min
  • Can you help us?Lectura · 0 min
UNIDAD 6 - Flash and Debug · 3 lecciones

UNIDAD 6 - Flash and Debug

  • Flashing code to target hardware-1 [Install STM32CubeCLT]Video · 2 min
  • Flashing code to target hardware-2 [VsCode and cortex-debug setup]Video · 13 min
  • Flashing code using probe.rs toolsVideo · 3 min
UNIDAD 7 - Exercise 002: Bare metal Rust application to handle LEDs using Interrupts · 18 lecciones

UNIDAD 7 - Exercise 002: Bare metal Rust application to handle LEDs using Interrupts

  • IntroductionVideo · 2 min
  • Exercise Implementation Part 1Video · 5 min
  • Exercise Implementation Part 2Video · 5 min
  • Exercise Implementation Part 3Video · 9 min
  • Exercise Implementation Part 4Video · 4 min
  • Exercise Implementation Part 5Video · 11 min
  • Exercise Implementation Part 6Video · 7 min
  • Exercise Implementation Part 7 and Testing LED moduleVideo · 2 min
  • Unsafe block vs Unsafe fnVideo · 6 min
  • Commenting and generating documentation part 1 [/// Outer documentation]Video · 11 min
  • Commenting and generating documentation part 2 [//! Inner documentation]Video · 2 min
  • Exercise Implementation Part 8; Writing button moduleVideo · 7 min
  • Exercise Implementation Part 9; Coding for button interruptVideo · 8 min
  • Exercise Implementation Part 10Video · 9 min
  • Exercise Implementation Part 11Video · 6 min
  • Exercise Implementation Part 12Video · 7 min
  • Exercise Implementation Part 13Video · 7 min
  • Exercise Implementation Part 14: Testing button interruptVideo · 2 min
UNIDAD 8 - Exercise 003: Using external crate cortex-m-rt and cortex-m · 9 lecciones

UNIDAD 8 - Exercise 003: Using external crate cortex-m-rt and cortex-m

  • What is a crate?Video · 6 min
  • Important crates for embedded systemsVideo · 10 min
  • Exercise introductionVideo · 2 min
  • Cortex-m-rt crate explanationVideo · 8 min
  • Crate version number syntaxVideo · 7 min
  • Panic handling cratesVideo · 6 min
  • Systick time base generation using cortex-m crateVideo · 20 min
  • Testing Systick time base generationVideo · 4 min
  • Can you help us?Lectura · 0 min
UNIDAD 9 - Exercise 004: ITM prints · 6 lecciones

UNIDAD 9 - Exercise 004: ITM prints

  • Exercise 004 introductionVideo · 1 min
  • Instrumentation Trace Macrocell(ITM)Video · 9 min
  • Exercise implementationVideo · 18 min
  • Refactoring and TestingVideo · 10 min
  • Critical sectionVideo · 10 min
  • Mutex and RefcellVideo · 14 min
UNIDAD 10 - Rust Foreign Function Interface(FFI) · 9 lecciones

UNIDAD 10 - Rust Foreign Function Interface(FFI)

  • Steps involved in dealing with Rust and Foreign language codeVideo · 12 min
  • Types mapping between Rust and CVideo · 3 min
  • Rust equivalent of C's void and void pointerVideo · 7 min
  • Rust equivalent of C's void and void pointer contd.Video · 5 min
  • Rust representation of C's StringVideo · 7 min
  • Rust accepting and processing Strings from 'C' (core::ffi::Cstr)Video · 8 min
  • Rust sending Strings to 'C' (std::ffi::CString)Video · 9 min
  • Struct memory layout: Rust Vs CVideo · 6 min
  • Passing struct from Rust to CVideo · 6 min
UNIDAD 11 - Exercise 005: Flappy Bird game implementation(Rust + C) · 37 lecciones

UNIDAD 11 - Exercise 005: Flappy Bird game implementation(Rust + C)

  • Introduction to Flappy bird applicationVideo · 7 min
  • Implementation : Peripheral config and code generation(8 bit parallel LCD)Video · 18 min
  • Implementation: Peripheral config and code generation(SPI based LCD)Video · 12 min
  • Copy driver files into the projectVideo · 1 min
  • Compiling 'C' source files from Rust project: How it works?Video · 7 min
  • Writing build.rs part 1Video · 4 min
  • Writing build.rs part 2Video · 10 min
  • Writing build.rs part 3Video · 13 min
  • Writing build.rs part 4Video · 6 min
  • Writing build.rs part 5Video · 5 min
  • Testing project for systick interrupt generationVideo · 4 min
  • Analysing the issue related to weak symbol linkageVideo · 4 min
  • Fixing issue related to weak symbol linkage and testing projectVideo · 8 min
  • Game feature : Start screen implementation part-1Video · 3 min
  • Game feature : Start screen implementation part-2Video · 10 min
  • Game feature : Start screen implementation part-3Video · 4 min
  • Game feature : Start screen implementation part-4Video · 10 min
  • Game feature : Start screen implementation part-5Video · 2 min
  • Game feature : Start screen implementation part-6Video · 10 min
  • Game feature : Start screen implementation part-7Video · 6 min
  • Game feature : Start screen implementation part-8Video · 6 min
  • Game feature : Start screen implementation part-9Video · 2 min
  • Game feature : Start screen implementation part-10Video · 3 min
  • Game feature : Start screen implementation part-11Video · 6 min
  • Game feature : Start screen implementation part-12Video · 3 min
  • Game feature : Start screen implementation part-13Video · 2 min
  • Game feature: Obstacle movement implementation part-1Video · 10 min
  • Game feature: Obstacle movement implementation part-2Video · 6 min
  • Game feature: Obstacle movement implementation part-3Video · 4 min
  • Game feature: Obstacle movement implementation part-4Video · 2 min
  • Game feature: Obstacle movement implementation part-5Video · 3 min
  • Game feature: Obstacle movement implementation part-6Video · 6 min
  • Game feature: Player movement implementation part-1Video · 10 min
  • Game feature: Player movement implementation part-2Video · 9 min
  • Game feature: Collision detection implementation part-1Video · 3 min
  • Game feature: Collision detection implementation part-2Video · 9 min
  • Game feature: Collision detection implementation part-3Video · 3 min
UNIDAD 12 - Creating hardware agnostic device driver using embedded-hal · 11 lecciones

UNIDAD 12 - Creating hardware agnostic device driver using embedded-hal

  • About hardware agnostic driver developmentVideo · 10 min
  • MPU6050 driver crate implementation part-1Video · 3 min
  • MPU6050 driver crate implementation part-2Video · 9 min
  • MPU6050 driver crate implementation part-3Video · 7 min
  • MPU6050 driver crate implementation part-4Video · 4 min
  • MPU6050 driver crate implementation part-5Video · 12 min
  • MPU6050 driver crate implementation part-6Video · 2 min
  • MPU6050 driver crate implementation part-7Video · 5 min
  • MPU6050 driver crate implementation part-8Video · 7 min
  • MPU6050 driver crate implementation part-9Video · 6 min
  • Adding [features] to driver crateVideo · 11 min
UNIDAD 13 - Working with Hal crate and PAC · 5 lecciones

UNIDAD 13 - Working with Hal crate and PAC

  • Exercise 005: Reading from sensor part 1Video · 14 min
  • PAC and HALVideo · 12 min
  • I2C initialization coding part 1Video · 17 min
  • I2C initialization coding part 2Video · 16 min
  • I2C initialization coding part 3Video · 11 min
UNIDAD 14 - Using Traits · 3 lecciones

UNIDAD 14 - Using Traits

  • Handling input device via Trait implementation part 1Video · 9 min
  • Handling input device via Trait implementation part 2Video · 8 min
  • Handling input device via Trait implementation part 3Video · 4 min
UNIDAD 15 - Logging · 2 lecciones

UNIDAD 15 - Logging

  • Logging data using RTT and probe.rsVideo · 13 min
  • Logging data using RTT testingVideo · 2 min
UNIDAD 16 - Exercise 005: Flappy Bird game implementation(Rust + C) contd. · 8 lecciones

UNIDAD 16 - Exercise 005: Flappy Bird game implementation(Rust + C) contd.

  • Game feature : Calculating roll angleVideo · 14 min
  • Game feature : Map roll angle to bird positionVideo · 4 min
  • Updating bird Y positionVideo · 6 min
  • Note about sensor noiseVideo · 3 min
  • Testing final applicationVideo · 2 min
  • TODOs for the studentsVideo · 1 min
  • Next videos coming soonLectura · 0 min
  • BONUS LECTURELectura · 0 min
Certificado oficial

Tu certificado lo emite la SEP, no solo una plataforma

Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.

Tu certificado con INEC

  • Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
  • Documento oficial con folio verificable en línea
  • Lo otorga la Universidad Tecnológica Fidel Velázquez

Otras plataformas en línea

  • Constancia privada emitida por la misma plataforma
  • Solo acredita horas cursadas o asistencia
  • Sin respaldo de una autoridad educativa
Cómo funciona

Tu itinerario, de la inscripción al certificado

  1. 1

    Inscripción con pago único

    Pagas $2,800 MXN una sola vez y entras de inmediato al curso.

  2. 2

    Estudias a tu ritmo

    16 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.

  3. 3

    Cuestionarios por unidad

    Cuestionarios para comprobar lo aprendido.

  4. 4

    Certificado

    Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.

Lo que obtienes

Un certificado oficial de la SEP

Muestra del certificado: Mastering Embedded Rust: Bare Metal, FFI, Crates, Projects

Muestra · verificable por folio y QR

  • Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
  • Contenido impartido por FastBit Embedded Brain Academy.
  • Folio y QR verificables para compartirlo con quien te contrate.
Medios que necesitas
Equipo de cómputo Conexión estable a internet
Pago único

Empieza hoy, a tu ritmo

Un solo pago y acceso inmediato al curso completo durante 12 meses.

  • 16 unidades · 172 lecciones · 60 h
  • 12 meses de acceso
  • Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Pago único
$2,800MXN
Acceso por 12 meses
Inscribirme Hablar con un asesor
Preguntas frecuentes

Sobre tu inscripción

¿Cómo es el pago?

Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.

¿Cuánto tiempo tengo acceso?

12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.

¿Quién imparte el contenido?

El curso es impartido por FastBit Embedded Brain Academy; INEC gestiona tu inscripción, evaluación y certificado.

¿Qué pasa cuando vence mi acceso?

Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.

Certificado emitido por la SEP a través del Gobierno del Estado de México · Mastering Embedded Rust: Bare Metal, FFI, Crates, Projects

Inscribirme
  INEC es una Marca de SalesPartners Ciudad de México S de RL de CV. Template Design © Learnify LMS. All rights reserved. Terminos y Condiciones Aviso de Privacidad Politica de Devolución
Hide picture