チュートリアル
UART接続(トレーサー無し)において、通常のテストポイント情報を取得する為に、
ドライバファイルをカスタマイズする方法を説明します。
1.サンプルドライバのカスタマイズ
ダウンロードいただいたドライバファイルは、ターゲット環境に合わせて、下記の内容を変更します。
1-1._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 );
}
1-2. _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 );
}
2.各種Include,defineの設定
2-1.ターゲット環境での符号なし32bitの型名指定
通常は変更不要です。符号無し32bitの型名を記載します。
もしこちらの項目を変更した場合は、DT10アプリ側の設定も変更する必要があります。
/*==================================================================*/
/* Macro: DT_UINT */
/* Desc: Please change Test Point argument type for DT10 Project setting. */
/*==================================================================*/
#define DT_UINT unsigned int
2-2.関数の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 */
3.ターゲットのコンパイル
お使いの開発環境に、カスタマイズしたドライバファイルを追加します。
コンパイルしていただき、問題なくターゲットが動作するかを確認します。