NuttXデイリーテストの自動巻き戻し

2025-02-08
NuttXデイリーテストの自動巻き戻し

Apache NuttX RTOSのバグを早期に発見し修正するために、自動巻き戻しテストシステムが作成されました。このシステムは、NuttXを毎日ビルドおよびテストします。テストに失敗した場合、以前のコミットに戻り、原因が特定されるまで一つずつ再ビルドと再テストを行います。その後、Mastodonアラートと丁寧な通知が関連するNuttX開発者に送信されます。GitLabスニペットとPrometheusデータベースは結果をトラッキングおよび分析し、NuttXダッシュボードでビルド履歴として視覚化されます。

続きを読む
開発

Apache NuttX RTOS 上のRust標準ライブラリ:LED点滅など

2025-01-27
Apache NuttX RTOS 上のRust標準ライブラリ:LED点滅など

この記事では、Apache NuttXリアルタイムオペレーティングシステム上でRust標準ライブラリを使用してアプリケーションを構築する方法について詳しく説明します。SerdeによるJSON処理、Tokioによる非同期関数、NixクレートによるLED制御について解説します。また、Rustにおける所有されたファイルディスクリプタと生のファイルディスクリプタの違い、そしてNixとRustixという2つのPOSIXバインディングクレートを比較します。NuttX上でRustアプリケーションをビルドおよび実行するための詳細な手順とトラブルシューティングのヒントを提供します。

続きを読む
開発

Apache NuttX RTOSにおけるunameのバグ修正:静的変数の罠

2025-01-21
Apache NuttX RTOSにおけるunameのバグ修正:静的変数の罠

この記事では、Apache NuttX RTOSのunameコマンドにおける、一見小さなバグのデバッグの過程を詳述しています。最初の問題は、出力からコミットハッシュが欠落していたことでした。調査は、カーネルイメージの検査、カーネル起動時のunameの呼び出し、アプリケーションの逆アセンブルなど、複雑な過程をたどりました。犯人は?コミットハッシュをNuttXアプリケーション内に格納する責任のある、壊れた静的変数(g_version)でした。この予期せぬ動作は、組み込みシステムにおける徹底的なデバッグの重要性を強調しており、小さな異常でも、より深刻な問題を示唆している可能性があることを示しています。

続きを読む
開発