チュートリアル
1.出力ポートのレジスタ設定の調査
非同期バス接続は、NORフラッシュとCPU間のバスを利用し、テストポイント通過時に
外部に出力された信号(通過情報)を取得します。
ハードウェアの取り付け方法については、弊社「アタッチメント取り付けガイド」をご参照ください。
事前に接続先のフラッシュROMの先頭アドレスをご調査ください。
また、対象のフラッシュROMでキャッシュをご使用の場合は、キャッシュ領域内のメモリ空間では
正常なデータ取得が行えませんので、非キャッシュ領域の先頭アドレスをご調査ください。
2.サンプルドライバのカスタマイズ
ダウンロードいただいたドライバファイルは、ターゲット環境に合わせて、下記の内容を変更します。
非同期バス接続を関数コールで使用する場合では、変更箇所が異なりますのご注意ください。
非同期バス接続で、通常のテストポイント取得する場合は、ドライバの登録は不要です。
変数値出力機能やイベントトリガー機能を使用する場合は、下記のカスタマイズをしたドライバファイルが必要となります。
2-1.ヘッダファイルのInclude
下記の変更内容のコントロール等に必要なヘッダファイルをIncludeします。
※”Common.h”は、弊社のサンプル環境における制御ポートのdefineや制御APIなどが定義されているヘッダファイルです。
削除するか、コメントアウトしてお使いください。
/*==================================================================*/
/* Desc: Header for FROM Control */
/*==================================================================*/
#include "Common.h"
2-2.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();
}
■非同期バス(関数コール)の場合
2-3.[関数コール] DT_USE_FUNCTIONを有効にする。
関数コールを利用する場合は、デフォルト値の”0″を”1”に変更します。
/*==================================================================*/
/* Macro: DT_USE_FUNCTION */
/* Desc: Please set 1 when you use function call. */
/*==================================================================*/
#define DT_USE_FUNCTION
2-4.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();
}
3.各種defineの設定
3-1.ターゲット環境での符号なし32bitの型名指定
通常は変更不要です。符号無し32bitの型名を記載します。
もしこちらの項目を変更した場合は、DT10アプリ側の設定も変更する必要があります。
/*==================================================================*/
/* Macro: DT_UINT */
/* Desc: Please change Test Point argument type for DT10 Project setting. */
/*==================================================================*/
#define DT_UINT unsigned int
3-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 */
4.ターゲットのコンパイル
お使いの開発環境に、カスタマイズしたドライバファイルを追加します。
コンパイルしていただき、問題なくターゲットが動作するかを確認します。