JP2018026067A - シミュレーション装置および同装置における接続情報生成方法 - Google Patents
シミュレーション装置および同装置における接続情報生成方法 Download PDFInfo
- Publication number
- JP2018026067A JP2018026067A JP2016158982A JP2016158982A JP2018026067A JP 2018026067 A JP2018026067 A JP 2018026067A JP 2016158982 A JP2016158982 A JP 2016158982A JP 2016158982 A JP2016158982 A JP 2016158982A JP 2018026067 A JP2018026067 A JP 2018026067A
- Authority
- JP
- Japan
- Prior art keywords
- simulator
- input
- virtual hardware
- application program
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】 デバイスとアプリケーションプログラム(以下「AP」)との接続関係を構築する際に、ターゲットコードをデバイスにアクセスする関数に書き換えることなく、簡便にデバイスとAPの接続情報を作成すること。【解決手段】 仮想ハードウェアシミュレータの入出力ごとに結線すべきAPの入出力の端子名と同一の端子名が割り付けられた結線テーブルとを作成し、またAPの入出力の端子名を含むストラクチャ情報及びストラクチャ情報のIDと物理アドレスとを対応付けたマップファイルをもとに、端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを作成し、シミュレータ間連携部によって、アドレス定義テーブルをもとに端子名に対応する物理アドレスを介して、結線テーブルで関係付けられたAPと仮想ハードウェアシミュレータとの受け渡しを実行する。【選択図】 図1
Description
本発明は、ソフトウェアによって周辺デバイスを模擬する仮想ハードウェアシミュレータを用いてアプリケーションプログラムの試験を実行するシミュレーション装置および同装置における接続情報生成方法に関する。
一般に、組込機器製品では、外部からの入力をマイクロコンピュータ(以下、「マイコン」という。)上で動作するソフトウェアで処理し、その結果を出力することで製品機能を実現している。
この組込機器製品のソフトウェア(以下、「組込みソフト」ともいう。)の開発・試験は、パーソナルコンピュータ(以下、「PC」という。)上でプログラムを作成し、マイコン用のマシン語のプログラムに変換した後、デバッガを使用して製品用や試作品用の基板上、あるいはベンダー提供のソフトウェア開発キット(SDK)ボードにロードして動作試験を行っている。
近年、製品機能の高機能化により、組込みソフトに依存する部分が増大し続けており、その状況の中で開発納期を短縮するために、効率的な開発環境が求められている。
この開発環境として、例えばPC上で製品のマイコンと同じマシン語を実行する命令セットシミュレータ(ISS:Instruction Set Simulator)がマイコンチップメーカーやサードパーティから提供されてきており利用が増えている。(例えば、特許文献1、2を参照)。
一般に、ISSを使用してPC上で組込み機器製品を試験する場合には、ISS以外に製品動作をシミュレートするための仮想のハードウェアを含む仮想ハードウェア開発環境が用いられている。この仮想ハードウェア開発環境は、搬送メカシミュレータや電気回路シミュレータなどの仮想ハードウェアシミュレータとISS上で動作するアプリケーションプログラム(以下、単に「アプリケーション」という。)との間で、データの受け渡し(リード/ライト)を行って実際のハードウェアを模擬するものである。
シミュレーション装置として、この仮想ハードウェア開発環境を用いる場合、組込みソフトの外部アクセス命令と、仮想ハードウェアであるデバイスの入出力とを結び付ける必要がある。
この技術として、たとえば特許文献3では、ターゲットコード(実行コードに変換されたアプリケーションプログラム)の中から外部アクセス命令を特定し、特定された外部アクセス命令に対応するターゲットコードの中の箇所にデバイス(外界モデル)との入出力を模擬するための外部I/F処理を付加することが提案されている。
すなわち、この特許文献3の技術は、CPUで実行されているプログラムの中で、ターゲットプログラムのビルド結果である"プログラムの実行コード"、物理アドレスとの対応関係を示す"マップ"、および"デバッグ情報"から外部のデバイスに対してアクセスしているターゲットコード特定し、これをデバイスにアクセス(入力または出力)する関数に書き換えることで、デバイスとのデータの受け渡しを可能にしている。
しかしながら、この手法は次の問題点がある。
(1)デバッグ対象であるプログラムを書き換えるので、実際の動作と多少なりとも異なる部分が存在する。
(2)"プログラムの実行コード"(マシン語)を解析し、"マップ"と"デバッグ情報"から入出力を対応付けるという手法は、"デバッグ情報"の解析が複雑である上に、統合開発環境(IDE:Integrated Development Environment)に依存するためCPUが変わると、解析処理の作り替えが必要になる。
(1)デバッグ対象であるプログラムを書き換えるので、実際の動作と多少なりとも異なる部分が存在する。
(2)"プログラムの実行コード"(マシン語)を解析し、"マップ"と"デバッグ情報"から入出力を対応付けるという手法は、"デバッグ情報"の解析が複雑である上に、統合開発環境(IDE:Integrated Development Environment)に依存するためCPUが変わると、解析処理の作り替えが必要になる。
本発明は上述したかかる事情に対処してなされたものであり、デバイス(仮想ハードウェア)とアプリケーションプログラムとの接続関係を構築する際に、ターゲットコードをデバイスにアクセスする関数に書き換えることなく、またデバッグ情報の解析を必要とせず、より簡便にデバイスとアプリケーションプログラムの入出力との接続情報を作成することのできるシミュレーション装置および同装置における接続情報生成方法を提供することを目的とする。
上記目的を達成するため、本発明のシミュレーション装置は、開発プログラムの実行時に読み書きの通知を行う統合開発環境の備える機能であるISS(命令セットシミュレータ)を使用することで、プログラムを変更することなく、外部デバイスへのアクセス(読み書き)を認識する。そして、アプリケーション側のソフトウェアシミュレータとデバイス側の仮想ハードウェアシミュレータとを入出力レベルで連携させるシミュレータ間連携部を介して物理アドレスに対して入出力を行うことによりシミュレーションを実行する。
具体的には、本発明に係るシミュレーション装置は、命令セットシミュレータを有し、アプリケーションプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬する仮想ハードウェアシミュレータと、前記ソフトウェアシミュレータと前記仮想ハードウェアシミュレータとの間の信号の受け渡しを行うシミュレータ間連携部と、を備えたシミュレーション装置であって、
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名が割り付けられ、複数の仮想ハードウェアシミュレータが用いられる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名が割り付けられた結線テーブルを作成すると共に、アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを作成する結線情報作成手段を備え、
前記シミュレータ間連携部は、前記アドレス定義テーブルをもとに前記端子名に対応する物理アドレスを介して、前記結線テーブルで関係付けられたアプリケーションプログラムと、一又は二以上の仮想ハードウェアシミュレータの入出力データの受け渡しを行うことを特徴とする。
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名が割り付けられ、複数の仮想ハードウェアシミュレータが用いられる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名が割り付けられた結線テーブルを作成すると共に、アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを作成する結線情報作成手段を備え、
前記シミュレータ間連携部は、前記アドレス定義テーブルをもとに前記端子名に対応する物理アドレスを介して、前記結線テーブルで関係付けられたアプリケーションプログラムと、一又は二以上の仮想ハードウェアシミュレータの入出力データの受け渡しを行うことを特徴とする。
アプリケーションプログラムの入出力試験を行う場合、デバイスとの接続関係を構築することは必須であり、特許文献3ではこれを関数によって実現し、本発明においてはISSとデバイスとの接続情報であるアドレス定義テーブルと結線テーブルによって実現する。アプリケーションプログラムの入出力とデバイスとの接続関係の構築は、非常に重要な作業であり間違えが許されないので、デバイス数が多くなるとこの対応作業に工数がかかる。本発明では、デバイスの端子名を使用して、上記各テーブルによって管理できるので、簡便に接続関係の構築ができ、工数の削減を図ることができる。
好ましくは、前記結線情報作成手段は、アプリケーションプログラムのストラクチャ情報における端子名の並び順をもとに、前記アドレス定義テーブルにおいて、該端子名と物理アドレス中のビット位置を関係付けるようにすると良い。これにより、入出力のデータタイプに応じて入出力と物理アドレスとの対応関係を正確かつ十分なレベルで自動生成することができる。
また、前記結線情報作成手段は、前記アドレス定義テーブルにおいて物理アドレスを昇順または降順にソートすると共に、前記結線テーブル中のデータを、前記アドレス定義テーブルにおける端子名の順番にソートすると良い。両テーブルをディスプレイ上に表示することにより、利用者は両者の対応関係を速やかに判断することができ、また入出力処理に関するアプリケーションプログラムの設計上の問題を認識しやすくなる。
より好ましくは、前記結線テーブルにおいて、アプリケーションプログラムあるいは一又は二以上の仮想ハードウェアシミュレータのいずれかの入出力端子において、他のいずれの入出力端子にも接続されていない端子が存在するか否かを判定し、存在する場合はアラームを出力するのが良い。これにより、ユーザは接続ミスの存在を知ることができる。
また、本発明に係るシミュレーション装置における接続情報生成方法は、命令セットシミュレータを有し、アプリケーションプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬する仮想ハードウェアシミュレータと、前記ソフトウェアシミュレータと前記仮想ハードウェアシミュレータとの間の信号の受け渡しを行うシミュレータ間連携部と、を備えたシミュレーション装置における接続情報生成方法であって、
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名を割り付け、複数の仮想ハードウェアシミュレータを用いる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名を割り付けて結線テーブルを生成ステップと、
アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを生成するステップと、を含むことを特徴とする。
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名を割り付け、複数の仮想ハードウェアシミュレータを用いる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名を割り付けて結線テーブルを生成ステップと、
アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを生成するステップと、を含むことを特徴とする。
本発明では、アドレス定義テーブルと結線テーブルにより、アプリケーションプログラムの入出力とデバイスとの対応付けを行い、アドレス定義テーブルで規定されている物理アドレスを介してデータの受け渡しを行うことを可能にする。
以上、本発明によれば、アプリケーションプログラムから生成されたターゲットコードをデバイスにアクセスする関数に書き換えることなく、またデバッグ情報の解析を必要とせずに、簡便にデバイスとアプリケーションプログラムの入出力との接続情報を作成し、シミュレータ間連携部は、この接続情報を用いてソフトウェアシミュレータ、仮想ハードウェアシミュレータ間のデータの受け渡しを行うことができる。
以下に本発明に係るシミュレーション装置の第1の実施の形態を図面を参照しながら説明する。
図1は、命令セットシミュレータ(ISS)を使用したシミュレーション装置1の機能概要を示すブロック図である。この図において、シミュレーション装置1は、ISSを含むアプリケーションプログラム(開発ソフト)側のシミュレーションを実行するソフトウェアシミュレータ20、仮想ハードウェア(デバイスモデル)のシミュレーションを実行する仮想ハードウェアシミュレータ50(50-1〜50-n)、および両シミュレータ20,50の入出力端子を関係付け、各端子間のデータの受け渡しを実行するシミュレータ間連携部30から構成されている。ソフトウェアシミュレータ20、仮想ハードウェアシミュレータ50、およびシミュレータ間連携部30は、汎用コンピュータの機能として実現することができる。
以下、シミュレーション装置1の構成をより詳細に説明する。
(a)ソフトウェアシミュレータ20の構成要素
ソフトウェアシミュレータ20は、既存の統合開発環境(IDE)のコンパイラ、ビルダ、ISSの機能を有する。IDEにより、ユーザの作成したアプリケーションプログラム10をコンパイルし、コンパイル結果をビルダによって入出力端子ごとに端子名と物理アドレスとを割り付けてマップファイル(IDEマップファイル)を作成する。
(a)ソフトウェアシミュレータ20の構成要素
ソフトウェアシミュレータ20は、既存の統合開発環境(IDE)のコンパイラ、ビルダ、ISSの機能を有する。IDEにより、ユーザの作成したアプリケーションプログラム10をコンパイルし、コンパイル結果をビルダによって入出力端子ごとに端子名と物理アドレスとを割り付けてマップファイル(IDEマップファイル)を作成する。
ここで、アプリケーションプログラム10とは、ISS上で動作する製品固有のアプリケーションプログラムであり、製品化のための開発対象プログラムを意味する。メモリに割り付けられているアドレスへのリード/ライト動作を行うことで、外部IO(仮想ハードウェアシミュレータ)とのデータの受け渡しを行う。
また、マップファイル22は、アプリケーションプログラム10のアドレスマップファイルを意味する。アプリケーションプログラムのビルドによって、作成(出力)される。このとき、デバイスに対するメモリアドレスは、ハードウェア毎に固定になるので、機能の追加・変更がない限りアドレスが変わることはない。
なお、本実施の形態による接続情報生成方法では、IDEによって作成されるプログラム実行コード、アプリケーションプログラムのマップファイル、デバッグ情報のうち、マップファイルのみを使用する。
(b)仮想ハードウェアシミュレータ50の構成要素
仮想ハードウェアシミュレータ50は、周辺機器(デバイス)を仮想化し、デバイスの動作をPC上で模擬するシミュレータ(デバイスモデル)である。
仮想ハードウェアシミュレータ50は、周辺機器(デバイス)を仮想化し、デバイスの動作をPC上で模擬するシミュレータ(デバイスモデル)である。
この仮想ハードウェアシミュレータ50は、予め作成されたデータインタフェースである端子名とデータ型を定義するデバイスインタフェース定義テーブル51-1〜51-nを備え、各デバイスモデル50-1〜50-nは、この定義に従って動作する。すなわち、デバイスインタフェース定義テーブル51-1〜51-nを仮想ハードウェアシミュレータ50に持たせることで、アプリケーションプログラム10のメモリアドレス(物理アドレス)を意識せずに、端子名のみを考慮してデバイスモデル50-1〜50-nを構築することができるのである。
図2に示すように、デバイスインタフェース定義テーブル51(51-1〜51-n)には、シミュレータ間連携部30で同受信するデバイスモデルの端子名と、そのデータ型で構成されている。図3にデバイスインタフェース定義テーブル51のデータ例を示す。
(c)シミュレータ間連携部30の構成要素
シミュレータ間連携部30は、マップファイル22や、シミュレーションに用いるべきデバイスモデルのデバイスインタフェース定義テーブル51-1〜51-nを登録するデバイス登録テーブル31を備えている。
シミュレータ間連携部30は、マップファイル22や、シミュレーションに用いるべきデバイスモデルのデバイスインタフェース定義テーブル51-1〜51-nを登録するデバイス登録テーブル31を備えている。
このデバイス登録テーブル31は、連携すべきISSとデバイスモデル50-1〜50-nをユーザがシミュレーション装置1のユーザインタフェースを通して登録する定義テーブルであり、結線に必要なデバイスが登録されている。
図4に示すように、デバイス登録テーブル31は、デバイス名と定義ファイルから構成されている。デバイス名は、一番目にISSの名称(識別情報)、二番目以降にデバイスの名称(識別情報)を格納するようになっている。定義ファイルとしては、一番目にIDEマップファイル、二番目以降にデバイスのデバイスインタフェース定義テーブル名が格納される。一般的には、定義ファイルは、格納ディレクトリ+ファイル名の形で特定されるようになっている。図5にデバイス登録テーブル31のデータ例を示す。
シミュレータ間連携部30は、このデバイス登録テーブル31を参照して、ソフトウェアシミュレータ20のISSを介して受け取ったアプリケーションプログラム10の入出力データをデバイスモデル50-1〜50-nとの間で受け渡しを行う機能を有する。
本実施の形態による結線情報作成手段32は、このデバイス登録テーブル31を参照して、マップファイル22とデバイスインタフェース定義テーブル51-1〜51-nにアクセスして、後述するアドレス定義テーブル33、結線テーブル34を生成するものである。なお出力ファイルとしては、この他、履歴ファイル35を出力するようにしてもよい。
図1において、シミュレータ間連携部30の一点鎖線で囲んだところが本発明により新たに創作した部分である。
以下、シミュレータ間連携部30の有する結線情報作成手段32について説明する。なお、この結線情報作成手段32は、シミュレータ間連携部30の一部の機能であっても良いし、シミュレータ間連携部30や各シミュレータ20,50と独立した別の手段として構成するようにしても良い。
次に、図6〜図8を用いて、結線情報作成手段32がアドレス定義テーブル33と結線テーブル34を作成する際の処理手順を説明する。
(1)結線情報作成手段32のメイン処理(図6参照)
結線情報作成手段32は、ユーザインタフェースを介して起動されると、結線テーブル作成処理を実行する(S101)。これにより、後述する結線テーブル作成ルーチンが起動され、アプリケーションプログラム10を除く、デバイスモデル50-1〜50-nの使用する端子名とその登録番号が結線テーブル34に登録される。
(1)結線情報作成手段32のメイン処理(図6参照)
結線情報作成手段32は、ユーザインタフェースを介して起動されると、結線テーブル作成処理を実行する(S101)。これにより、後述する結線テーブル作成ルーチンが起動され、アプリケーションプログラム10を除く、デバイスモデル50-1〜50-nの使用する端子名とその登録番号が結線テーブル34に登録される。
続いて結線情報作成手段32は、アドレス定義テーブル作成処理を実行する(S102)。これにより、後述するアドレステーブル作成ルーチンが起動され、結線テーブル34に登録されている端子名の物理アドレスが定義されたアドレス定義テーブル33が作成される。
次に、結線情報作成手段32は、結線テーブル34のデータ項目の並べ替え(ソート)を実行する(S103)。結線テーブル34は、最初のデバイス50-1からの端子名順に情報が登録されるため、ISSのメモリ順に並べ替えることで、デバッグが容易になる。すなわち、必要な端子名を先に抽出することで、アドレス情報の検索数を短縮することができる。但し、この処理はシミュレーションを行う上では必要ないので省略可能である。なお、別な方法として、アドレスの範囲を指定して、そこに該当する変数すべての情報を作成するなどのやり方があるが、不必要なものまで作成するので時間が長くなるなどの欠点がある。
(2)結線テーブル作成ルーチンの処理(図7参照)
結線テーブル作成ルーチンは図6のメインルーチンから呼び出されると、まず、結線テーブル34を初期化(クリア)する(S201)。そして、デバイス登録テーブル31を読み出して、登録してあるデバイスインタフェース定義テーブル51を順次読み出し、全ての読み出しが完了した場合は、処理を終了する(S202で「YES」)。
結線テーブル作成ルーチンは図6のメインルーチンから呼び出されると、まず、結線テーブル34を初期化(クリア)する(S201)。そして、デバイス登録テーブル31を読み出して、登録してあるデバイスインタフェース定義テーブル51を順次読み出し、全ての読み出しが完了した場合は、処理を終了する(S202で「YES」)。
ステップS202の処理で「NO」の場合は、結線テーブル34に、そのデバイス名を登録する(S203)。そして、読み出したデバイスインタフェース定義テーブル51の端子名を順次読み出し、全て処理した場合は、次のデバイスを処理する(S204で「YES」)。一方、ステップS204で「NO」の場合は、読み出した端子名が、結線テーブル34に未登録か、登録済みかを確認する(S205)。
ステップS205の確認の結果、結線テーブル34に読み出した端子名が未登録の場合は(S205で「YES」)、結線テーブル34の端子名にデバイスインタフェース定義テーブル51の端子名を登録する(S206)。そして、結線テーブル34のデバイス端子番号にデバイスインタフェース定義テーブル51の端子番号を登録する(S207)。
この結線テーブル34は、シミュレータ間連携部30が使用するISSとデバイスモデル間、デバイスモデル同士のデータ入出力の対応をとるためのテーブルである。上記の処理によって作成された結線テーブル34は、図9に示すように、デバイス登録テーブルのデバイス名、シミュレータ間連携部30で送受信する端子名、デバイス名に対応するデバイスの端子番号の各データから構成されている。なお、デバイス名の先頭は、ISSを登録し、その後にデバイス登録テーブルに登録されているデバイスが登録されている。図10に、結線テーブルのデータ例を示す。
(3)アドレス定義テーブル作成ルーチンの処理(図8)
アドレス定義テーブル作成ルーチンは図6のメインルーチンから呼び出されると、まず、アドレス定義テーブル33を初期化(クリア)する(S301)。続いて、結線テーブル34から端子名を順次読み出す(S302)。
アドレス定義テーブル作成ルーチンは図6のメインルーチンから呼び出されると、まず、アドレス定義テーブル33を初期化(クリア)する(S301)。続いて、結線テーブル34から端子名を順次読み出す(S302)。
そして、結線テーブル34に登録してある全ての端子の登録が完了したか否かを判定し(S303)、完了した場合は処理を終了する(S303で「YES」)。
一方、ステップS303の処理で「NO」の場合は、端子名をアプリケーションプログラム10から検索する(S304)。そして検索結果を判定する。
判定の結果、アプリケーションプログラム10に該当する端子名が存在しない場合は(S305で「NO」)、"端子名アプリケーションプログラム未登録"の履歴を保存する(S312)。一方、アプリケーションプログラム10に該当する端子名が存在する場合は(S305で「YES」)、アドレス(物理アドレス)を決定する(S306)。
アドレス決定後、マップファイル(IDEメモリマップ)22に該当する端子名が存在するか否かを判定し(S307)、該当する端子名が存在しない場合は"端子名マップ未登録"の履歴を保存する(S311)。一方、マップファイル(IDEメモリマップ)22にアドレスの登録がある場合は(S307で「YES」)、次にデータ型が一致するか判定する(S308)。
ステップ308の判定の結果、データ型が一致する場合は、結線テーブル34のCPUSim端子番号欄に当該端子番号を登録する(S309)。一方、ステップ308の判定の結果、データ型が一致しない場合は"データ型不一致"の履歴を保存する(S310)。
このアドレス定義テーブル33は、アプリケーションプログラム10が外部のデバイス50-1〜50-nに対して入出力を行うためのアドレステーブルである。上記の処理によって作成されたアドレス定義テーブル33は、図11に示すように、アプリケーションプログラム10で使用しているデバイスインタフェース定義テーブル51に登録されている端子名、アプリケーションプログラム10上のメモリの物理アドレス、アプリケーションプログラム10で使用しているデバイスインタフェース定義テーブル51に登録されている端子のデータ型、アプリケーションプログラム10のストラクチャ情報から取得したビット位置が格納されている。図12にアドレス定義テーブル33のデータ例を示す。なお、このアドレス定義テーブル33のデータ型がデバイスインタフェース定義テーブル51のデータ型と異なる場合は、警告を出力するようにしてもよい。
(4)結線テーブルの並べ替え処理(図13,図14参照)
図13,図14に、アドレス定義テーブルと結線テーブルをマイコンのISS(CPUSim)のアドレス順に並べ替える処理の一例を示す。
<A1>まずアドレス定義テーブルのデータ列の物理アドレス順への並び替えを実行する。これにより、アドレス定義テーブルにおいて登録順番号(NO.)と端子名などそれ以外のデータとにずれが生じるが、このアドレス定義テーブルの登録順番号変更に伴う結線テーブルの並び替えを実行する。具体的には、結線テーブルのCPUSim欄の番号をアドレス定義テーブルの登録順番号に合わせる。
<A2>次に、結線テーブル34の並び順をマイコンのISS(CPUSim)のアドレス順に並び替える。
図13,図14に、アドレス定義テーブルと結線テーブルをマイコンのISS(CPUSim)のアドレス順に並べ替える処理の一例を示す。
<A1>まずアドレス定義テーブルのデータ列の物理アドレス順への並び替えを実行する。これにより、アドレス定義テーブルにおいて登録順番号(NO.)と端子名などそれ以外のデータとにずれが生じるが、このアドレス定義テーブルの登録順番号変更に伴う結線テーブルの並び替えを実行する。具体的には、結線テーブルのCPUSim欄の番号をアドレス定義テーブルの登録順番号に合わせる。
<A2>次に、結線テーブル34の並び順をマイコンのISS(CPUSim)のアドレス順に並び替える。
上記の処理により、アドレス定義テーブル33と結線テーブル34とで、物理アドレス順に両端子名の項目が揃った形になる。また、各デバイス50-1〜50-nの端子番号も各テーブル33,34の端子名との対応付けを保ったまま並び替えられることになる。
図15に、真偽型(BOOL型)のアドレス定義テーブル作成処理において、マップファイル22から該当する端子名を捜し、物理アドレスとデータ型を決定する例(SCI_MODE_C)を示す。
<S1>デバイスの端子名をアプリケーションプログラムから検索する。
<S2>その端子名の所属する構造体名を決定する。
<S3>構造体の宣言からデータ型を決定し、アドレス定義テーブルに格納する。
<S4>構造名を宣言している変数名を求める。
<S5>マップファイル22より、<S4>の変数名の先頭物理アドレスを決定する。
<S6>構造体の定義から、<S1>の端子名が含むバイトアドレスとbit位置を決定し、アドレス定義テーブルに格納する。
<S1>デバイスの端子名をアプリケーションプログラムから検索する。
<S2>その端子名の所属する構造体名を決定する。
<S3>構造体の宣言からデータ型を決定し、アドレス定義テーブルに格納する。
<S4>構造名を宣言している変数名を求める。
<S5>マップファイル22より、<S4>の変数名の先頭物理アドレスを決定する。
<S6>構造体の定義から、<S1>の端子名が含むバイトアドレスとbit位置を決定し、アドレス定義テーブルに格納する。
(5)履歴ファイル
履歴ファイル35は、結線情報作成手段32がアドレス定義テーブル33と結線テーブル34を自動生成するときに発生した警告を履歴として格納するファイルである。
履歴ファイル35は、結線情報作成手段32がアドレス定義テーブル33と結線テーブル34を自動生成するときに発生した警告を履歴として格納するファイルである。
履歴ファイル35は、図16に示すように、警告の発生したデバイス登録テーブルのデバイス名、警告の発生したデバイスの端子名、警告の内容を表すコードの各データから構成されている。図17に履歴ファイル35のデータ例を示す。
以上の処理により、結線情報作成手段32は、アドレス定義テーブル33、結線テーブル34、および必要により履歴ファイル35を作成する。
そして、シミュレータ間連携部30は、アドレス定義テーブル33をもとに端子名に対応する物理アドレスを介して、結線テーブル34によって関係付けられたアプリケーションプログラム10と一又は二以上のデバイスモデル(仮想ハードウェアシミュレータ)50の入出力データの受け渡しを行う。
本実施の形態によれば、端子名を使用して、アドレス定義テーブルと結線テーブルによってアプリケーションプログラムとデバイスモデル(仮想ハードウェアシミュレータ)の各端子の接続関係および物理アドレスとの対応関係を管理できるので、デバイスモデルにアクセスする関数を作成する必要がなく工数の削減を図ることができる。
本発明はその要旨を逸脱しない範囲で、種々変形して実現することができる。たとえば、仮想ハードウェアシミュレータのデバイスインタフェース定義テーブルを予め準備しておくのではなく、結線テーブル作成時に直接端子名をユーザインタフェースから入力するようにしても良い。
1 シミュレーション装置
10 アプリケーションプログラム
20 ソフトウェアシミュレータ
22 マップファイル
30 シミュレータ間連携部
31 デバイス登録テーブル
32 結線情報作成手段
33 アドレス定義テーブル
34 結線テーブル
35 履歴ファイル
50(50-1〜50-n) 仮想ハードウェアシミュレータ(デバイスモデル)
51(51-1〜51-n) デバイスインタフェース定義テーブル
10 アプリケーションプログラム
20 ソフトウェアシミュレータ
22 マップファイル
30 シミュレータ間連携部
31 デバイス登録テーブル
32 結線情報作成手段
33 アドレス定義テーブル
34 結線テーブル
35 履歴ファイル
50(50-1〜50-n) 仮想ハードウェアシミュレータ(デバイスモデル)
51(51-1〜51-n) デバイスインタフェース定義テーブル
Claims (5)
- 命令セットシミュレータを有し、アプリケーションプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬する仮想ハードウェアシミュレータと、前記ソフトウェアシミュレータと前記仮想ハードウェアシミュレータとの間の信号の受け渡しを行うシミュレータ間連携部と、を備えたシミュレーション装置であって、
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名が割り付けられ、複数の仮想ハードウェアシミュレータが用いられる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名が割り付けられた結線テーブルとを作成すると共に、アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを作成する結線情報作成手段を備え、
前記シミュレータ間連携部は、前記アドレス定義テーブルをもとに前記端子名に対応する物理アドレスを介して、前記結線テーブルで関係付けられたアプリケーションプログラムと、一又は二以上の仮想ハードウェアシミュレータの入出力データの受け渡しを行うことを特徴とするシミュレーション装置。 - 前記結線情報作成手段は、アプリケーションプログラムのストラクチャ情報における端子名の並び順をもとに、前記アドレス定義テーブルにおいて、該端子名と物理アドレス中のビット位置を関係付けることを特徴とする請求項1に記載のシミュレーション装置。
- 前記結線情報作成手段は、前記アドレス定義テーブルにおいて物理アドレスを昇順または降順にソートすると共に、前記結線テーブル中のデータを、前記アドレス定義テーブルにおける端子名の順番にソートすることを特徴とする請求項1または2に記載のシミュレーション装置。
- 前記結線テーブルにおいて、アプリケーションプログラムあるいは一又は二以上の仮想ハードウェアシミュレータのいずれかの入出力端子において、他のいずれの入出力端子にも接続されていない端子が存在するか否かを判定し、存在する場合はアラームを出力することを特徴とするシミュレーション装置。
- 命令セットシミュレータを有し、アプリケーションプログラムのシミュレーションを実行するソフトウェアシミュレータと、周辺装置などのハードウェアを模擬する仮想ハードウェアシミュレータと、前記ソフトウェアシミュレータと前記仮想ハードウェアシミュレータとの間の信号の受け渡しを行うシミュレータ間連携部と、を備えたシミュレーション装置における接続情報生成方法であって、
前記仮想ハードウェアシミュレータの入出力ごとに結線すべき前記アプリケーションプログラムの入出力の端子名と同一の端子名を割り付け、複数の仮想ハードウェアシミュレータを用いる場合は、結線すべき仮想ハードウェアシミュレータの入出力に同一の端子名を割り付けて結線テーブルを生成ステップと、
アプリケーションプログラムの入出力の端子名を含むストラクチャ情報、および当該ストラクチャ情報の識別情報と物理アドレスとを対応付けたマップファイルをもとに、前記端子名ごとに物理アドレスを関連付けたアドレス定義テーブルを生成するステップと、を含むことを特徴とするシミュレーション装置における接続情報生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016158982A JP2018026067A (ja) | 2016-08-12 | 2016-08-12 | シミュレーション装置および同装置における接続情報生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016158982A JP2018026067A (ja) | 2016-08-12 | 2016-08-12 | シミュレーション装置および同装置における接続情報生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018026067A true JP2018026067A (ja) | 2018-02-15 |
Family
ID=61195281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016158982A Pending JP2018026067A (ja) | 2016-08-12 | 2016-08-12 | シミュレーション装置および同装置における接続情報生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018026067A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7410004B2 (ja) | 2020-09-30 | 2024-01-09 | 株式会社日立ソリューションズ | シミュレーション方法およびシミュレーションプログラム |
-
2016
- 2016-08-12 JP JP2016158982A patent/JP2018026067A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7410004B2 (ja) | 2020-09-30 | 2024-01-09 | 株式会社日立ソリューションズ | シミュレーション方法およびシミュレーションプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189479B (zh) | 一种用于处理器指令集的并行自动化验证方法 | |
CN109634869B (zh) | 二进制翻译中间表示正确性测试方法及装置 | |
JP2003323463A (ja) | システムlsi開発環境生成方法及びそのプログラム | |
US20070061641A1 (en) | Apparatus and method for generating test driver | |
CN103678115B (zh) | 在混合模式程序中检测源代码差错的位置的设备和方法 | |
JPH11513512A (ja) | ディジタル信号プロセッサの製造方法 | |
CN109564540A (zh) | 用于jit编译器的调试工具 | |
JP2017084082A (ja) | シミュレーション装置、試験シナリオファイル作成方法、及び試験シナリオファイルを用いた試験方法 | |
US10830818B2 (en) | Ensuring completeness of interface signal checking in functional verification | |
WO2017141893A1 (ja) | ソフトウェア分析装置及びソフトウェア分析方法 | |
CN102722438B (zh) | 一种内核调试的方法和设备 | |
JP6763153B2 (ja) | ハードウェア/ソフトウェア協調検証装置およびハードウェア/ソフトウェア協調検証方法 | |
US10067854B2 (en) | System and method for debugging software executed as a hardware simulation | |
JP2018026067A (ja) | シミュレーション装置および同装置における接続情報生成方法 | |
JP6717140B2 (ja) | 解析プログラム、解析方法、及び解析装置 | |
CN112232003B (zh) | 对设计进行仿真的方法、电子设备及存储介质 | |
US6813751B2 (en) | Creating standard VHDL test environments | |
Jakubík | Cortex-m simulator | |
JP2013020425A (ja) | オープンソースソフトウェアを利用したハードウェア・ソフトウェア協調検証方法 | |
CN112380133A (zh) | 一种指令集模拟器利用功能库仿真的方法及装置 | |
JP5056493B2 (ja) | 仮想ソフトウェア生成装置 | |
CN114169287B (zh) | 生成验证环境的连接示意图的方法、电子设备及存储介质 | |
JP2002014847A (ja) | プログラム検査装置、プログラム検査方法及び検査を行うためのプログラムを格納した記録媒体 | |
JP3745968B2 (ja) | 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体 | |
CN101615209B (zh) | 基于内存监视的处理器验证方法 |