Rebobinado automático para pruebas diarias de NuttX

2025-02-08
Rebobinado automático para pruebas diarias de NuttX

Para detectar y corregir errores en Apache NuttX RTOS tempranamente, se creó un sistema automatizado de prueba de retroceso. Este sistema compila y prueba NuttX diariamente; si una prueba falla, retrocede a los commits anteriores, recompilando y volviendo a probar hasta que se encuentra el culpable. Se envía una alerta de Mastodon y una notificación cortés al desarrollador NuttX relevante. Los fragmentos de GitLab y una base de datos de Prometheus rastrean y analizan los resultados, visualizados en un panel de NuttX que muestra el historial de compilación.

Leer más
Desarrollo

Biblioteca estándar de Rust en Apache NuttX RTOS: parpadeo de LED y más

2025-01-27
Biblioteca estándar de Rust en Apache NuttX RTOS: parpadeo de LED y más

Este artículo detalla la construcción de aplicaciones usando la biblioteca estándar de Rust en el sistema operativo en tiempo real Apache NuttX. Cubre el manejo de JSON con Serde, funciones asíncronas con Tokio y el control de LED con el crate Nix. El autor explica la diferencia entre descriptores de archivo propios y sin procesar en Rust y compara los crates de enlace POSIX Nix y Rustix. Se proporcionan pasos detallados para construir y ejecutar aplicaciones de Rust en NuttX, junto con consejos para la solución de problemas.

Leer más
Desarrollo

Arreglando un fallo sutil en el comando uname de Apache NuttX RTOS: Las variables estáticas atacan

2025-01-21
Arreglando un fallo sutil en el comando uname de Apache NuttX RTOS: Las variables estáticas atacan

Esta publicación detalla el proceso de depuración de un fallo aparentemente menor en el comando `uname` del Apache NuttX RTOS. El problema inicial: faltaba el hash del commit en la salida. La investigación llevó por un camino sinuoso, que incluyó la inspección de la imagen del kernel, la llamada a `uname` en el inicio del kernel y el desensamblaje de la aplicación. El culpable: una variable estática dañada (`g_version`) responsable de almacenar el hash del commit dentro de las aplicaciones NuttX. Este comportamiento inesperado destacó la importancia de una depuración exhaustiva en sistemas embebidos, enfatizando que incluso anomalías menores pueden señalar problemas más profundos y graves.

Leer más
Desarrollo