I/O DLLキット
対応シミュレータデバッガ
I/O DLLキットは、以下のHigh-performance Embedded Workshop環境用シミュレータデバッガ(コンパイラパッケージに同梱)に対応しています。
* 本製品は、M3T-PDxxSIMシミュレータには対応していません。M3T-PDxxSIMシミュレータには PDxxSIM I/O DLLキットをご利用ください。
概 要
I/O DLLキットは、シミュレータデバッガの機能を拡張するためのキットで、I/O DLLの作成をサポートします。I/O DLL とは、シミュレータデバッガのシミュレータエンジンと連携して動作するDLL(*1) のことです。
シミュレータデバッガ では、所定の設定を行うことでI/O DLLをロードし、1 命令実行やメモリのRead/Write、割り込み発生等のタイミングに同期させてI/O DLLを動作させることができます。これにより、マイコンの入出力ポートや、内蔵周辺機能の動作をシミュレートしてターゲットプログラムのデバッグができます。また、外部ツールとの間でデータを入出力するような連携が可能になります。
I/O DLLは、C/C++言語を使用して任意に作成することができます。I/O DLLを作成するには、市販のWindowsアプリケーション開発環境であるMicrosoft Visual C++が必要です。
*1. DLL : Dynamic Link Libraryの略。実行可能ルーチン(特定の関数または関数の集合を提供するルーチン) を、拡張子.dllを持つファイルとして別に保存しておくことを可能にするオペレーティングシステムの機能。 これらのルーチンは、呼び出し元プログラムが必要とするときにのみ読み込まれる。
開発の背景
シミュレータデバッガは、ユーザターゲットがない状態でのデバッグが可能です。しかし、入出力ポート、A/D変換、割り込みなどの周辺I/Oのシミュレートをサポートしていません。そのためシミュレータデバッガでは、周辺I/Oへアクセスするプログラムのデバッグを支援するためにI/Oシミュレーション機能をサポートしています。この機能を利用することにより、I/Oポートへの入力や出力、割り込みの発生、またタイマやA/D変換器等の周辺I/Oの動作をシミュレーションすることができます。
しかしながら、複雑なI/OシミュレーションはI/Oスクリプトで記述しなければ実現できません。I/Oスクリプトは独自のスクリプト言語であり、その習得が難しいという問題がありました。そこで、このI/OシミュレーションをMicrosoft社のVisual C++を用いて定義できるI/O DLL機能を開発しました。
シミュレータエンジンとI/O DLLの連携
シミュレータエンジンは、I/O DLL側であらかじめ定義された関数を以下のタイミングに同期して呼び出します。
- 1命令実行後(実行サイクル数)
- 実行前(PC値)
- ターゲットリセット
- 割り込み発生
- メモリリードの直前(アドレス情報)
- メモリライトした直後(アドレス情報)
逆にI/O DLL側からは、シミュレータエンジンであらかじめ公開された以下の機能を呼び出すことができます。
- メモリ内容の取得
- メモリ値の設定
- レジスタ値の取得
- レジスタ値の設定
- 割り込みの発生
- 割り込み発生状態の確認
- 総実行サイクル数の参照

I/O DLLの構成図
利用する開発ツール
I/O DLLの作成には、市販のWindowsアプリケーション開発ツールMicrosoft Visual C++が必要です。
動作環境
使用するシミュレータデバッガの動作環境に依存します。シミュレータデバッガの動作環境については、ご使用のシミュレータデバッガのリリースノートをご参照ください。
サンプルプログラム
以下のサンプルプログラムが、 I/O DLLキットをインストールしたディレクトリ下に格納されています。I/O DLLキットのインストール方法についてはリリースノートをご参照ください。
- Microsoft社のExcelと連携するI/O DLL
- ファイルからデータをRead/WriteするI/O DLL
- マイコンの内蔵周辺機能の動作をシミュレートするI/O DLL
ご質問・ご要望について
I/O DLLキットは未サポートを前提として配布しています。また、Windowsアプリケーション開発ツールに関する技術サポートは実施していません。ご質問いただいても回答致しかねる場合がありますのであらかじめご了承ください。
I/O DLLキットのご提供
I/O DLLキットは、ダウンロードサイト にて提供しています(マニュアル含む)。
Japan 日本語




