2022/3/4

2022/4/7

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

CAN接続

CAN接続において、テストポイントの情報を取得するためのドライバのカスタム方法について説明します。

拡張機能について

CAN接続については、拡張機能をOFFで使用するモードとONで使用するモードの2種類のモードがあります。
「拡張機能」をONにした場合、アプリケーションフィルタも有効になりますが、ドライバの実装方法の難易度も上がります。
拡張機能を使用される場合は、「CAN拡張機能によるデータ取得と解析方法」を参照ください。
FAQでは、拡張機能をOFFの時のカスタマイズ方法について説明しています。

CAN接続設定

IDにはDT+Trace側のIDを指定します。テストポイントの出力先のIDはこちらのIDを指定することになります。
拡張機能のチェックボックスはOFFにします。

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

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

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

ヘッダファイルのInclude

下記の変更内容のコントロール等に必要なヘッダファイルをInludeしてください。

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

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

CanDataSend関数の変更

各テストポイントのドライバ関数からコールされるCANデータの送信処理を、現在お使いの環境に合わせて差し替えてください。
サンプルドライバでは、CanDataSend()関数に、送信データの配列のアドレスと送信バイト数を指定していますが、
現在お使いの同様の関数に置き換えてください。

/*================================================================*/
/* Func: _TP_BusOut                                               */
/* Desc: Called by Test Point                                     */
/*================================================================*/
void _TP_BusOut( DT_UINT addr, DT_UINT dat )
{
         unsigned char tmp[4];
         tmp[0] = addr ;
         tmp[1] = addr >> 8;
         tmp[2] = dat ;
         tmp[3] = dat >> 8;
         CanDataSend( tmp, 4 );
}
/*================================================================*/
/* Func: _TP_MemoryOutput                                         */
/* Desc: Called by Variable Test Point                            */
/*================================================================*/
void _TP_MemoryOutput( DT_UINT addr, DT_UINT dat, void *value, DT_UINT size )
{
         unsigned char tmp[8];
         unsigned char *p = value;
         int i;
         tmp[0] = addr | 0x02;
         tmp[1] = addr >> 8;
         tmp[2] = dat ;
         tmp[3] = dat >> 8;
         for( i = 0; i < 4; i++, p++ ){
                  tmp[4+i] = (i < size)?*p:0x00;
         }
         CanDataSend( tmp, 4 + size );
} 

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

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

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

ターゲットのコンパイル

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

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