Rebobinamento Automático para Testes Diários do NuttX

2025-02-08
Rebobinamento Automático para Testes Diários do NuttX

Para detectar e corrigir bugs no Apache NuttX RTOS precocemente, foi criado um sistema automatizado de teste de retrocesso. Este sistema compila e testa o NuttX diariamente; se um teste falhar, ele retorna aos commits anteriores, recompilando e retestando até que o culpado seja encontrado. Um alerta do Mastodon e uma notificação educada são então enviados ao desenvolvedor NuttX relevante. Snippets do GitLab e um banco de dados do Prometheus rastreiam e analisam os resultados, visualizados em um painel do NuttX mostrando o histórico de compilação.

Leia mais
Desenvolvimento

Biblioteca padrão Rust no Apache NuttX RTOS: pisca-pisca de LED e além

2025-01-27
Biblioteca padrão Rust no Apache NuttX RTOS: pisca-pisca de LED e além

Este artigo detalha a construção de aplicativos usando a biblioteca padrão Rust no sistema operacional em tempo real Apache NuttX. Ele abrange o tratamento de JSON com Serde, funções assíncronas com Tokio e controle de LED com o crate Nix. O autor explica a diferença entre descritores de arquivo próprios e brutos em Rust e compara os crates de vinculação POSIX Nix e Rustix. São fornecidas etapas detalhadas para construir e executar aplicativos Rust no NuttX, juntamente com dicas de solução de problemas.

Leia mais
Desenvolvimento

Corrigindo um Bug Subtil no Comando uname do Apache NuttX RTOS: Variáveis Estáticas Causam Problemas

2025-01-21
Corrigindo um Bug Subtil no Comando uname do Apache NuttX RTOS: Variáveis Estáticas Causam Problemas

Esta publicação detalha a jornada de depuração de um bug aparentemente menor no comando `uname` do Apache NuttX RTOS. O problema inicial: o hash do commit estava faltando na saída. A investigação levou a um caminho tortuoso, envolvendo a inspeção da imagem do kernel, a chamada de `uname` na inicialização do kernel e a desmontagem do aplicativo. O culpado? Uma variável estática corrompida (`g_version`) responsável por armazenar o hash do commit dentro dos aplicativos NuttX. Esse comportamento inesperado destacou a importância da depuração completa em sistemas embarcados, enfatizando que mesmo anomalias menores podem sinalizar problemas mais profundos e graves.

Leia mais
Desenvolvimento correção de bug