2022/3/4

2022/4/7

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

UART接続のドライバカスタマイズ

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

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

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

ダウンロードいただいたドライバファイルは、ターゲット環境に合わせて、下記の内容を変更します。

_TP_BusUartInit関数を記述する

_TP_BusUartInit関数は、初めてTPの出力が行われる際に使用するポートレジスタの設定・初期化を行う関数です。出力先のCOMポートの指定、及びボーレート、データビットサイズなどの通信設定を行います。

/*==================================================================*/
/* Func: _TP_BusUartInit                                            */
/* Desc: Please describe the code to initialize Uart ports.         */
/*==================================================================*/
static    HANDLE hCom = 0;
static   DCB dcb;
static void _TP_BusUartInit(void)
{
hCom = CreateFileA(
      ”COM1″, GENERIC_READ | GENERIC_WRITE, 0,
    NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
   GetCommState( hCom, &dcb );
   dcb.BaudRate = 115200;
dcb.ByteSize = 8;
   dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
   SetCommState( hCom, &dcb );
} 

_TP_BusOutDrv関数を記述する

_TP_BusOutDrv関数は、テストポイントの通過情報出力を制御する関数です。

※ターゲット環境のOSがWindows、Linuxの場合は、こちらの変更は不要です。

Uart_Send(hCom, buff, count, &n, NULL);をお客様のターゲット環境のUART送信用のAPIにご変更ください。

//——————————————————————————————————-
// Func: _TP_BusOutDrv
// Desc: Test Point Output Function
//——————————————————————————————————-
static int init = 0;
DT_INLINE void _TP_BusOutDrv( unsigned char *buff, DT_UINT count )
{
   int n;
   if( init == 0 ){
      _TP_BusUartInit();
      init = 1;
   }
   Uart_Send( hCom, buff, count, &n, NULL );
} 

各種Include、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)