私は現在、マイクロコントローラ (TI MSP430) 用に C でステート マシンを作成中です。現在、コードの記述と設計の実装に問題はありませんが、実際のハードウェアを使用せずにステート マシン ロジックを証明する方法を考えています (もちろん、まだ使用できません)。
デバッグ機能を使用して、割り込みをシミュレートできます (これはまだ試していませんが、大丈夫だと仮定しているだけです。結局のところ文書化されています)。また、TEST データを保持するための特定のメモリ領域を定義して予約しました。 、デバッグ マクロを使用して、Python スクリプトでアプリケーションの外部で実行時にアクセスできます。つまり、いくつかのテスト基盤が整っています。ただし、私の質問の焦点は次のとおりです。
「たとえば、入力ピンが高または低の場合など、ハードウェア入力を必要とする決定に対して、特定のステート マシン フローを強制するにはどうすればよいですか」。たとえば、「ピンが高い場合はこのパスをたどり、そうでない場合はこのパスをたどる」などです。
繰り返しになりますが、デバッグ マクロを使用すると、アプリケーションの外部のレジスタに書き込むことができます (たとえば、LED を点灯させるため)。上記の方法でのフローは、負担が大きいことを証明しています。
フローをテストしたい場合は、最終的に使用される入力ピンの代わりに出力ピンを使用してこの値をチェックできる #ifdefs を使用することを考えていました。しかし、これは間違いなく私のコードベースにテストのみのコードを追加することになり、これは間違ったアプローチのように感じます。このレベルのテストを達成するための良い方法について誰かアドバイスはありますか? おそらくシミュレーターを使用するだけでよいことは承知していますが、可能な限り実際のハードウェアを使用したいと考えています (この段階では評価ボードですが)。