Linux での単体テスト用にメモリ I/O デバイスをエミュレートするにはどうすればよいですか?
組み込み展開用のソースコードの単体テストを書いています。
コードは、チップと通信するために特定のアドレス空間にアクセスしています。
- このコードを Linux で単体テスト (UT) したいと考えています。
- 単体テストは、人間の介入なしで実行できる必要があります。
- UT を通常のユーザーとして実行する必要があります。
- テストするコードは、ターゲット システムで実行されているソース コードとまったく同じでなければなりません。
これを解決する方法についてインスピレーションを得るためにどこに行くことができるかについてのアイデアはありますか?
通常のユーザーは、特定のメモリ割り当てを特定のアドレスで行う必要があることを MMU に伝えることができますか。それとも、データ ブロックが特定のメモリ領域にある必要がありますか?
私が理解しているように:
sigsegv は使用できません。ハンドラーから戻った後、同じメモリアクセスコードが再度呼び出され、再び失敗するためです。(または偶然、メモリ領域に実際に有効なデータが含まれている可能性がありますが、私が望むものではありません)
ありがとう
ヘンリー