Temario del curso
Empezando con Rust Incrustado
- Visión general de no_std, core y el ecosistema de Rust incrustado
- Elección de un objetivo y comprensión de los triples de destino
- Configuración de rustup, cargo y toolchains de destino
Herramientas, Flujo de Trabajo de Construcción y Depuración
- Uso de cargo, cargo-embed, probe-run y flujos de trabajo OpenOCD
- Flash y depuración con probes de hardware (ST-Link, JLink)
- Consideraciones de CI para construir firmware de Rust incrustado
Abstracción de Hardware y Acceso a Periféricos
- Comprensión de los traits de embedded-hal y patrones de drivers
- Crates de acceso a periféricos (PACs) y crates de dispositivo (svd2rust)
- Escritura y uso de drivers HAL y crates de soporte para placas (BSCs)
Seguridad en Memoria, Concurrencia & Tiempo Real
- Patrones seguros para estado compartido y referencias mutables en interrupciones
- RTIC y otros modelos de concurrencia para sistemas en tiempo real
- Uso del heap vs. stack, allocators y evitando la asignación dinámica
Manejo de Errores, Pruebas & Fiabilidad
- Patrones de manejo de errores en entornos restringidos
- Pruebas unitarias en el host vs. pruebas de integración en hardware
- Análisis de fallas, registro y estrategias post-mortem
Rendimiento, Potencia & Optimización de Recursos
- Benchmarking, medición y optimización de caminos críticos
- Técnicas de reducción del tamaño del código y scripts de enlazador
- Estrategias de gestión de energía y patrones de diseño de bajo consumo
Despliegue, Seguridad & Mejores Prácticas del Ecosistema
- Arranque seguro, firma de firmware y estrategias de actualización
- Consideraciones sobre la cadena de suministro y gestión de dependencias
- Hoja de ruta para migrar firmware en C a Rust y recursos de la comunidad
Resumen y Próximos Pasos
Requerimientos
- Una comprensión de los conceptos fundamentales de Rust: propiedad, préstamo, tiempos de vida
- Experiencia escribiendo programas no triviales en Rust (Rust intermedio)
- Familiaridad con conceptos embebidos: E/S mapeada a memoria, interrupciones, periféricos
Audiencia
- Ingenieros de firmware embebido que buscan adoptar Rust
- Ingenieros de software con experiencia en Rust que se trasladan a sistemas de bajo nivel
- Líderes técnicos evaluando Rust para el desarrollo de productos embebidos
Testimonios (5)
Él responde a mis preguntas muy bien explicadas.
Khaled Almarzooqi - Beamtrail
Curso - Circuits and Electronics Fundamentals
Traducción Automática
Sean fue un ponente dinámico y los ejercicios prácticos fueron muy interesantes, puedo ver cómo serán realmente aplicables.
Temira Koenig - Yeshiva University
Curso - Raspberry Pi for Beginners
Traducción Automática
Que el formador se adapte a nuestras necesidades
Eduardo Fontecha - ORMAZABAL PROTECTION & AUTOMATION S.L.U.
Curso - The Yocto Project - An Overview - hands-on
Traducción Automática
El entrenador fue muy amable y conocedor, haciendo un esfuerzo adicional para explicar cosas que no sabía
Felix - Microchip Technology Inc
Curso - Embedded C Application Design Principles for Automotive Professionals
Traducción Automática
La adquisición de conocimientos útiles y la clarificación de algunas cosas sobre las cuales no estaba seguro previamente.
Kenneth Mahoney - University of Glasgow
Curso - Arduino: Programming a Microcontroller for Beginners
Traducción Automática