2022/3/4

2022/4/7

製品
DT+Trace
カテゴリー
How-to
タグ
ドライバファイル, レポート収集, 設定
5 Q&A 5 非同期バス接続のドライバカスタマイズ

非同期バス接続のドライバカスタマイズ

非同期バス接続において、通常のテストポイント情報を取得する為に、ドライバファイルをカスタマイズする方法を説明します。

出力ポートのレジスタ設定の調査

非同期バス接続は、NORフラシュとCPU間のバスを利用し、テストポイント通過時に外部出力された信号(通過情報)を取得します。
ハードウェアの取り付け方法については、アタッチメントマニュアルをご参照ください。
事前に接続先のフラッシュROMの先頭アドレスをご調査ください。
また、対象のフラッシュROMでキャッシュをご使用の場合は、
キャッシュ領域内のメモリ空間では正常なデータ取得が行えませんので、
非キャッシュ領域の先頭アドレスをご調査ください。

サンプルドライバのカスタマイズ

サンプルドライバはこちらからダウンロードしてください。

ダウンロードいただいたドライバファイルは、ターゲット環境に合わせて、下記の内容を変更します。
非同期バス接続を関数コールで使用する場合では、変更箇所が異なりますのでご注意ください。
非同期バス接続で、通常のテストポイント取得する場合は、ドライバの登録は不要です。
変数値出力機能やイベントトリガー機能を使用する場合は、
下記のカスタマイズをしたドライバファイルが必要となります。

ヘッダファイルのInclude

下記の変更内容のコントロール等に必要なヘッダファイルをIncludeします。

"Common.h"は、弊社のサンプル環境における制御ポートのdefineや制御APIなどが定義されているヘッダファイルです。削除するか、コメントアウトしてお使いください。

/*==================================================================*/
/* Desc: Header for FROM Control                                    */
/*==================================================================*/
#include  ”Common.h” 

enterCritical / exitCritical関数の変更

enterCritical / exitCritical関数はそれぞれ割り込み禁止、解除を行う関数です。未設定の場合、データ取得が正常に行えない場合がありますので、必ず設定します。

/*==================================================================*/
/* Func: enterCritical                             */
/* Desc: Please describe the code to enter Critical Section.     */
/*==================================================================*/
DT_INLINE void enterCritical(void)
{
   // ex) DI();
   //
   taskENTER_CRITICAL();
}

/*==================================================================*/
/* Func: exitCritical                                               */
/* Desc: Please describe the code to exit Critical Section.         */
/*==================================================================*/
DT_INLINE void exitCritical(void)
{
   // ex) EI();
   //
   taskEXIT_CRITICAL();
} 

非同期バス(関数コールの場合)

[関数コール]DT_USE_FUNCTIONを有効にする。

関数コールを利用する場合は、デフォルト値の"0"を"1"に変更します。

/*==================================================================*/
/* Macro: DT_USE_FUNCTION                                           */
/* Desc: Please set 1 when you use function call.                   */
/*==================================================================*/
#define  DT_USE_FUNCTION 

enterCritical / exitCritical関数の変更

enterCritical / exitCritical関数はそれぞれ割り込み禁止、解除を行う関数です。
未設定の場合、データ取得が正常に行えない場合がありますので、必ず設定します。

/*==================================================================*/
/* Func: enterCritical                             */
/* Desc: Please describe the code to enter Critical Section.     */
/*==================================================================*/
DT_INLINE void enterCritical(void)
{
   // ex) DI();
   //
   taskENTER_CRITICAL();
}

/*==================================================================*/
/* Func: exitCritical                                               */
/* Desc: Please describe the code to exit Critical Section.         */
/*==================================================================*/
DT_INLINE void exitCritical(void)
{
   // ex) EI();
   //
   taskEXIT_CRITICAL();
} 

各種defineの設定

ターゲット環境での符号無し32bitの型名指定

通常は変更不要です。符号無し32bitの型名を記載します。
もしこちらの項目を変更した場合は、DT+Traceアプリ側の設定も変更する必要があります。

/*=======================================================================*/
/* Macro: DT_UINT                                   */
/* Desc: Please change Test Point argument type for DT10 Project setting.*/
/*=======================================================================*/
#define DT_UINT unsigned int 

関数のInline化

ターゲット環境で関数のInline化が可能な場合は、ここで定義します。オーバーヘッドの削減の為、各関数をinline化します。不必要な場合はコメントアウトして、"#define DT_INLINE static"を有効にします。

/*==========================================================================*/
/* Macro: DT_INLINE                                                         */
/* Desc: Please use “static” instead of “inline” if “inline” cannot be used.*/
/*==========================================================================*/
#define DT_INLINE inline
/*#define DT_INLINE _inline  /* for Windows             */
/*#define DT_INLINE static  /* when “inline” cannot be used  */ 

ターゲットのコンパイル

お使いの開発環境に、カスタマイズしたドライバファイルを追加します。
コンパイルしていただき、問題なくターゲットが動作するかを確認します。

このページの情報はお役に立ちましたか?
  • はい (0)
  • いいえ (0)
  • 探している内容ではない (0)