まず背景、私の質問の詳細は次のとおりです。
私が取り組んでいるプラットフォームで働いている会社では、現在、開発環境として MPLAB IDE を使用している Microchip PIC32 ファミリを使用しています。以前は、この同じアプリケーション用に、Microchip dsPIC および TI MSP ファミリ用のファームウェアも作成しました。ファームウェアは、コードがデバイス制御、データ サンプリング、およびユーザー通信 (通常はユーザー PC) の 3 つの主要モジュールに分割されているという点で非常に単純です。デバイス制御は、GPIO バス ラインと、SPI または I2C 制御を必要とする少なくとも 1 つのパーツの組み合わせによって実現されます。データ サンプリングは、タイマ モジュールを使用してサンプリング周波数を維持し、さらに SPI/I2C および GPIO バス ラインを使用してサンプリング ハードウェア (つまり、ADC) を制御する割り込み駆動です。ユーザー通信は現在、Microchip App Framework を使用して USB 経由で実装されています。
ここで質問があります。上記で説明したことを考えると、どの時点で自分のプロジェクトに RTOS を採用することを検討しますか? 現在、RTOS を使用する理由として、これらの可能性のあるトリガー ポイントを考えています。
- コードの複雑さ? コードベースのアーキテクチャ/組織はまだ小さいので、すべての詳細を頭の中に入れておくことができます。
- マルチタスク/スレッディング? 割り込みによるモジュール実行のタイムスライスは、現時点ではマルチタスクで十分です。
- テスト? 現在、正式なテストや HW スモーク テスト以降の検証はあまり行っていません (これは近い将来に修正したいと考えています)。
- コミュニケーション? 現在、カスタム パケット形式とプロトコルを使用しており、データはバイナリ BLOB であり、START、STOP、SEND DATA コマンドのみを実行します。
- プロジェクト範囲? 近い将来、システムを大量生産することを目標に、デバイスをより大きなシステムに統合するプロジェクトを取得する可能性があります. 現在、私たちのすべてのプロジェクトは、一度に 1 つか 2 つのユニットを生産する、約 1 か月の短いターンアラウンドの実験的プロトタイプです。
他にどのような点を考慮する必要があると思いますか? あなたの経験では、ベース ランタイムでコードを実行するだけでなく、RTOS の使用を検討するよう説得した (または強制した) 理由は何ですか? RTOS の設計/プログラミングに関する追加リソースへのポインタも大歓迎です。