2022/2/2
2022/10/19
製品
DT+Trace, DT10
カテゴリー
How-to
タグ
カバレッジ, テストポイント, ドライバファイル, 変数, 設定
2788 Views
JTAG等の無いターゲット機器で、変数値を変更しながらC0カバレッジテストを実施する。
汎用ポート接続に限り、DynamicTracer/DBOX+Traceを介して変数値を書きかえる事ができます。
これを利用し、カバレッジの未通過箇所に対して、実機上で動作させてカバレッジテストを実施できます。
これを利用し、カバレッジの未通過箇所に対して、実機上で動作させてカバレッジテストを実施できます。
変数値書き換え機能の仕様は次の通りです。
- 言語がC/C++のソースファイルのみ使用できます。
- 接続方式がGPIO/SPI接続のみ使用できます。
- イベントID出力方式が[イベントID 出力ポイント挿入]のみ使用できます。
- 1回のレポート取得中、1つの変数のみ書き換え可能です。
- 1回のレポート取得中、10回まで書き換えできます。
詳細な仕様については、各製品ヘルプの[変数値書き換え機能]をご覧ください。
変数値書き換え機能を使用する
-
ドライバ側で
#define DT_WRITE_VARIABLE
を有効にします。/*==============================================================================*/ /* Macro: DT_WRITE_VARIABLE */ /* Desc: Please set 1 if use Write Test Point */ /*==============================================================================*/ #define DT_WRITE_VARIABLE 1
-
_TP_BusPortInit関数等で、変数値書き換え機能で使用するポートを用意していただき、
以下のDOUTのようにポート入出力設定を入力に設定してください。
/*==============================================================================*/ /* Func: _TP_BusPortInit */ /* Desc: Please describe the code to initializes ports. */ /*==============================================================================*/ static void _TP_BusPortInit(void) { /* ex) PA.DIR = 0x3f; PD.DIR = 0x3f; PA.word = 0x3f; PD.word = 0x3f; */ SysCtlPeripheralEnable( SYSCTL_PERIPH_GPIOA ); SysCtlPeripheralEnable( SYSCTL_PERIPH_GPIOD ); GPIOPinTypeGPIOOutput( GPIO_PORTD_BASE, GPIO_PIN_2 ); /* CLK */ GPIOPinTypeGPIOOutput( GPIO_PORTD_BASE, GPIO_PIN_3 ); /* CS */ GPIOPinTypeGPIOInput( GPIO_PORTD_BASE, GPIO_PIN_6 ); /* DOUT */ GPIOPinTypeGPIOOutput( GPIO_PORTA_BASE, GPIO_PIN_2 ); /* DAT0 */ GPIOPinTypeGPIOOutput( GPIO_PORTA_BASE, GPIO_PIN_3 ); /* DAT1 */ GPIOPinTypeGPIOOutput( GPIO_PORTA_BASE, GPIO_PIN_4 ); /* DAT2 */ GPIOPinTypeGPIOOutput( GPIO_PORTA_BASE, GPIO_PIN_5 ); /* DAT3 */ GPIOPinWrite( GPIO_PORTD_BASE, GPIO_PIN_2, GPIO_PIN_2); GPIOPinWrite( GPIO_PORTD_BASE, GPIO_PIN_3, GPIO_PIN_3); GPIOPinWrite( GPIO_PORTA_BASE, GPIO_PIN_2, GPIO_PIN_2 ); GPIOPinWrite( GPIO_PORTA_BASE, GPIO_PIN_3, GPIO_PIN_3 ); GPIOPinWrite( GPIO_PORTA_BASE, GPIO_PIN_4, GPIO_PIN_4 ); GPIOPinWrite( GPIO_PORTA_BASE, GPIO_PIN_5, GPIO_PIN_5 ); }
-
portGetDOUT()関数の設定を行います。
DOUT端子がHiであれば1を、Loであれば0を返すようにしてください。
#if DT_WRITE_VARIABLE /*==============================================================================*/ /* Func: portGetDOUT */ /* Desc: Please describe the code to get the value from DOUT Port */ /*==============================================================================*/ DT_INLINE DT_UINT portGetDOUT(void) { /* ex) return PA.bit.b6; */ return GPIOPinRead( GPIO_PORTD_BASE, GPIO_PIN_6 ); } #endif
-
DTシリーズの[ソースコードビュー]上の変数値を変更したい箇所で右クリックから[変数値書き換えポイントの挿入]を選択します。
-
[変数値書き換えポイント設定]ダイアログから以下の設定を行ます。
- [変数名]、[参照]、[バイト数]に、書き換えたい変数の情報を入力します。
- [連続データ指定]/[個別指定]に、書き換えたい情報を入力します。
-
変数値書き換えポイントの次に変数値出力ポイントを挿入することで、データ取得の際に、値が書き換えられた変数を確認することができます。
-
メニューから[テスト実行]→[実行]を選択します。
-
[プログラムの実行]ダイアログから、変数値書き換えの[変更] ボタンを選択します。
-
[変数値書き換えポイントの選択]ダイアログから、[変数値を書き換える]を有効にし、一覧より書き換える変数を選択します。
-
テスト実行を行い、該当ポイントを通過した時に書き換えが行われている事を確認し、レポート解析を行ってカバレッジレポートをご確認ください。