汎用ポート接続(GPIO4Bit/GPIO2Bit/SPI/I2C)の導入手順
CONTENTS
2. カスタマイズする箇所
ヘッダファイルのインクルード
上述のように、ポートの操作に必要な処理などが定義されているヘッダファイルをインクルードします。
サンプルにある”Common.h”は例です。削除して適切なファイルをインクルードしてください。
関数のインライン設定
ドライバ内の各関数は高速化のためインライン化されています。環境によっては”inline”を使用することでビルドエラーとなりますので、そのような環境では”static”を使用します。
いずれかをコメントアウトしてください。”inline”が使用できる環境であれば上記のようにします。
使用するポートの初期化
“_TP_BusPortInit”関数で行います。サンプルドライバでは例が書かれています。削除して、ターゲット機器で使用するポートに合わせて初期化してください。また、初期化後にCLKおよびCSのポート(プローブのNo.2とNo.3が接続されているポート)はHi出力してください。
この関数は、ターゲットが初めてテストポイントを通過したときのみ実行されます。すでにターゲット機器のコード上でDT+Traceが使用するポートも初期化している場合は、空にしてかまいません。
CLKポートの制御(GPIO4Bit/GPIO2Bit接続)
“portReverseCLK”関数で行います。プローブのNo.2で接続されているポートのHi/Loを読み込み反転させます。
サンプルドライバには例が書かれています。削除して、ターゲットに合わせてカスタマイズしてください。
CLKポートの制御(SPI/I2C接続)
“portSetCLK”関数で行います。この関数の引数”dat”の値は0か1になっていますので、1のときはポートがHi、0のときはポートがLoになるように、プローブのNo.2で接続されているポートを制御します。
サンプルドライバには例が書かれています。削除して、ターゲットに合わせてカスタマイズしてください。
CSポートの制御(GPIO4Bit/GPIO2Bit/SPI接続)
“portSetCS”関数で行います。この関数の引数”dat”の値は0か1になっていますので、1のときはポートがHi、0のときはポートがLoになるように、プローブのNo.3で接続されているポートを制御します。
サンプルドライバには例が書かれています。削除して、ターゲットに合わせてカスタマイズしてください。
DATAポートの制御
“portSetDATA”関数で行います。この関数の引数”dat”の値はそれぞれの接続方式で以下のようになっています。
サンプルドライバには例が書かれています。削除して、ターゲットに合わせてカスタマイズしてください。以下はGPIO2Bitでのカスタマイズ例です。
割り込み禁止の設定
割り込み処理にもテストポイントが挿入されている場合は、正常なデータ出力のための割り込み禁止処理を明記します。”enterCritical”関数(割り込み禁止の有効化)および”exitCritical”(割り込み禁止の無効化)をカスタマイズしてください。
そうでない場合は空関数にして差し支えありません。
カスタマイズが完了したら・・・
ドライバファイルをターゲットの開発環境に追加し、ビルドします。エラーなどが発生せずビルドできればここまでの準備は完了です。
レベルシフタの切り替え(対象デバイスが1.8V系出力の場合)
1.8V系出力の対象デバイスに接続するときは、DT+Traceアプリケーションのレベルシフタの設定を切り替えてご使用ください。
信号検出のスレッシュレベルが、Hi=2.36V → Hi=1.17V に切り替わります。
レベルシフトが有効になるのは、CLK, CS, DAT0~DAT3 端子のみになります。
ここまでで、レポート取得に必要なすべての準備が完了しました。ターゲット機器の実行し、DT+Traceでテストレポートを取得します。