JP2010244377A - シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及び、シミュレーションシステム - Google Patents
シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及び、シミュレーションシステム Download PDFInfo
- Publication number
- JP2010244377A JP2010244377A JP2009093565A JP2009093565A JP2010244377A JP 2010244377 A JP2010244377 A JP 2010244377A JP 2009093565 A JP2009093565 A JP 2009093565A JP 2009093565 A JP2009093565 A JP 2009093565A JP 2010244377 A JP2010244377 A JP 2010244377A
- Authority
- JP
- Japan
- Prior art keywords
- code
- register
- register operation
- simulation
- operation code
- 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.)
- Withdrawn
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】オブジェクトコードで提供される制御プログラムを利用して効率的にシミュレーション用の制御プログラムに変換可能なシミュレーションプログラム生成装置を提供する。
【解決手段】マイクロコンピュータ(マイコン)に移植されるオブジェクトコードを逆アセンブルしてアセンブラコードを生成する逆アセンブル実行部と、アセンブラコードからマイコンのレジスタ操作コードを自動抽出するレジスタ操作コード抽出部と、アセンブラコードを逆コンパイルしてコンパイラコードを生成する逆コンパイル部と、コンパイラコードに、レジスタ操作コードにより仮想レジスタがアクセスされるように模擬する仮想レジスタ操作コードを付加するレジスタ操作コード付加部と、仮想レジスタ操作コードが付加されたコンパイラコードを汎用コンピュータで実行可能な制御プログラムに変換するクロスコンパイル部を含む。
【選択図】図4
【解決手段】マイクロコンピュータ(マイコン)に移植されるオブジェクトコードを逆アセンブルしてアセンブラコードを生成する逆アセンブル実行部と、アセンブラコードからマイコンのレジスタ操作コードを自動抽出するレジスタ操作コード抽出部と、アセンブラコードを逆コンパイルしてコンパイラコードを生成する逆コンパイル部と、コンパイラコードに、レジスタ操作コードにより仮想レジスタがアクセスされるように模擬する仮想レジスタ操作コードを付加するレジスタ操作コード付加部と、仮想レジスタ操作コードが付加されたコンパイラコードを汎用コンピュータで実行可能な制御プログラムに変換するクロスコンパイル部を含む。
【選択図】図4
Description
本発明は、シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及び、シミュレーションシステムに関する。
機器を制御するためのマイクロコンピュータに組み込まれる制御プログラムを先行開発する場合、実在しない機器をコンピュータで模擬演算するシミュレータを用いて開発中の制御プログラムのロジック評価等が行なわれている。
例えば、車両のエンジンやブレーキ等を制御するマイクロコンピュータが組み込まれたECU(Electronic Control Unit)の制御プログラムを実際の車両に先行して開発する場合、車両の動作をコンピュータで模擬演算する車両シミュレータとECUを接続して開発中の制御プログラムのロジック評価等を行なうシミュレーションシステムが構築されている。
特許文献1には、このようなシミュレーションシステムとして、HILS(Hardware In the Loop Simulation)システムやSILS(Software In the Loop Simulation)システムが開示されている。
HILSシステムは、実ECUと車両シミュレータを接続して開発中の制御プログラムを検証するシステムであり、SILSシステムは、実ECUに替えてECUをコンピュータで模擬するECUシミュレータと車両シミュレータをパーソナルコンピュータ等の汎用コンピュータ上に構築して開発中の制御プログラムを検証するシステムである。
HILSシステムは、図1に示すように、ECUから出力された電気信号をI/Fボードを介して論理信号に変換し、車両動作を模擬するプログラムを実行する高性能なCPUにその論理信号を入力して演算処理し、演算結果である論理信号を再びI/Fボードを介して電気信号に変換してECUにフィードバックする一連の動作を所定周期で実行する周期駆動型のシステムで、ECU、I/Fボード、高性能CPU等のハードウェアによるフィードバックループが構築されている。
SILSシステムは、図2に示すように、ECUを構成するマイクロコンピュータや周辺回路の動作を模擬するプログラムを高性能なCPUで実行する模擬ECUを構築し、模擬ECUから出力された論理信号を、I/Fボードを模擬するI/Fモデルを介して車両動作を模擬するプログラムを実行する高性能なCPUに入力して演算処理し、演算結果である論理信号を再びI/Fモデルを介して模擬ECUにフィードバックする一連の動作を所定周期で実行する周期駆動型のシステムで、ECU、I/Fボード、車両の全てがソフトウェアで実現され、ソフトウェアによるフィードバックループが構築されている。
さらに、SILSシステムでは、ECUのハードウェアや車両モデルのI/Fボードを詳細に模擬するプログラムに替えて、制御プログラムを実行するECUに組み込まれたマイクロコンピュータの論理演算部を模擬する制御系モジュールと、車両の動作を模擬する車両モデルでなる被制御系モジュールを構築し、夫々で発生した所定のイベントを時系列的に管理して、イベント毎に模擬ECUと車両モデルをステップ的に動作させるシステム管理モジュールを備えた演算周期が変動するイベント駆動型のシステムも構築されている。
日経BP社、2008.5.21発行、カー・エレクトロニクスのすべて2008、多様化するHILS(244頁〜249頁)
周期駆動型のSILSシステムでは、マイクロコンピュータの動作を当該マイクロコンピュータのCPUで実行される命令セットレベルまで模擬するため、ターゲットとなるマイクロコンピュータのオブジェクトコードをそのまま移植できるという使い勝手の良さがあるものに、シミュレータに如何に高性能なCPUが搭載されていても、マイクロコンピュータの命令セットレベルまで模擬するためにオーバヘッドが大きくなり、実時間よりもシミュレーション時間が長くなるという不都合がある。
そこで、イベント駆動型のSILSシステムが注目されているが、命令セットレベルに対応してマイクロコンピュータの各種のレジスタレベルまで模擬するものではないため、制御プログラムのオブジェクトコードをそのまま移植することができず、予め評価用の制御プログラムを開発する段階で、マイクロコンピュータのレジスタをアクセスする部位に仮想レジスタを割り付けて、当該仮想レジスタをアクセスするドライバ関数を付加した制御プログラムを構築する必要があった。
しかし、近年、ターゲットとなるマイクロコンピュータに対応した制御プログラムが複数のモジュールに分割されて、互いに異なる多くの部署や外部組織で個別に開発されるのが常であり、そのような場合にSILSシステムに移植するための制御プログラムを各部署で個別に開発するのは極めて困難な状況である。
特に外部組織で開発されたモジュールは、ターゲットとなるマイクロコンピュータのオブジェクトコードと仕様書のみ提示される場合も多く、そのような場合、仕様書に基づいて各モジュールに対応する仮の制御プログラムを作成して、イベント駆動型のSILSシステムで動作可能な制御プログラムに統合しなければならなかった。
そのため、仮の制御プログラムが実際の制御プログラムを確実に再現している保証がないため、シミュレーションの精度に問題が生じる虞があるばかりでなく、そのための仮の制御プログラムの作成工数が増大するという問題があった。
本発明の目的は、上述した従来の問題点に鑑み、オブジェクトコードで提供される制御プログラムを利用して効率的にシミュレーション用の制御プログラムに変換可能なシミュレーションプログラム生成装置、シミュレーションプログラム生成方法を提供するとともに、そのようなシミュレーションプログラム生成方法で生成されたシミュレーションプログラムで実行されるシミュレーションシステムを提供する点にある。
上述の目的を達成するため、本発明によるシミュレーションプログラム生成装置の特徴構成は、ターゲットとなるマイクロコンピュータのCPUで実行される制御プログラムを、シミュレーション用の汎用コンピュータで実行可能な形式のプログラムに変換するシミュレーションプログラム生成装置であって、前記マイクロコンピュータに移植されるオブジェクトコードを逆アセンブルしてアセンブラコードを生成する逆アセンブル実行部と、前記逆アセンブル実行部で得られたアセンブラコードに含まれ、前記CPUにより前記マイクロコンピュータのレジスタをアクセスするレジスタ操作コードを自動抽出するレジスタ操作コード抽出部と、前記アセンブラコードを逆コンパイルして汎用のコンパイラコードを生成する逆コンパイル部と、前記逆コンパイル部で得られたコンパイラコードに、前記レジスタ操作コード抽出部で抽出されたレジスタ操作コードにより当該レジスタに替えて前記汎用コンピュータ上で定義される仮想レジスタがアクセスされるように模擬する仮想レジスタ操作コードを付加するレジスタ操作コード付加部と、前記レジスタ操作コード付加部で前記仮想レジスタ操作コードが付加されたコンパイラコードを前記汎用コンピュータで実行可能な制御プログラムに変換するクロスコンパイル部を含む点にある。
上述の構成によれば、レジスタ操作コード抽出部により、逆アセンブル実行部で得られたアセンブラコードからレジスタ操作コードが自動抽出され、逆コンパイル部によりアセンブラコードが逆コンパイルされた汎用のコンパイラコード上で、レジスタ操作コード付加部により仮想レジスタ操作コードが付加されるため、提供されたオブジェクトコードに基づいて、シミュレーションに必要な制御プログラムの編集が極めて効率的且つ精度よく行われるようになる。
以上説明した通り、本発明によれば、オブジェクトコードで提供される制御プログラムを利用して効率的にシミュレーション用の制御プログラムに変換可能なシミュレーションプログラム生成装置、シミュレーションプログラム生成方法を提供するとともに、そのようなシミュレーションプログラム生成方法で生成されたシミュレーションプログラムで実行されるシミュレーションシステムを提供することができるようになった。
以下に、本発明によるシミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及び、シミュレーションシステムの実施形態について説明する。
図3に示すように、所定の処理速度で制御システムを模擬演算するシミュレーション実行部SMと、シミュレーション実行部SMで実行されるシミュレーションを管理する操作表示部HSTがLANで接続されてシミュレーションシステムが構成されている。
シミュレーション実行部SM、及び、操作表示部HSTは、夫々所定のオペレーティングシステム(以下、「OS」と記す。)の管理下でシミュレーション用のソフトウェアが実行される二台のパーソナルコンピュータPCによって実現されている。
図4に示すように、シミュレーション実行部SMは、評価対象である車両の制御ソフトウェアを実行する制御系モジュール6と、当該制御ソフトウェアにより制御される車両を模擬する被制御系モジュール7と、制御系モジュール6または被制御系モジュール7の何れかで発生するイベントを管理し、時系列的に発生するイベントに基づいて制御系モジュール6または被制御系モジュール7を駆動するシステム管理モジュール5を備えたイベントドリブン型のSILSシステムである。
各モジュール5,6,7は、所定のOS11上で動作するパーソナルコンピュータPCのCPUボード10上のメモリに格納されたシミュレーション用のソフトウェア及び制御ソフトウェアと、CPUタイマ12と、CPUタイマ12に従ってそれらソフトウェアを実行する高性能CPUにより具現化される。
システム管理モジュール5は、制御系モジュール6または被制御系モジュール7に関連して発生するイベントの起動時刻を設定管理するシステムタイマ52と、制御系モジュール6と被制御系モジュール7との間で入出力データ(IOデータ)を遣り取りするための共有メモリ51とを備え、システムタイマ52の値に基づいて各イベントに対応する制御系モジュール6または被制御系モジュール7の対応ブロックを起動する。
制御系モジュール6と被制御系モジュール7との間の入出力情報の受け渡しは、システム管理モジュール5を経由して行われる。制御系モジュール6とシステム管理モジュール5との間の入出力情報には、“起動(イベント時刻付)”や、“IOデータ(時刻付)”や、“IOデータ”が含まれる。システム管理モジュール5と被制御系モジュール7の間の入出力情報には、“起動(時刻付)”や、“IOデータ(時刻付)”や、“IOデータ”が含まれる。
システムタイマ52は、当該シミュレーション実行部SMの基準時刻を規定するもので、システム管理モジュール5により起動制御される制御系モジュール6及び被制御系モジュール7の所定の割込み処理ブロックは、システムタイマ52に基づいて動作する。つまり、制御系モジュール6と被制御系モジュール7の夫々はシステムタイマ52に基づいて同一の仮想時間上で動作する。
制御系モジュール6と被制御系モジュール7には、共有メモリ51との間で、各イベントに関する時刻付のIOデータを書き込みまたは読み出す制御系モジュール側IOドライバ61及び被制御系モジュール側IOドライバ71を備えている。
例えば、制御系モジュール側IOドライバ61から共有メモリ51に書き込まれる点火信号や燃料噴射信号等のパルス信号や、被制御系モジュール側IOドライバ71から共有メモリ51に書き込まれるエンジン回転数や速度センサ信号等のパルス信号等のタイミング依存のIOデータは、システムタイマ52の時刻と関連付けられて管理される(図中点線枠13)。
また、例えば、制御系モジュール側IOドライバ61及び被制御系モジュール側IOドライバ71の双方において共有メモリ51に読み書きされる、インテリジェントICとの通信等におけるシリアル通信データや、IGスイッチ、スタータスイッチやエアコンのマグネットクラッチ等の入出力データ等のタイミング非依存のIOデータは、システムタイマ52の時刻と関連付けられることなく管理される(図中点線枠14)。
つまり、システム管理モジュール5は、制御系モジュール6または被制御系モジュール7から共有メモリ52に書き込まれたIOデータに基づいて、イベントの要求を検出すると、それらのイベント要求を集約してシステムタイマ52により更新される時刻を各イベントに設定して共有メモリ51に蓄積する。
ここで、制御系モジュール6または被制御系モジュール7のIOドライバを介して共有メモリ52に書き込まれるIOデータは、システム管理モジュール5により管理されるイベントに関するデータのみならず、制御系モジュール6と被制御系モジュール7の間で制御演算または模擬演算に必要なIOデータも含まれる。
詳述すると、図5に示すように、共有メモリ51は、仮想IOレジスタ54とイベントリスト53を備えて構成されている。
仮想IOレジスタ54は、IOデータを記憶する外部IOデータ部56と、当該IOデータの入出力対象となる割込み処理ブロックに対応する割込みフラグを管理する割込管理部55を備えている。
外部IOデータ部56に設定されるIOデータは、制御系モジュール6または被制御系モジュール7が組み込まれる制御装置の実機(以下、「実機装置」と記す。)に対して入出力されるパルス信号やシリアル通信データ等の制御信号を模擬して構成され、パルス信号のエッジ発生時刻やエッジ周期、あるいは、電圧値や電流値等の当該制御信号が、実機装置の入出力ポートで解析された後にレジスタ等の記憶領域に設定される電子データとして構成されている。
イベントリスト53は、制御系モジュール6または被制御系モジュール7へのIOデータの入出力要求を示すイベント毎に、イベントの起動時刻と、IOデータを入力または出力することを示すイベント内容と、当該IOデータを外部IOデータ部56に設定した割込み処理ブロックや当該IOデータの種類等、IOデータ及びイベントの要求元に関連する情報を示す取得元情報と、イベント発生に関連して起動対象の割込み処理ブロックを示すアクション情報と、を記憶するように構成されている。
システム管理モジュール5は、システムタイマ52の値に基づいて、イベントリスト53から直近の起動時刻を示すイベントを抽出し、当該イベントのアクション情報に基づいて、割込管理部55に設定された割込みフラグに対応する割込み処理ブロックを起動対象とし、当該割込み処理ブロックに対応するIOドライバ61−1,71を起動して、当該割込み処理ブロックを起動したことを示す割込みフラグを設定する。また、システム管理モジュール5は、当該イベントの取得元情報に基づいて、起動した割込み処理ブロックに対して入出力するIOデータを外部IOデータ部56から取得し、当該取得したIOデータを当該IOドライバ61−1,71に入力する。
図5に示すように、制御系モジュール6は、仮想内部レジスタ63と、IOドライバ61と、割込コントローラ62と、制御ソフトウェア68と、を備えている。
仮想内部レジスタ63は、制御系モジュール6が組み込まれるECUのマイクロコンピュータ(以下、「実機マイコン」と記す。)に備えられたRAM、不揮発性メモリ、及び入出力ポート等に設けられたECU内部のレジスタを模擬して、CPUボード10上のメモリに構成されている。
仮想内部レジスタ63は、割込み処理ブロックの処理内部で利用するデータの記憶領域としてだけでなく、割込み処理ブロックから制御系モジュール6の外部に対するIOデータの記憶領域としても利用されるように構成されている。
IOドライバ61−1は、割込コントローラ62若しくは仮想内部レジスタ63と共有メモリ51との間に備えられ、割込み処理ブロックの実行時に実機マイコンに備えられた入出力ポートが実行する処理を模擬して構成されている。
具体的には、IOドライバ61−1は、システム管理モジュール5により起動され、さらに、外部IOデータ部56から取得したIOデータが入力されると、所定の割込み処理ブロックを起動するよう割込みコントローラ62へ要求する。また、IOドライバ61−1は、入力されたIOデータを仮想内部レジスタ63に設定するとともに、割込管理部55の当該割込み処理ブロックに対応する割込みフラグをリセットする。
さらに、IOドライバ61−1は、後述する割込み処理ブロックからの制御系モジュール6の外部に対するIOデータの出力要求に基づいて、仮想内部レジスタ63から当該IOデータを取得し、当該取得したIOデータを外部IOデータ部56に設定するとともに、当該IOデータの出力先の処理ブロックに対応する割込みフラグを割込管理部55に設定する。
IOドライバ61−1は、実機マイコンの入出力ポートの入出力処理に対応して、例えば、制御系モジュール6の外部からのパルス入力信号の入力処理を模擬するキャプチャ部64、制御系モジュール6の外部へのパルス出力信号の出力処理を模擬するコンペア部65、例えば外部のインテリジェントICとシリアル通信データの通信を行う通信部66、例えばIGスイッチ、スタータスイッチやエアコンのマグネットクラッチ等から、入力されるデータであればデータを読み込み、出力されるデータであればデータを出力するデータの入出力処理を兼用するIOポート部67等を備えている。
割込コントローラ62は、実機マイコンに備えられたCPUにおける割込み処理制御を模擬して構成されている。具体的には、割込コントローラ62は、IOドライバ61−1からの割込み処理ブロックの起動要求に基づいて、制御ソフトウェア68に含まれる要求された割込み処理ブロックを起動するように構成されている。
IOドライバ61−2は、制御ソフトウェア68と仮想内部レジスタ63の間に備えられ、実機マイコンに備えられたCPUにより実機マイコンに備えられたRAM、不揮発性メモリ及び入出力ポート等に設けられたECU内部のレジスタをアクセスするレジスタ操作処理を模擬して構成されている。
具体的には、IOドライバ61−2は、割込み処理ブロックからのデータの入力要求に基づいて起動され、当該要求された入力データを仮想内部レジスタ63から取得する。また、IOドライバ61−2は、割込み処理ブロックからのデータの出力要求に基づいて起動され、割込み処理ブロックの処理内部で利用するデータを仮想内部レジスタ63に記憶する。
制御ソフトウェア68は、実機マイコンに備えられたCPUで稼働可能なオブジェクトコードで構成されている制御プログラムを模擬して構成され、複数の割込み処理ブロックを備え、CPUボード10上のCPUで稼働可能なオブジェクトコードで構成されている。
割込み処理ブロックが制御系モジュール6の外部へIOデータを出力する場合、割込み処理ブロックは、IOドライバ61−2を介して仮想内部レジスタ63へ当該IOデータを設定した後、当該IOデータの出力先の割込み処理ブロックへの出力処理を模擬するIOドライバ61−1を起動し、当該IOデータを出力先の割込み処理ブロックへ出力するよう要求する。
IOドライバ71は、「ハードウェアモデル」とも呼ばれ、制御系モジュール6に備えられたIOドライバ61−1と同様に、所定の処理ブロックの実行時に、被制御系モジュール7に対応する実機装置に備えられた入出力ポートが実行する入出力処理を模擬して構成されている。
具体的には、IOドライバ71は、システム管理モジュール5により起動され、さらに、外部IOデータ部56から取得したIOデータが入力されると、割込管理部55の当該入力ポートに対応する割込みフラグをリセットし、所定の処理ブロックを起動する。
さらに、IOドライバ71は、処理ブロックの実行中に、例えば、エンジン回転数や速度センサ信号等、制御系モジュール6に対して出力される制御信号を模擬したIOデータを取得し、当該IOデータを外部IOデータ部56に設定するとともに、当該IOデータの出力先の割込み処理ブロックに対応する割込みフラグを割込管理部55に設定する。
IOドライバ71は、被制御系モジュール7が示す実機装置に備えられた入出力ポートの入出力処理に対応して、例えば、制御系モジュール6のキャプチャ部64に対するパルス信号の出力処理を模擬するパルス出力部72−1、制御系モジュール6のコンペア部65からのパルス信号の入力処理を模擬するパルス入力部72−2、例えば外部のインテリジェントICとシリアル通信データの通信を行うシリアル通信部73−1、例えばIGスイッチ、スタータスイッチやエアコンのマグネットクラッチ等から、出力するデータであればデータを書き込み、入力されるデータであればデータを入力するデータの入出力処理を兼用するIOポート部73−2等を備えている。
即ち、車両を制御するECUと、ECUにより制御される例えばエンジン等の車両側装置により構成される制御システムがシミュレーション実行部SMで模擬される。尚、シミュレーション実行部SMで模擬される制御システムは、エンジンシステムに限るものではなく、ブレーキシステム、変速機システム等の車両を構成する任意の機能ブロックが対象となる。
以下、上述の構成に基づいて、シミュレーション実行部SMの動作例を、図6に示すタイミングチャートに基づいて説明する。
図6の(a),(b),(c),(d)の上下の各欄は、夫々システム管理モジュール5、制御系モジュール6、被制御系モジュール7、システムタイマ52の動作を示し、横軸は時間軸として、各イベントに対応して時刻t0,t1,・・・,t5が付されている。さらに、各イベントの内容が記憶されたイベントリスト53を図7に示す。
システム管理モジュール5は、先ず、イベントリスト53に格納された直近のイベントを抽出すると、システムタイマ52の時刻t0で、内部で1msec.インタバルの割込みイベントを発生させる。
システム管理モジュール5は、イベントの取得元情報に基づいて、1msec.を示す値を外部IOデータ部56に設定し、イベントのアクション情報に基づいて、制御系モジュール6のインタバル割込み処理ブロックに対応する割込みフラグ及び被制御系モジュール7のメイン処理ブロックに対応する割込みフラグを割込管理部55に設定する。
尚、制御系モジュール6及び被制御系モジュール7は、それぞれの実機装置において、不定期に入出力ポートに対して入出力される割込み処理要求に応じるために、定時処理ブロックを所定周期で繰り返し実行し、各定時処理ブロックの実行後のタイミングと同期して、割込み処理要求に応じるように構成されている。この構成を模擬して、制御系モジュール6及び被制御系モジュール7では、各定時処理ブロックを模擬した、上述のインタバル割込み処理ブロックが実行される。以後、システム管理モジュール5では、後に発生する他のイベントと1msec.インタバルの割込みイベントが時系列的にスケジューリングされ、イベントリスト53にスケジューリングしたデータが格納される。
図6及び図7に戻り、上述の割込みイベントに応じて、システム管理モジュール5は、インタバル割込み処理ブロックに対応したIOドライバ61−1及びメイン処理ブロックに対応したIOドライバ71を起動し、外部IOデータ部56に設定されたIOデータをIOドライバ61−1に入力し、インタバル割込み処理ブロック及びメイン処理ブロックを起動したことを示す割込みフラグを割込管理部55に設定する。
起動されたIOドライバ61−1は、システム管理モジュール5から入力された1msec.を示すIOデータを制御系モジュール6の仮想内部レジスタ63に設定し、割込コントローラ62にインタバル割込み処理ブロックの起動を要求するとともに、割込管理部55に設定されたインタバル割込み処理ブロックに対応する割込みフラグをリセットする。割込コントローラ62は、IOドライバ61−1からの起動要求に基づいて、インタバル割込み処理ブロックを起動する。
一方、起動されたIOドライバ71は、割込管理部55に設定されたメイン処理ブロックに対応する割込みフラグをリセットして、メイン処理ブロックを起動する。
制御系モジュール6が1msec.のインタバル割込み処理ブロックの起動中に、図6のa1のタイミングで、IOドライバ61−1を介して外部IOデータ部56に何らかのデータ(例えばIOパルス)を設定し、当該データの出力先の処理ブロックに対応する割込みフラグを割込管理部55に設定すると、システム管理モジュール5はイベントリスト53に当該データの出力に対応するイベントを追加する。
被制御系モジュール7でのメイン処理においても、図6のa2のタイミングで、IOドライバ71を介して外部IOデータ部56に何らかのデータ(例えばIOパルス)を設定し、当該データの出力先の割込み処理ブロックに対応する割込みフラグを割込管理部55に設定すると、システム管理モジュール5はイベントリスト53に当該データの出力に対応するイベントを追加する。
時刻t0での被制御系モジュール7によるメイン処理にて、外部IOデータ部56にパルス発生時刻を含む何らかの出力データが設定され、割込管理部55に制御系モジュール6の「パルス1出力」処理ブロックに対応する割込みフラグが設定されることにより、システム管理モジュール5が被制御系モジュール7からの「パルス1出力」要求を受けると、これに対応するパルス発生時刻を起動時刻とした、被制御系モジュール7に対する「パルス1入力」イベントをイベントリスト53に設定する。
システム管理モジュール5は、イベントリスト53から当該設定したイベントを直近のイベントとして抽出した場合に、イベントの起動時刻、例えば時刻t1で、「パルス1入力」イベントを発生させる。
システム管理モジュール5は、図6のb1のタイミングで、発生させた当該「パルス1入力」イベントのアクション情報に基づいて、パルス1出力ブロックに対応するIOドライバ61−1を起動して、当該パルス1出力ブロックの要求時に外部IOデータ部56に設定されたパルス発生時刻及び何らかの出力データ(例えば、エンジン回転数)をIOドライバ61−1に入力し、パルス1出力ブロックを起動したことを示す割込みフラグを割込管理部55に設定する。
当該起動されたIOドライバ61−1は、パルス1出力ブロックの起動を割込コントローラ62に要求するとともに、入力されたIOデータを仮想内部レジスタ63に設定し、割込管理部55に設定されたパルス1出力ブロックに対応する割込みフラグをリセットする。
割込コントローラ62は、IOドライバ61−1の要求に応じて、パルス1出力ブロックを起動する。
パルス1出力ブロックは、IOドライバ61−2を介して仮想内部レジスタ63からIOデータを取得し、システムタイマ52のタイマ値を基に演算処理を実行する。ここで、演算処理とは、例えば、被制御モジュール7からのIOデータとして取得したエンジン回転数を利用し、その回転数に応じた次回タイミングの算出を行うことである。
尚、演算処理中に何らかのデータを外部に対して出力する場合は、IOドライバ61−2と、仮想内部レジスタ63と、IOドライバ61−1を介して外部IOデータ部56に当該出力するデータを設定し、割込管理部55に出力先の処理ブロックに対応する割込みフラグを設定する。
システム管理モジュール5が、時刻t1での制御系モジュール6のパルス出力処理による割込管理部55の更新により「パルス2出力」要求を受けると、更新したシステムタイマ52のタイマ値(図6のタイミングa3)をパラメータとして、これに対応するパルス発生時刻を起動時刻とした「パルス2出力」イベントをイベントリスト53に設定する。システム管理モジュール5は、例えば時刻t2にて、制御系モジュール6による「パルス2出力」処理ブロックを起動する。
一方、システム管理モジュール5が被制御系モジュール7から「パルス3出力」要求を受けると、これに対応するパルス発生時刻を起動時刻とした、被制御系モジュール7に対する「パルス3入力」イベントをイベントリスト53に設定する。システム管理モジュール5は、例えば時刻t3にて、制御系モジュール6による「パルス3入力」処理ブロックを起動する。
次にシステム管理モジュール5が制御系モジュール6から「パルス4出力」要求を受けると、これに対応するパルス発生時刻を起動時刻とした「パルス4出力」イベントをイベントリスト53に設定する。システム管理モジュール5は、例えば時刻t4にて、制御系モジュール6による「パルス4出力」処理ブロックを起動する。
時刻t5では、通信仕様に応じてシステム管理モジュール5内部で生成した「受信イベント」が発生すると、これに応答して制御系モジュール6は、それに対応した「受信」処理ブロックを起動する。
このようにイベントリスト53にイベントが蓄積され、蓄積されたイベントに基づいて時系列的に制御系モジュール6または被制御系モジュール7の該当する割込み処理ブロックが起動されることによりシミュレーションが進められる。
ここで、システムタイマ52で規定される制御系モジュール6または被制御系モジュール7における処理中の時間は零であり、例えば、時刻t0のステップでは、時間Tは零となっており、イベントの発生の無い区間は処理をスキップしながら、時系列で順番にイベントが実行され、イベントに設定された時刻により時間がステップ状に進むように構成されているが、各イベントに対応した割込み処理ブロックが起動される制御系モジュール6または被制御系モジュール7ではCPUタイマ12によりイベントの実処理時間が計時される。
図8に示すように、システム管理モジュール5は、イベントリスト53から直近のイベントを抽出し(S11)、抽出したイベントの起動時刻にシステムタイマの値を更新し(S12)、当該システムタイマ時刻で更新されるIOデータをIOドライバ61,71に設定して(S13)、発生するイベント情報(割込み処理ブロックに対応する割込みフラグ等)を設定することにより(S14)、対応する制御系モジュール6または被制御モジュール7の割込み処理ブロックを起動する(S15)。
制御系モジュール6または被制御モジュール7の割込み処理ブロックは所定の演算処理を実行して、システム管理モジュール5に対してIO情報の更新、イベントリスト53の更新を要求する(S16)。その後、処理が実行されたイベントをイベントリスト53から削除する(S17)。
図4に示すように、操作表示部HSTは、上述したシミュレーション実行部SMに対してシミュレーション条件を出力するとともに、シミュレーション実行部SMからシミュレーション結果を入力して、制御系モジュール6で実行される制御プログラムの評価を行うための装置である。
詳述すると、図4及び図5に示すように、操作表示部HSTは、シミュレーション実行部SMと同期して動作し、シミュレーション実行部SMにシミュレーション条件を引き渡すとともに、シミュレーション実行部SMからシミュレーション結果を受け取る入出力モジュール81と、シミュレーション条件を入力する操作画面、またはシミュレーション結果を示す出力画面を生成して表示部である液晶表示装置にGUI表示するユーザインタフェースモジュール(以下、「GUIモジュール」と記す。)82を備えている。
GUIモジュール82は、シミュレーションシステムの起動時に、シミュレーション実行部SMにより実行されるシミュレーションの環境条件をオペレータが設定するための環境操作画面を生成して表示部に表示し、環境操作画面を介して環境条件が設定されると、シミュレーションの起動や停止、さらにはシミュレーション条件を設定する操作画面や、シミュレーション実行部SMにより実行されたシミュレーション結果を示す出力画面を生成して表示部に表示する。
環境操作画面では、シミュレーション実行部SMの環境条件が設定される。例えば、システム管理モジュール5で管理されるイベントの選択、共有メモリ51を介して制御系モジュール6と被制御系モジュール7との間で遣り取りされるIOデータの選択及びメモリマップの定義等である。
環境操作画面で設定された環境条件は、入出力モジュール81を介してシミュレーション実行部SMに送信され、システム管理モジュール5を介して制御系モジュール6、被制御系モジュール7の夫々に配信され、シミュレーション実行部SMの初期条件が設定される。
図3に示すように、操作画面は、シミュレーションの起動スイッチや停止スイッチ、さらにはイグニッションスイッチ、アクセルペダル操作スイッチ、変速レバー操作スイッチ等のエンジンを操作するために必要な操作スイッチや、スピードメータ、タコメータ、水温計、電圧計等のエンジン状態をモニタする計器がグラフィック表示される操作画面である。
操作画面を介してオペレータにより設定された操作情報は、入出力モジュール81を介してシミュレーション実行部SMに送信され、システム管理モジュール5で対応するイベントが生成されて、対応するイベントが制御系モジュール6または被制御系モジュール7で処理される。
シミュレーション実行部SMにより実行されたシミュレーション結果が、システム管理モジュール5を介して操作表示部HSTの入出力モジュール81に送信され、GUIモジュール82に引き渡される。
さらに、図4に示すように、CPUボード10上には、上述のシミュレーションシステムを構成するシミュレーションプログラムの開発を行うプログラム開発部DMが備えられている。プログラム開発部DMは、逆アセンブル実行部15と、レジスタ操作コード抽出部16と、逆コンパイル部17と、レジスタ操作コード付加部18と、クロスコンパイル部19と、を備えている。
逆アセンブル実行部15は、実機マイコンに移植されるオブジェクトコードを逆アセンブルしてアセンブラコードを生成するよう構成されている。実機マイコン提供元の外部組織等から提供されたオブジェクトコードは、実機マイコンに備えられたCPUにより動作可能に構成されているため、そのままでは、上述のシミュレーションシステムを稼働させるパソコンPCに備えられたCPUで動作させることができない。したがって、逆アセンブル実行部1は、提供されたオブジェクトコードを逆アセンブルして、パソコンPCに備えられたCPUのアーキテクチャに対応するアセンブラコードを生成する。
レジスタ操作コード抽出部16は、逆アセンブル実行部15で得られたアセンブラコードに含まれ、実機マイコンに備えられたCPUにより実機マイコンのレジスタをアクセスするレジスタ操作コードを自動抽出するよう構成されている。
例えば、図5に示す制御ソフトウェア68の割込み処理ブロックの一部は、図9(a)に示すアセンブラコードで構成されている。アセンブラコードは、CPUが処理する操作(以下、「命令」と記す。)毎に記載された、命令を示すニーモニックと、定数、レジスタ、あるいは、メモリ等の命令対象を示すオペランドにより構成されている。レジスタ操作コード抽出部16は、例えば、図9(a)の下線部に示すように、オペランドにレジスタのアドレスが記載された行をレジスタ操作コードと判断し、当該行を自動抽出してCPUボード10上のメモリに記憶する。尚、レジスタ操作コード抽出部16は、ニーモニックの内容に基づいて、レジスタ操作コードであるか否かを判断するように構成しても構わない。
逆コンパイル部17は、逆アセンブル実行部15で生成されたアセンブラコードを逆コンパイルして汎用のコンパイラコードを生成するように構成されている。アセンブラコードは、CPUに対する命令を詳細まで記載できる反面、人間にとってはわかりにくいコードであるため、逆コンパイル部17は、アセンブラコードを逆コンパイルして、人間にとってわかりやすいコードである、C言語等の高級言語で記載されたソースコードであるコンパイラコードを生成する。例えば、図9(a)に示したアセンブラコードは、逆コンパイル部17により、図9(b)に示す、C言語で記載したコンパイラコードに変換される。
レジスタ操作コード付加部18は、逆コンパイル部17で得られたコンパイラコードに、レジスタ操作コード抽出部16で抽出されたレジスタ操作コードにより実機マイコンのレジスタに替えて仮想内部レジスタ63及び外部IOデータ部56がアクセスされるように模擬する仮想レジスタ操作コードを付加するように構成されている。
例えば、図9(c)に示すように、レジスタ操作コード付加部18は、レジスタ操作コード抽出部16により抽出されたレジスタ操作コードを示す1行目から4行目の記載に続いて、5行目に仮想レジスタ操作コードを付加したコンパイラコードを生成する。
詳述すると、図9(a)(b)に示すように、1行目及び4行目のコードは、実機マイコンの入出力ポートに備えられたIOレジスタに対する入出力処理を示し、2行目及び3行目のコードは、実機マイコンにおけるCPUによりアクセスされる内部レジスタに対する入出力処理を示している。即ち、図5に示すように、当該IOレジスタ及び内部レジスタは、上述のシミュレーションシステムにおける仮想内部レジスタ63として模擬され、それぞれ、図9(b)に示すコンパイラコードのst_Ioreg、st_CpuRegとして構成されている。したがって、1行目から4行目のコードにより、仮想内部レジスタ63への入出力処理を実現するIOドライバ61−2が構成されている。
ただし、当該コンパイラコードを上述のシミュレーションシステムで稼働可能にするためには、図9(b)に示すコンパイラコードに加えて、制御系モジュール6の外部とのIOデータの入出力処理を模擬するIOドライバ61−1を介して、当該IOデータを入出力先の割込み処理ブロックへ入出力する処理を付加する必要がある。
そこで、レジスタ操作コード付加部18により付加された仮想レジスタ操作コードは、仮想内部レジスタ63に設定されたIOデータを、IOドライバ61−1を介して取得し、当該取得したIOデータを出力先の割込み処理ブロックへ出力するように構成されている。尚、ここで、vIOD_MregIfは、IOドライバ61−1を起動する関数を示し、第一引数の「12」は、外部IOデータ部56の所定の領域を示し、第二引数のst_CpuReg.eaxは、仮想内部レジスタ63に設定されたIOデータを示す。
クロスコンパイル部19は、レジスタ操作コード付加部18で仮想レジスタ操作コードが付加されたコンパイラコードをクロスコンパイルして、シミュレーションシステムを稼働させる汎用コンピュータのCPUで実行可能なオブジェクトコードに変換するように構成されている。
即ち、上述のプログラム開発部DMにより本発明によるシミュレーションプログラム生成装置が構成されている。
以下では、上述の構成、または、図4、図5及び図10に基づいて、プログラム開発部DMによるシミュレーションプログラム生成方法について説明する。
先ず、逆アセンブル実行部15により、外部組織等から提供されたマイクロコンピュータに移植されるオブジェクトコードを、逆アセンブルしてアセンブラコードを生成する(逆アセンブルステップS21)。
続いて、レジスタ操作コード抽出部16により、逆アセンブルステップS21で得られたアセンブラコードに含まれ、CPUによりマイクロコンピュータのレジスタをアクセスするレジスタ操作コードを自動抽出する(レジスタ操作コード抽出ステップS22)。
続いて、逆コンパイル部17により、逆アセンブルステップS21で得られたアセンブラコードを逆コンパイルして汎用のコンパイラコードを生成する(逆コンパイルステップS23)。
続いて、レジスタ操作コード付加部18により、逆コンパイルステップS23で得られたコンパイラコードに、レジスタ操作コード抽出ステップS22で抽出されたレジスタ操作コードにより当該レジスタに替えて汎用コンピュータ上で定義される仮想レジスタとしての仮想内部レジスタ63及び外部IOレジスタ54がアクセスされるように模擬する仮想レジスタ操作コードを付加する(レジスタ操作コード付加ステップS24)。
続いて、クロスコンパイル部19によりレジスタ操作コード付加ステップS24で仮想レジスタ操作コードが付加されたコンパイラコードを汎用コンピュータで実行可能な制御プログラムに変換する(クロスコンパイルステップS25)。
従来から、新たに実機マイコンの開発に先行して制御プログラムを開発し、当該制御プログラムを上述のシミュレーションシステムに適用して、制御プログラムのロジックを評価するためには、実機マイコンを模擬する仮想内部レジスタ63とIOドライバ61と割込コントローラ62とを合わせて開発する必要があった。
この場合、割込みコントローラ62や仮想内部レジスタ63は、例えば、割込み処理ブロック名と起動する割込み処理ブロックモジュールが記憶されたRAM上のアドレスとを対応づけるテーブルとして構成する、あるいは、データ名とデータ内容を対応づけるテーブルとして構成する等、他の実機マイコンの制御ソフトウェア38を作成する場合にも利用可能なように汎用化することは可能である。
ただし、IOドライバ61は、実機マイコンの提供元毎に仕様が異なることがあり、実機マイコンの提供元毎に共通化することは可能であっても、実機マイコンの提供元が相違しても利用可能なように汎用化することは困難である。
上述の構成によれば、制御プログラムは、既存の実機マイコンの提供元から提供されたオブジェクトコードを逆アセンブルあるいは逆コンパイルしてソースコードを自動生成し、さらに、データの入出力処理の記載された箇所に対して、新たに作成したIOドライバ61を利用するソースコードを自動で付加するため、開発効率を向上することができる。
また、開発した制御プログラムを上述のシミュレーションシステムを利用してロジック評価する場合において、評価対象の制御プログラムのロジック以外に、IOドライバ61等の入出力処理に関わるソースコードを追加する等の、当該制御プログラムのロジックを評価する以前にシミュレーションシステムを正常に動作させるために必要な労力を軽減することができる。
以下、別実施形態を説明する。上述した実施形態では、車両を模擬したシミュレーションシステムにおけるシミュレーションプログラムを、本発明によるシミュレーションプログラム生成の対象としていたが、これに限るものではない。
例えば、カメラ、携帯電話、航空機、電車、あるいは、家電製品等のマイクロコンピュータに組み込まれるプログラムをパソコンPC上で稼働可能に模擬したシミュレーションプログラムを本発明によるシミュレーションプログラムの対象としても構わない。
また、上述した実施形態では、逆コンパイル部17により逆コンパイルして生成するコンパイラコードは、C言語で記載されるとしていたが、これに限るものではなく、逆コンパイル部17は、Java(Javaは登録商標)、C#、C++言語等の高級言語で記載されたコンパイラコードを生成するように構成しても構わない。
上述した実施形態は、本発明を実現する一実施例を説明するものであり、各部の具体的な構成は、本発明の作用効果を奏する限りにおいて、適宜変更設計することが可能である。
5:システム管理モジュール
6:制御系モジュール
7:被制御系モジュール
10:CPUボード
15:逆アセンブル実行部
16:レジスタ操作コード抽出部
17:逆コンパイル部
18:レジスタ操作コード付加部
19:クロスコンパイル部
51:共有メモリ
52:システムタイマ
53:イベントリスト
54:仮想IOレジスタ
55:割込管理部
56:外部IOデータ部
61:IOドライバ(制御系モジュール)
62:割込コントローラ
63:仮想内部レジスタ
68:制御ソフトウェア
69:自己診断プログラム
71:IOドライバ(被制御系モジュール)
DM:プログラム開発部
HST:操作表示部
PC:パーソナルコンピュータ
SM:シミュレーション実行部
S21:逆アセンブルステップ
S22:レジスタ操作コード抽出ステップ
S23:逆コンパイルステップ
S24:レジスタ操作コード付加ステップ
S25:クロスコンパイルステップ
6:制御系モジュール
7:被制御系モジュール
10:CPUボード
15:逆アセンブル実行部
16:レジスタ操作コード抽出部
17:逆コンパイル部
18:レジスタ操作コード付加部
19:クロスコンパイル部
51:共有メモリ
52:システムタイマ
53:イベントリスト
54:仮想IOレジスタ
55:割込管理部
56:外部IOデータ部
61:IOドライバ(制御系モジュール)
62:割込コントローラ
63:仮想内部レジスタ
68:制御ソフトウェア
69:自己診断プログラム
71:IOドライバ(被制御系モジュール)
DM:プログラム開発部
HST:操作表示部
PC:パーソナルコンピュータ
SM:シミュレーション実行部
S21:逆アセンブルステップ
S22:レジスタ操作コード抽出ステップ
S23:逆コンパイルステップ
S24:レジスタ操作コード付加ステップ
S25:クロスコンパイルステップ
Claims (4)
- ターゲットとなるマイクロコンピュータのCPUで実行される制御プログラムを、シミュレーション用の汎用コンピュータで実行可能な形式のプログラムに変換するシミュレーションプログラム生成装置であって、
前記マイクロコンピュータに移植されるオブジェクトコードを逆アセンブルしてアセンブラコードを生成する逆アセンブル実行部と、
前記逆アセンブル実行部で得られたアセンブラコードに含まれ、前記CPUにより前記マイクロコンピュータのレジスタをアクセスするレジスタ操作コードを自動抽出するレジスタ操作コード抽出部と、
前記アセンブラコードを逆コンパイルして汎用のコンパイラコードを生成する逆コンパイル部と、
前記逆コンパイル部で得られたコンパイラコードに、前記レジスタ操作コード抽出部で抽出されたレジスタ操作コードにより当該レジスタに替えて前記汎用コンピュータ上で定義される仮想レジスタがアクセスされるように模擬する仮想レジスタ操作コードを付加するレジスタ操作コード付加部と、
前記レジスタ操作コード付加部で前記仮想レジスタ操作コードが付加されたコンパイラコードを前記汎用コンピュータで実行可能な制御プログラムに変換するクロスコンパイル部を含むことを特徴とするシミュレーションプログラム生成装置。 - 前記レジスタ操作コード抽出部は、前記アセンブラコードに含まれるレジスタ操作用のニーモニックまたはオペランドに基づいて前記レジスタ操作コードを抽出することを特徴とする請求項1記載のシミュレーションプログラム生成装置。
- ターゲットとなるマイクロコンピュータのCPUで実行される制御プログラムを、シミュレーション用の汎用コンピュータで実行可能な形式のプログラムに変換するシミュレーションプログラム生成方法であって、
前記マイクロコンピュータに移植されるオブジェクトコードを逆アセンブルしてアセンブラコードを生成する逆アセンブルステップと、
前記逆アセンブルステップで得られたアセンブラコードに含まれ、前記CPUにより前記マイクロコンピュータのレジスタをアクセスするレジスタ操作コードを自動抽出するレジスタ操作コード抽出ステップと、
前記アセンブラコードを逆コンパイルして汎用のコンパイラコードを生成する逆コンパイルステップと、
前記逆コンパイルステップで得られたコンパイラコードに、前記レジスタ操作コード抽出ステップで抽出されたレジスタ操作コードにより当該レジスタに替えて前記汎用コンピュータ上で定義される仮想レジスタがアクセスされるように模擬する仮想レジスタ操作コードを付加するレジスタ操作コード付加ステップと、
前記レジスタ操作コード付加ステップで前記仮想レジスタ操作コードが付加されたコンパイラコードを前記汎用コンピュータで実行可能な制御プログラムに変換するクロスコンパイルステップを含むシミュレーションプログラム生成方法。 - 請求項3記載のシミュレーションプログラム生成方法で生成された制御プログラムを実行する制御系モジュールと、前記制御プログラムにより制御される被制御部を模擬する被制御系モジュールと、前記制御系モジュールと被制御系モジュールを同期させて実行するシステム管理モジュールを備え、
前記システム管理モジュールは、前記制御系モジュールまたは被制御系モジュールで発生するイベントの起動時刻を管理して、前記制御系モジュール及び被制御系モジュールを各イベントに対応して時系列的に駆動させるイベント駆動型のシミュレーションシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009093565A JP2010244377A (ja) | 2009-04-08 | 2009-04-08 | シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及び、シミュレーションシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009093565A JP2010244377A (ja) | 2009-04-08 | 2009-04-08 | シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及び、シミュレーションシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010244377A true JP2010244377A (ja) | 2010-10-28 |
Family
ID=43097319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009093565A Withdrawn JP2010244377A (ja) | 2009-04-08 | 2009-04-08 | シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及び、シミュレーションシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010244377A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105044653A (zh) * | 2015-06-30 | 2015-11-11 | 武汉大学 | 一种智能电表的软件一致性检测方法 |
-
2009
- 2009-04-08 JP JP2009093565A patent/JP2010244377A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105044653A (zh) * | 2015-06-30 | 2015-11-11 | 武汉大学 | 一种智能电表的软件一致性检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010097406A (ja) | シミュレーションシステム | |
JP2008084121A (ja) | シミュレーションシステム及びシミュレーション方法 | |
JP2009265668A (ja) | 工学プロジェクトの訓練シミュレータ | |
JP2008090489A (ja) | シミュレーションシステム | |
JP4906286B2 (ja) | ソフトウェア開発環境システム | |
Macher et al. | Automated generation of AUTOSAR description file for safety-critical software architectures | |
Kosar et al. | Debugging measurement systems using a domain-specific modeling language | |
CN107562422B (zh) | 控制器人机界面的编程方法以及提供此编程工具的服务器 | |
JP2010244377A (ja) | シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及び、シミュレーションシステム | |
WO2015079503A1 (ja) | システム構築支援装置 | |
JP2011018107A (ja) | シミュレーションシステム | |
JP5314959B2 (ja) | 情報処理装置、及びその制御方法、コンピュータプログラム、記憶媒体 | |
JP2008033672A (ja) | Hils装置 | |
JP6827814B2 (ja) | シミュレーション装置及びプログラム | |
JP2008269022A (ja) | シミュレーション装置、シミュレーション方法、及び開発支援方法 | |
JP2010097405A (ja) | シミュレーションシステム及びシミュレーション方法 | |
JP2008165544A (ja) | シミュレーションシステム及びシミュレーション方法 | |
JP2010224758A (ja) | プログラム変更検証装置及びプログラム変更検証方法 | |
JP5056493B2 (ja) | 仮想ソフトウェア生成装置 | |
JP2008262318A (ja) | ソフトウェア評価装置及びその信号モニタ方法 | |
US20210141710A1 (en) | Development support device | |
JP2008262318A5 (ja) | ||
JP5011221B2 (ja) | コントローラ開発ツールとそれを利用して開発したモータドライブシステムを有する機器 | |
JP5979709B2 (ja) | エミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システム | |
CN106598671A (zh) | 测振仪升级装置及其工作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120703 |