ホーム > ユーザーサポート > FAQ カバレッジマスターwinAMS

FAQ / カバレッジマスターwinAMS

カバレッジ計測に関する問題

013_05 :カバレッジ計測に 「埋め込みコード」を適用したいのですが、オブジェクトサイズが大きくなりマイコンのROM容量を超えてしまいます。どのようにすれば良いですか?

【質問】
MC/DC、C0、C1のカバレッジ計測に、オブジェクト構造の影響を受けない「埋め込みコード」の機能を使用したいのですが、埋め込みを行ったコードをコンパイルしたところ、オブジェクトサイズが大きくなりマイコンのROM容量を超えてしまいます。どのようにすれば良いですか?

【回答】
回避方法には以下の通りです。

 

1)埋め込みコードの適用範囲を制限する

埋め込みを行うコードは、ソースファイル単位に選択できます。テスト対象の関数が含まれるソースファイルのみに埋め込みを行う事で、オブジェクトコードサイズの増加を回避することができます。

CasePlayer2 → [プロジェクトメニュー] → [埋め込みコードビルド環境生成]にて、「埋め込みコードの設定」タブで、テスト対象の関数があるソースのみを選択してください。(下図参照)

 

2)圧縮埋め込みの機能を使用する

カバレッジマスターには、埋め込みコードのサイズを小さくする「圧縮埋め込みコード(フックコード)を使用する」という機能があります。マイコンやコンパイラにより縮小できるサイズは異なりますが、このオプションをONにすることで、埋め込みコードの冗長性を抑えて、生成オブジェクトコードを小さくします。

 

3)使用しているマイコンと同じシリーズの別型番で、ROM容量の大きい型番でコンパイルする

同じシリーズのマイコンで、実際のマイコンよりもROM容量の大きなマイコンが有る場合であれば、埋め込みコードのコンパイル環境のみ、ROM容量の大きな型番を指定して、埋め込みコードのオブジェクトを生成する回避方法があります。

埋め込みコードからの計測の仕組みは、マイコンのオブジェクト構造には依存せず、埋め込んだフック関数の機能により計測されます。このため、実際のマイコンと異なる型番で実行した場合でも、そのコードが実行可能であれば、MC/DCテスト結果には影響を与えません。

実コード(製品実装と同じ)のコンパイル環境はそのままにして、埋め込みコードのコンパイル環境のみに上記のROM容量の大きい型番を選択してオブジェクトを生成してください。関数実行後の出力変数の値の評価は、埋め込みコード側ではなく、並行して動作する実コードの方から取得されますので、カバレッジ計測以外の単体テスト結果には影響はありません。

 

4)上記の回避方法を使用してもROM容量を超えてしまう場合は、オブジェクトを調整する

1つのソースファイルを埋め込み対象にしただけでも、オブジェクトコードのROM容量をオーバーしてしまう場合は、テストに関係しないオブジェクトをリンクから外すなどの方法で、テスト実行に影響しない範囲でオブジェクトを小さくするしか、回避方法はございません。

(参考)入門セミナー資料からの抜粋: (参考)埋め込みコードによるコードサイズ増加(PDFファイル)

 

関連サポート情報検索

【サポート情報サイト内Google検索】

検索キーワード: 埋め込みコード | カバレッジ計測

他のキーワード検索

 

 

参考情報・リンク