(57)【要約】【課題】  デバイスとアプリケーションプログラム（以下「ＡＰ」）との接続関係を構築する際に、ターゲットコードをデバイスにアクセスする関数に書き換えることなく、簡便にデバイスとＡＰの接続情報を作成すること。【解決手段】  仮想ハードウェアシミュレータの入出力ごとに結線すべきＡＰの入出力の端子名と同一の端子名が割り付けられた結線テーブルとを作成し、またＡＰの入出力の端子名を含むストラクチャ情報及びストラクチャ情報のＩＤと物理アドレスとを対応付けたマップファイルをもとに、端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを作成し、シミュレータ間連携部によって、アドレス定義テーブルをもとに端子名に対応する物理アドレスを介して、結線テーブルで関係付けられたＡＰと仮想ハードウェアシミュレータとの受け渡しを実行する。【選択図】  図１
2018026067.tif 000002
【特許請求の範囲】
【請求項１】
命令セットシミュレータを有し、アプリケーションプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬する仮想ハードウェアシミュレータと、前記ソフトウェアシミュレータと前記仮想ハードウェアシミュレータとの間の信号の受け渡しを行うシミュレータ間連携部と、を備えたシミュレーション装置であって、
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名が割り付けられ、複数の仮想ハードウェアシミュレータが用いられる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名が割り付けられた結線テーブルとを作成すると共に、アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを作成する結線情報作成手段を備え、
前記シミュレータ間連携部は、前記アドレス定義テーブルをもとに前記端子名に対応する物理アドレスを介して、前記結線テーブルで関係付けられたアプリケーションプログラムと、一又は二以上の仮想ハードウェアシミュレータの入出力データの受け渡しを行うことを特徴とするシミュレーション装置。
【請求項２】
前記結線情報作成手段は、アプリケーションプログラムのストラクチャ情報における端子名の並び順をもとに、前記アドレス定義テーブルにおいて、該端子名と物理アドレス中のビット位置を関係付けることを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記結線情報作成手段は、前記アドレス定義テーブルにおいて物理アドレスを昇順または降順にソートすると共に、前記結線テーブル中のデータを、前記アドレス定義テーブルにおける端子名の順番にソートすることを特徴とする請求項１または２に記載のシミュレーション装置。
【請求項４】
前記結線テーブルにおいて、アプリケーションプログラムあるいは一又は二以上の仮想ハードウェアシミュレータのいずれかの入出力端子において、他のいずれの入出力端子にも接続されていない端子が存在するか否かを判定し、存在する場合はアラームを出力することを特徴とするシミュレーション装置。
【請求項５】
命令セットシミュレータを有し、アプリケーションプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬する仮想ハードウェアシミュレータと、前記ソフトウェアシミュレータと前記仮想ハードウェアシミュレータとの間の信号の受け渡しを行うシミュレータ間連携部と、を備えたシミュレーション装置における接続情報生成方法であって、
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名を割り付け、複数の仮想ハードウェアシミュレータを用いる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名を割り付けて結線テーブルを生成ステップと、
アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを生成するステップと、を含むことを特徴とするシミュレーション装置における接続情報生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアによって周辺デバイスを模擬する仮想ハードウェアシミュレータを用いてアプリケーションプログラムの試験を実行するシミュレーション装置および同装置における接続情報生成方法に関する。
【背景技術】
【０００２】
一般に、組込機器製品では、外部からの入力をマイクロコンピュータ（以下、「マイコン」という。）上で動作するソフトウェアで処理し、その結果を出力することで製品機能を実現している。
【０００３】
この組込機器製品のソフトウェア（以下、「組込みソフト」ともいう。）の開発・試験は、パーソナルコンピュータ（以下、「ＰＣ」という。）上でプログラムを作成し、マイコン用のマシン語のプログラムに変換した後、デバッガを使用して製品用や試作品用の基板上、あるいはベンダー提供のソフトウェア開発キット（ＳＤＫ）ボードにロードして動作試験を行っている。
【０００４】
近年、製品機能の高機能化により、組込みソフトに依存する部分が増大し続けており、その状況の中で開発納期を短縮するために、効率的な開発環境が求められている。
【０００５】
この開発環境として、例えばＰＣ上で製品のマイコンと同じマシン語を実行する命令セットシミュレータ（ＩＳＳ：Instruction Set Simulator）がマイコンチップメーカーやサードパーティから提供されてきており利用が増えている。（例えば、特許文献１、２を参照）。
【０００６】
一般に、ＩＳＳを使用してＰＣ上で組込み機器製品を試験する場合には、ＩＳＳ以外に製品動作をシミュレートするための仮想のハードウェアを含む仮想ハードウェア開発環境が用いられている。この仮想ハードウェア開発環境は、搬送メカシミュレータや電気回路シミュレータなどの仮想ハードウェアシミュレータとＩＳＳ上で動作するアプリケーションプログラム（以下、単に「アプリケーション」という。）との間で、データの受け渡し（リード/ライト）を行って実際のハードウェアを模擬するものである。
【０００７】
シミュレーション装置として、この仮想ハードウェア開発環境を用いる場合、組込みソフトの外部アクセス命令と、仮想ハードウェアであるデバイスの入出力とを結び付ける必要がある。
【０００８】
この技術として、たとえば特許文献３では、ターゲットコード（実行コードに変換されたアプリケーションプログラム）の中から外部アクセス命令を特定し、特定された外部アクセス命令に対応するターゲットコードの中の箇所にデバイス（外界モデル）との入出力を模擬するための外部Ｉ／Ｆ処理を付加することが提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−１８１９６１号公報
【特許文献２】特開２０１３−２２８８３７号公報
【特許文献３】特開２０１５−１３３０８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
すなわち、この特許文献３の技術は、ＣＰＵで実行されているプログラムの中で、ターゲットプログラムのビルド結果である"プログラムの実行コード"、物理アドレスとの対応関係を示す"マップ"、および"デバッグ情報"から外部のデバイスに対してアクセスしているターゲットコード特定し、これをデバイスにアクセス（入力または出力）する関数に書き換えることで、デバイスとのデータの受け渡しを可能にしている。
【００１１】
しかしながら、この手法は次の問題点がある。
（１）デバッグ対象であるプログラムを書き換えるので、実際の動作と多少なりとも異なる部分が存在する。
（２）"プログラムの実行コード"（マシン語）を解析し、"マップ"と"デバッグ情報"から入出力を対応付けるという手法は、"デバッグ情報"の解析が複雑である上に、統合開発環境（ＩＤＥ：Integrated Development Environment）に依存するためＣＰＵが変わると、解析処理の作り替えが必要になる。
【００１２】
本発明は上述したかかる事情に対処してなされたものであり、デバイス（仮想ハードウェア）とアプリケーションプログラムとの接続関係を構築する際に、ターゲットコードをデバイスにアクセスする関数に書き換えることなく、またデバッグ情報の解析を必要とせず、より簡便にデバイスとアプリケーションプログラムの入出力との接続情報を作成することのできるシミュレーション装置および同装置における接続情報生成方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明のシミュレーション装置は、開発プログラムの実行時に読み書きの通知を行う統合開発環境の備える機能であるＩＳＳ(命令セットシミュレータ)を使用することで、プログラムを変更することなく、外部デバイスへのアクセス（読み書き）を認識する。そして、アプリケーション側のソフトウェアシミュレータとデバイス側の仮想ハードウェアシミュレータとを入出力レベルで連携させるシミュレータ間連携部を介して物理アドレスに対して入出力を行うことによりシミュレーションを実行する。
【００１４】
具体的には、本発明に係るシミュレーション装置は、命令セットシミュレータを有し、アプリケーションプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬する仮想ハードウェアシミュレータと、前記ソフトウェアシミュレータと前記仮想ハードウェアシミュレータとの間の信号の受け渡しを行うシミュレータ間連携部と、を備えたシミュレーション装置であって、
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名が割り付けられ、複数の仮想ハードウェアシミュレータが用いられる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名が割り付けられた結線テーブルを作成すると共に、アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを作成する結線情報作成手段を備え、
前記シミュレータ間連携部は、前記アドレス定義テーブルをもとに前記端子名に対応する物理アドレスを介して、前記結線テーブルで関係付けられたアプリケーションプログラムと、一又は二以上の仮想ハードウェアシミュレータの入出力データの受け渡しを行うことを特徴とする。
【００１５】
アプリケーションプログラムの入出力試験を行う場合、デバイスとの接続関係を構築することは必須であり、特許文献３ではこれを関数によって実現し、本発明においてはＩＳＳとデバイスとの接続情報であるアドレス定義テーブルと結線テーブルによって実現する。アプリケーションプログラムの入出力とデバイスとの接続関係の構築は、非常に重要な作業であり間違えが許されないので、デバイス数が多くなるとこの対応作業に工数がかかる。本発明では、デバイスの端子名を使用して、上記各テーブルによって管理できるので、簡便に接続関係の構築ができ、工数の削減を図ることができる。
【００１６】
好ましくは、前記結線情報作成手段は、アプリケーションプログラムのストラクチャ情報における端子名の並び順をもとに、前記アドレス定義テーブルにおいて、該端子名と物理アドレス中のビット位置を関係付けるようにすると良い。これにより、入出力のデータタイプに応じて入出力と物理アドレスとの対応関係を正確かつ十分なレベルで自動生成することができる。
【００１７】
また、前記結線情報作成手段は、前記アドレス定義テーブルにおいて物理アドレスを昇順または降順にソートすると共に、前記結線テーブル中のデータを、前記アドレス定義テーブルにおける端子名の順番にソートすると良い。両テーブルをディスプレイ上に表示することにより、利用者は両者の対応関係を速やかに判断することができ、また入出力処理に関するアプリケーションプログラムの設計上の問題を認識しやすくなる。
【００１８】
より好ましくは、前記結線テーブルにおいて、アプリケーションプログラムあるいは一又は二以上の仮想ハードウェアシミュレータのいずれかの入出力端子において、他のいずれの入出力端子にも接続されていない端子が存在するか否かを判定し、存在する場合はアラームを出力するのが良い。これにより、ユーザは接続ミスの存在を知ることができる。
【００１９】
また、本発明に係るシミュレーション装置における接続情報生成方法は、命令セットシミュレータを有し、アプリケーションプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬する仮想ハードウェアシミュレータと、前記ソフトウェアシミュレータと前記仮想ハードウェアシミュレータとの間の信号の受け渡しを行うシミュレータ間連携部と、を備えたシミュレーション装置における接続情報生成方法であって、
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名を割り付け、複数の仮想ハードウェアシミュレータを用いる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名を割り付けて結線テーブルを生成ステップと、
アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを生成するステップと、を含むことを特徴とする。
【００２０】
本発明では、アドレス定義テーブルと結線テーブルにより、アプリケーションプログラムの入出力とデバイスとの対応付けを行い、アドレス定義テーブルで規定されている物理アドレスを介してデータの受け渡しを行うことを可能にする。
【発明の効果】
【００２１】
以上、本発明によれば、アプリケーションプログラムから生成されたターゲットコードをデバイスにアクセスする関数に書き換えることなく、またデバッグ情報の解析を必要とせずに、簡便にデバイスとアプリケーションプログラムの入出力との接続情報を作成し、シミュレータ間連携部は、この接続情報を用いてソフトウェアシミュレータ、仮想ハードウェアシミュレータ間のデータの受け渡しを行うことができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態によるシミュレーション装置の機能ブロック図である。
【図２】図１のデバイスインタフェース定義テーブルのデータ説明図である。
【図３】図１のデバイスインタフェース定義テーブルのデータ構成例である。
【図４】図１のデバイス登録テーブルのデータ説明図である。
【図５】図１のデバイス登録テーブルのデータ構成例である。
【図６】図１の結線情報作成手段のメイン処理手順を示すフローチャートである。
【図７】図６の結線テーブル作成ルーチンの処理を示すフローチャートである。
【図８】図６のアドレス定義テーブル作成ルーチンの処理を示すフローチャートである。
【図９】図１の結線テーブルのデータ説明図である。
【図１０】図１の結線テーブルのデータ構成例である。
【図１１】図１のアドレス定義テーブルの説明図である。
【図１２】図１のアドレス定義テーブルのデータ構成例である。
【図１３】図１のアドレス定義テーブルと結線テーブルの並べ替えの手順の説明図（その１）である。
【図１４】図１のアドレス定義テーブルと結線テーブルの並べ替えの手順の説明図（その２）である。
【図１５】図１の結線情報作成手段のアドレス定義テーブル作成処理において、マップファイルから該当する端子名を捜し、物理アドレスとデータ型を決定する処理の説明図である。
【図１６】図１の履歴ファイルのデータ説明図である。
【図１７】図１の履歴ファイルのデータ構成例である。
【発明を実施するための形態】
【００２３】
以下に本発明に係るシミュレーション装置の第１の実施の形態を図面を参照しながら説明する。
【００２４】
図１は、命令セットシミュレータ（ＩＳＳ）を使用したシミュレーション装置１の機能概要を示すブロック図である。この図において、シミュレーション装置１は、ＩＳＳを含むアプリケーションプログラム（開発ソフト）側のシミュレーションを実行するソフトウェアシミュレータ２０、仮想ハードウェア（デバイスモデル）のシミュレーションを実行する仮想ハードウェアシミュレータ５０（５０-1〜５０-n）、および両シミュレータ２０，５０の入出力端子を関係付け、各端子間のデータの受け渡しを実行するシミュレータ間連携部３０から構成されている。ソフトウェアシミュレータ２０、仮想ハードウェアシミュレータ５０、およびシミュレータ間連携部３０は、汎用コンピュータの機能として実現することができる。
【００２５】
以下、シミュレーション装置１の構成をより詳細に説明する。
（ａ）ソフトウェアシミュレータ２０の構成要素
ソフトウェアシミュレータ２０は、既存の統合開発環境（ＩＤＥ）のコンパイラ、ビルダ、ＩＳＳの機能を有する。ＩＤＥにより、ユーザの作成したアプリケーションプログラム１０をコンパイルし、コンパイル結果をビルダによって入出力端子ごとに端子名と物理アドレスとを割り付けてマップファイル（ＩＤＥマップファイル）を作成する。
【００２６】
ここで、アプリケーションプログラム１０とは、ＩＳＳ上で動作する製品固有のアプリケーションプログラムであり、製品化のための開発対象プログラムを意味する。メモリに割り付けられているアドレスへのリード／ライト動作を行うことで、外部ＩＯ(仮想ハードウェアシミュレータ)とのデータの受け渡しを行う。
【００２７】
また、マップファイル２２は、アプリケーションプログラム１０のアドレスマップファイルを意味する。アプリケーションプログラムのビルドによって、作成（出力）される。このとき、デバイスに対するメモリアドレスは、ハードウェア毎に固定になるので、機能の追加・変更がない限りアドレスが変わることはない。
【００２８】
なお、本実施の形態による接続情報生成方法では、ＩＤＥによって作成されるプログラム実行コード、アプリケーションプログラムのマップファイル、デバッグ情報のうち、マップファイルのみを使用する。
【００２９】
（ｂ）仮想ハードウェアシミュレータ５０の構成要素
仮想ハードウェアシミュレータ５０は、周辺機器（デバイス）を仮想化し、デバイスの動作をＰＣ上で模擬するシミュレータ（デバイスモデル）である。
【００３０】
この仮想ハードウェアシミュレータ５０は、予め作成されたデータインタフェースである端子名とデータ型を定義するデバイスインタフェース定義テーブル５１-1〜５１-nを備え、各デバイスモデル５０-1〜５０-nは、この定義に従って動作する。すなわち、デバイスインタフェース定義テーブル５１-1〜５１-nを仮想ハードウェアシミュレータ５０に持たせることで、アプリケーションプログラム１０のメモリアドレス（物理アドレス）を意識せずに、端子名のみを考慮してデバイスモデル５０-1〜５０-nを構築することができるのである。
【００３１】
図２に示すように、デバイスインタフェース定義テーブル５１（５１-1〜５１-n）には、シミュレータ間連携部３０で同受信するデバイスモデルの端子名と、そのデータ型で構成されている。図３にデバイスインタフェース定義テーブル５１のデータ例を示す。
【００３２】
（ｃ）シミュレータ間連携部３０の構成要素
シミュレータ間連携部３０は、マップファイル２２や、シミュレーションに用いるべきデバイスモデルのデバイスインタフェース定義テーブル５１-1〜５１-nを登録するデバイス登録テーブル３１を備えている。
【００３３】
このデバイス登録テーブル３１は、連携すべきＩＳＳとデバイスモデル５０-1〜５０-nをユーザがシミュレーション装置１のユーザインタフェースを通して登録する定義テーブルであり、結線に必要なデバイスが登録されている。
【００３４】
図４に示すように、デバイス登録テーブル３１は、デバイス名と定義ファイルから構成されている。デバイス名は、一番目にＩＳＳの名称（識別情報）、二番目以降にデバイスの名称（識別情報）を格納するようになっている。定義ファイルとしては、一番目にＩＤＥマップファイル、二番目以降にデバイスのデバイスインタフェース定義テーブル名が格納される。一般的には、定義ファイルは、格納ディレクトリ＋ファイル名の形で特定されるようになっている。図５にデバイス登録テーブル３１のデータ例を示す。
【００３５】
シミュレータ間連携部３０は、このデバイス登録テーブル３１を参照して、ソフトウェアシミュレータ２０のＩＳＳを介して受け取ったアプリケーションプログラム１０の入出力データをデバイスモデル５０-1〜５０-nとの間で受け渡しを行う機能を有する。
【００３６】
本実施の形態による結線情報作成手段３２は、このデバイス登録テーブル３１を参照して、マップファイル２２とデバイスインタフェース定義テーブル５１-1〜５１-nにアクセスして、後述するアドレス定義テーブル３３、結線テーブル３４を生成するものである。なお出力ファイルとしては、この他、履歴ファイル３５を出力するようにしてもよい。
【００３７】
図１において、シミュレータ間連携部３０の一点鎖線で囲んだところが本発明により新たに創作した部分である。
【００３８】
以下、シミュレータ間連携部３０の有する結線情報作成手段３２について説明する。なお、この結線情報作成手段３２は、シミュレータ間連携部３０の一部の機能であっても良いし、シミュレータ間連携部３０や各シミュレータ２０，５０と独立した別の手段として構成するようにしても良い。
【００３９】
次に、図６〜図８を用いて、結線情報作成手段３２がアドレス定義テーブル３３と結線テーブル３４を作成する際の処理手順を説明する。
（１）結線情報作成手段３２のメイン処理（図６参照）
結線情報作成手段３２は、ユーザインタフェースを介して起動されると、結線テーブル作成処理を実行する（Ｓ１０１）。これにより、後述する結線テーブル作成ルーチンが起動され、アプリケーションプログラム１０を除く、デバイスモデル５０-1〜５０-nの使用する端子名とその登録番号が結線テーブル３４に登録される。
【００４０】
続いて結線情報作成手段３２は、アドレス定義テーブル作成処理を実行する（Ｓ１０２）。これにより、後述するアドレステーブル作成ルーチンが起動され、結線テーブル３４に登録されている端子名の物理アドレスが定義されたアドレス定義テーブル３３が作成される。
【００４１】
次に、結線情報作成手段３２は、結線テーブル３４のデータ項目の並べ替え（ソート）を実行する（Ｓ１０３）。結線テーブル３４は、最初のデバイス５０-1からの端子名順に情報が登録されるため、ＩＳＳのメモリ順に並べ替えることで、デバッグが容易になる。すなわち、必要な端子名を先に抽出することで、アドレス情報の検索数を短縮することができる。但し、この処理はシミュレーションを行う上では必要ないので省略可能である。なお、別な方法として、アドレスの範囲を指定して、そこに該当する変数すべての情報を作成するなどのやり方があるが、不必要なものまで作成するので時間が長くなるなどの欠点がある。
【００４２】
（２）結線テーブル作成ルーチンの処理（図７参照）
結線テーブル作成ルーチンは図６のメインルーチンから呼び出されると、まず、結線テーブル３４を初期化（クリア）する（Ｓ２０１）。そして、デバイス登録テーブル３１を読み出して、登録してあるデバイスインタフェース定義テーブル５１を順次読み出し、全ての読み出しが完了した場合は、処理を終了する（Ｓ２０２で「ＹＥＳ」）。
【００４３】
ステップＳ２０２の処理で「ＮＯ」の場合は、結線テーブル３４に、そのデバイス名を登録する（Ｓ２０３）。そして、読み出したデバイスインタフェース定義テーブル５１の端子名を順次読み出し、全て処理した場合は、次のデバイスを処理する（Ｓ２０４で「ＹＥＳ」）。一方、ステップＳ２０４で「ＮＯ」の場合は、読み出した端子名が、結線テーブル３４に未登録か、登録済みかを確認する（Ｓ２０５）。
【００４４】
ステップＳ２０５の確認の結果、結線テーブル３４に読み出した端子名が未登録の場合は（Ｓ２０５で「ＹＥＳ」）、結線テーブル３４の端子名にデバイスインタフェース定義テーブル５１の端子名を登録する（Ｓ２０６）。そして、結線テーブル３４のデバイス端子番号にデバイスインタフェース定義テーブル５１の端子番号を登録する（Ｓ２０７）。
【００４５】
この結線テーブル３４は、シミュレータ間連携部３０が使用するＩＳＳとデバイスモデル間、デバイスモデル同士のデータ入出力の対応をとるためのテーブルである。上記の処理によって作成された結線テーブル３４は、図９に示すように、デバイス登録テーブルのデバイス名、シミュレータ間連携部３０で送受信する端子名、デバイス名に対応するデバイスの端子番号の各データから構成されている。なお、デバイス名の先頭は、ＩＳＳを登録し、その後にデバイス登録テーブルに登録されているデバイスが登録されている。図１０に、結線テーブルのデータ例を示す。
【００４６】
（３）アドレス定義テーブル作成ルーチンの処理（図８）
アドレス定義テーブル作成ルーチンは図６のメインルーチンから呼び出されると、まず、アドレス定義テーブル３３を初期化（クリア）する（Ｓ３０１）。続いて、結線テーブル３４から端子名を順次読み出す（Ｓ３０２）。
【００４７】
そして、結線テーブル３４に登録してある全ての端子の登録が完了したか否かを判定し（Ｓ３０３）、完了した場合は処理を終了する（Ｓ３０３で「ＹＥＳ」）。
【００４８】
一方、ステップＳ３０３の処理で「ＮＯ」の場合は、端子名をアプリケーションプログラム１０から検索する（Ｓ３０４）。そして検索結果を判定する。
【００４９】
判定の結果、アプリケーションプログラム１０に該当する端子名が存在しない場合は（Ｓ３０５で「ＮＯ」）、"端子名アプリケーションプログラム未登録"の履歴を保存する（Ｓ３１２）。一方、アプリケーションプログラム１０に該当する端子名が存在する場合は（Ｓ３０５で「ＹＥＳ」）、アドレス（物理アドレス）を決定する（Ｓ３０６）。
【００５０】
アドレス決定後、マップファイル（ＩＤＥメモリマップ）２２に該当する端子名が存在するか否かを判定し（Ｓ３０７）、該当する端子名が存在しない場合は"端子名マップ未登録"の履歴を保存する（Ｓ３１１）。一方、マップファイル（ＩＤＥメモリマップ）２２にアドレスの登録がある場合は（Ｓ３０７で「ＹＥＳ」）、次にデータ型が一致するか判定する（Ｓ３０８）。
【００５１】
ステップ３０８の判定の結果、データ型が一致する場合は、結線テーブル３４のCPUSim端子番号欄に当該端子番号を登録する（Ｓ３０９）。一方、ステップ３０８の判定の結果、データ型が一致しない場合は"データ型不一致"の履歴を保存する（Ｓ３１０）。
【００５２】
このアドレス定義テーブル３３は、アプリケーションプログラム１０が外部のデバイス５０-1〜５０-nに対して入出力を行うためのアドレステーブルである。上記の処理によって作成されたアドレス定義テーブル３３は、図１１に示すように、アプリケーションプログラム１０で使用しているデバイスインタフェース定義テーブル５１に登録されている端子名、アプリケーションプログラム１０上のメモリの物理アドレス、アプリケーションプログラム１０で使用しているデバイスインタフェース定義テーブル５１に登録されている端子のデータ型、アプリケーションプログラム１０のストラクチャ情報から取得したビット位置が格納されている。図１２にアドレス定義テーブル３３のデータ例を示す。なお、このアドレス定義テーブル３３のデータ型がデバイスインタフェース定義テーブル５１のデータ型と異なる場合は、警告を出力するようにしてもよい。
【００５３】
（４）結線テーブルの並べ替え処理（図１３，図１４参照）
図１３，図１４に、アドレス定義テーブルと結線テーブルをマイコンのISS（CPUSim）のアドレス順に並べ替える処理の一例を示す。
＜Ａ１＞まずアドレス定義テーブルのデータ列の物理アドレス順への並び替えを実行する。これにより、アドレス定義テーブルにおいて登録順番号（ＮＯ．）と端子名などそれ以外のデータとにずれが生じるが、このアドレス定義テーブルの登録順番号変更に伴う結線テーブルの並び替えを実行する。具体的には、結線テーブルのCPUSim欄の番号をアドレス定義テーブルの登録順番号に合わせる。
＜Ａ２＞次に、結線テーブル３４の並び順をマイコンのISS（CPUSim）のアドレス順に並び替える。
【００５４】
上記の処理により、アドレス定義テーブル３３と結線テーブル３４とで、物理アドレス順に両端子名の項目が揃った形になる。また、各デバイス５０-1〜５０-nの端子番号も各テーブル３３，３４の端子名との対応付けを保ったまま並び替えられることになる。
【００５５】
図１５に、真偽型（BOOL型）のアドレス定義テーブル作成処理において、マップファイル２２から該当する端子名を捜し、物理アドレスとデータ型を決定する例（SCI_MODE_C）を示す。
＜Ｓ１＞デバイスの端子名をアプリケーションプログラムから検索する。
＜Ｓ２＞その端子名の所属する構造体名を決定する。
＜Ｓ３＞構造体の宣言からデータ型を決定し、アドレス定義テーブルに格納する。
＜Ｓ４＞構造名を宣言している変数名を求める。
＜Ｓ５＞マップファイル２２より、＜Ｓ４＞の変数名の先頭物理アドレスを決定する。
＜Ｓ６＞構造体の定義から、＜Ｓ１＞の端子名が含むバイトアドレスとbit位置を決定し、アドレス定義テーブルに格納する。
【００５６】
（５）履歴ファイル
履歴ファイル３５は、結線情報作成手段３２がアドレス定義テーブル３３と結線テーブル３４を自動生成するときに発生した警告を履歴として格納するファイルである。
【００５７】
履歴ファイル３５は、図１６に示すように、警告の発生したデバイス登録テーブルのデバイス名、警告の発生したデバイスの端子名、警告の内容を表すコードの各データから構成されている。図１７に履歴ファイル３５のデータ例を示す。
【００５８】
以上の処理により、結線情報作成手段３２は、アドレス定義テーブル３３、結線テーブル３４、および必要により履歴ファイル３５を作成する。
【００５９】
そして、シミュレータ間連携部３０は、アドレス定義テーブル３３をもとに端子名に対応する物理アドレスを介して、結線テーブル３４によって関係付けられたアプリケーションプログラム１０と一又は二以上のデバイスモデル（仮想ハードウェアシミュレータ）５０の入出力データの受け渡しを行う。
【００６０】
本実施の形態によれば、端子名を使用して、アドレス定義テーブルと結線テーブルによってアプリケーションプログラムとデバイスモデル（仮想ハードウェアシミュレータ）の各端子の接続関係および物理アドレスとの対応関係を管理できるので、デバイスモデルにアクセスする関数を作成する必要がなく工数の削減を図ることができる。
【００６１】
本発明はその要旨を逸脱しない範囲で、種々変形して実現することができる。たとえば、仮想ハードウェアシミュレータのデバイスインタフェース定義テーブルを予め準備しておくのではなく、結線テーブル作成時に直接端子名をユーザインタフェースから入力するようにしても良い。
【符号の説明】
【００６２】
１    シミュレーション装置
１０    アプリケーションプログラム
２０    ソフトウェアシミュレータ
２２    マップファイル
３０    シミュレータ間連携部
３１    デバイス登録テーブル
３２    結線情報作成手段
３３    アドレス定義テーブル
３４    結線テーブル
３５    履歴ファイル
５０（５０-1〜５０-n）    仮想ハードウェアシミュレータ（デバイスモデル）
５１（５１-1〜５１-n）    デバイスインタフェース定義テーブル
【図１】
2018026067.tif 000003
【図２】
2018026067.tif 000004
【図３】
2018026067.tif 000005
【図４】
2018026067.tif 000006
【図５】
2018026067.tif 000007
【図６】
2018026067.tif 000008
【図７】
2018026067.tif 000009
【図８】
2018026067.tif 000010
【図９】
2018026067.tif 000011
【図１０】
2018026067.tif 000012
【図１１】
2018026067.tif 000013
【図１２】
2018026067.tif 000014
【図１３】
2018026067.tif 000015
【図１４】
2018026067.tif 000016
【図１５】
2018026067.tif 000017
【図１６】
2018026067.tif 000018
【図１７】
2018026067.tif 000019