Apache NuttX RTOS每日自动回退测试

2025-02-08
Apache NuttX RTOS每日自动回退测试

为了尽早发现并修复Apache NuttX RTOS在QEMU RISC-V模拟器上的错误,作者开发了一套自动回退测试系统。该系统每日自动构建和测试NuttX,如果测试失败,则会回退到之前的提交,逐个重新构建和测试,直到找到导致失败的提交。随后,系统会发出Mastodon通知,并生成一份礼貌的说明邮件给相关的NuttX开发者,方便其进行修复。整个过程利用了GitLab Snippets和Prometheus数据库来记录和分析测试结果,最终在NuttX Dashboard上展示构建历史。

阅读更多
开发

在 Apache NuttX RTOS 上运行 Rust 标准库:点亮 LED

2025-01-27
在 Apache NuttX RTOS 上运行 Rust 标准库:点亮 LED

本文介绍了如何在 Apache NuttX 实时操作系统上使用 Rust 标准库构建应用程序。文章涵盖了使用 Serde 处理 JSON,使用 Tokio 实现异步函数,以及使用 Nix 库控制 LED 等内容。作者还详细解释了 Rust 中的 Owned File Descriptors 和 Raw File Descriptors 的区别,并比较了 Nix 和 Rustix 这两个 POSIX 绑定库。最后,文章还提供了在 NuttX 上构建和运行 Rust 应用程序的详细步骤以及一些疑难解答。

阅读更多
开发

Apache NuttX RTOS 的 uname bug 修复:静态变量的陷阱

2025-01-21
Apache NuttX RTOS 的 uname bug 修复:静态变量的陷阱

本文讲述了作者在 Apache NuttX RTOS 中修复 uname 命令 bug 的过程。最初,uname 命令输出缺少提交哈希值。调查发现,问题源于存储提交哈希值的静态变量 `g_version` 在 NuttX 应用中无法正常工作。通过一系列调试步骤,包括检查内核映像、在内核启动时调用 uname、分析应用反汇编代码等,作者最终确定了问题根源:NuttX 应用中的静态变量出现异常,导致提交哈希值丢失。这个案例强调了即使是细微的异常也可能预示着更严重问题的存在,并突出了调试嵌入式系统时细致入微的重要性。

阅读更多
开发