JP5979709B2 - エミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システム - Google Patents

エミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システム Download PDF

Info

Publication number
JP5979709B2
JP5979709B2 JP2012081229A JP2012081229A JP5979709B2 JP 5979709 B2 JP5979709 B2 JP 5979709B2 JP 2012081229 A JP2012081229 A JP 2012081229A JP 2012081229 A JP2012081229 A JP 2012081229A JP 5979709 B2 JP5979709 B2 JP 5979709B2
Authority
JP
Japan
Prior art keywords
embedded
register
pseudo
peripheral device
program
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.)
Active
Application number
JP2012081229A
Other languages
English (en)
Other versions
JP2013210882A (ja
Inventor
真美 塩川
真美 塩川
祥子 小俣
祥子 小俣
裕之 金子
裕之 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Solutions Innovators Ltd
Original Assignee
NEC Solutions Innovators Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Solutions Innovators Ltd filed Critical NEC Solutions Innovators Ltd
Priority to JP2012081229A priority Critical patent/JP5979709B2/ja
Publication of JP2013210882A publication Critical patent/JP2013210882A/ja
Application granted granted Critical
Publication of JP5979709B2 publication Critical patent/JP5979709B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、エミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システムに関し、特に、ARM(Advanced RISC(Reduced Instruction Set Computer) Machines)プロセッサのエミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システムに関する。
ARMプロセッサを組み込んだ組み込み機器は、様々な分野において開発され実用化されている。組み込み機器は、クロス開発が主流であり、開発環境と実行環境が異なる。組み込み機器に搭載されるプログラムは、開発環境では、たとえば、パーソナルコンピュータ(Personal Computer:PC)上でプログラミングされ、実行ファイル形式に変換された後、実際の組み込み機器で実行されることとなる。
開発環境においては、実際の組み込み機器の代わりに、専用のエミュレータを使用してソフトウェアの検証や試験(デバッグ)を行う。
デバッグ装置の一例が特許文献1に記載されている。特許文献1のデバッグ装置は、組み込みマイコンのエミュレータとユーザインタフェースを持つエミュレータ制御ソフトで構成され、エミュレーション中のプログラムを止めることなく、ユーザが指定したアドレスの変数の値をモニタリングできる機能を有する。
また、特許文献2には、第1システムと異なる第2システム上で、第1システムのプログラムを実行する方法および装置が記載されている。特許文献2の装置は、エミュレータ監視レベルが、第1システムの命令に相当する第2システムの命令として解釈することにより、第2システムのCPU、メモリ、および第2システムの他の要素に、第1システムの対応する要素の動作をエミュレートさせるインタプリタを有する。
さらに、特許文献3には、仮想マシンの入出力エミュレーション機構が記載されている。特許文献3の仮想マシンの入出力エミュレーション機構は、仮想マシンのアプリケーションからのデバイス操作要求に対応する、仮想デバイスに対するデバイス操作命令を、一連の操作命令毎にまとめて受け付けて、実デバイスに対する入出力コマンドに変換する。
特開2003−5999号公報 特開平7−182180号公報 特開2009−288864号公報
上述した各特許文献に記載された装置においては、実際の組み込み機器の代わりに、装置構成に依存した専用のエミュレータを準備する必要があったため、汎用性がなくコストがかかるという問題点があった。
本発明の目的は、上述した課題である汎用性がなくコストがかかるという問題点を解決するエミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システムを提供することにある。
本発明のエミュレーション装置は、
ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するエミュレーション装置であって、
前記組み込みプログラムを記憶するプログラム記憶領域、および前記ARMプロセッサと前記周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域を有する記憶装置と、
前記組み込みプログラムを受け付けるプログラム受付手段と、
前記組み込みプログラムの命令を前記プログラム記憶領域から読み出し、前記命令の実行時に実行すべき処理が割り当てられた前記疑似デバイスレジスタ領域にアクセスして、前記周辺装置の動作を疑似する処理を実行させる実行手段と、を備え
前記組み込みプログラムは、前記ARMプロセッサと前記周辺装置を動作させる命令を含む実行形式のプログラムであり、
前記疑似デバイスレジスタ領域は、前記組み込みプログラムの各命令の実行時にアクセスすべき、前記周辺装置の動作を模擬する処理がそれぞれ割り当てられるレジスタビットを有し、
前記実行手段は、前記組み込みプログラムから順次前記命令を読み出し、各命令を、割り当てられた前記疑似デバイスレジスタの前記レジスタビットに変換し、当該レジスタビットにアクセスし、前記アクセスされた前記レジスタビットに応じた前記周辺装置の動作を疑似する処理を実行させる。
本発明の組み込み機器の開発支援システムは、上記エミュレーション装置を備える。
本発明のエミュレーション方法は、
ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するコンピュータを用いたエミュレーション方法であって、
前記コンピュータは、前記組み込みプログラムを記憶する組み込みプログラム記憶領域、および前記ARMプロセッサと前記周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域を有する記憶装置を備え、
前記組み込みプログラムが、前記ARMプロセッサと前記周辺装置を動作させる命令を含む実行形式のプログラムであり、
前記疑似デバイスレジスタ領域が、前記組み込みプログラムの各命令の実行時にアクセスすべき、前記周辺装置の動作を模擬する処理がそれぞれ割り当てられるレジスタビットを有し、
前記コンピュータが、
前記組み込みプログラムを受け付け、
前記組み込みプログラムの命令を前記プログラム記憶領域から読み出し、前記命令の実行時に実行すべき処理が割り当てられた前記疑似デバイスレジスタ領域にアクセスして、前記周辺装置の動作を疑似する処理を実行させ
前記組み込みプログラムから順次前記命令を読み出し、各命令を、割り当てられた前記疑似デバイスレジスタの前記レジスタビットに変換し、当該レジスタビットにアクセスし、前記アクセスされた前記レジスタビットに応じた前記周辺装置の動作を疑似する処理を実行させる。
本発明のコンピュータプログラムは、
ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するエミュレーション装置を実現するコンピュータが実行するプログラムであって、
前記コンピュータは、前記組み込みプログラムを記憶する組み込みプログラム記憶領域、および前記ARMプロセッサと前記周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域を有する記憶装置を備え、
前記組み込みプログラムは、前記ARMプロセッサと前記周辺装置を動作させる命令を含む実行形式のプログラムであり、
前記疑似デバイスレジスタ領域は、前記組み込みプログラムの各命令の実行時にアクセスすべき、前記周辺装置の動作を模擬する処理がそれぞれ割り当てられるレジスタビットを有し、
前記コンピュータに、
前記組み込みプログラムを受け付ける手順、
前記組み込みプログラムの命令を前記プログラム記憶領域から読み出し、前記命令の実行時に実行すべき処理が割り当てられた前記疑似デバイスレジスタ領域にアクセスして、前記周辺装置の動作を疑似する処理を実行させる手順
前記組み込みプログラムから順次前記命令を読み出し、各命令を、割り当てられた前記疑似デバイスレジスタの前記レジスタビットに変換し、当該レジスタビットにアクセスし、前記アクセスされた前記レジスタビットに応じた前記周辺装置の動作を疑似する処理を実行させる手順を実行させるためのものである。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
本発明によれば、汎用性があり、コストを抑えられるエミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システムが提供される。
本発明の実施の形態に係るエミュレーション装置の構成を示す機能ブロック図である。 本発明の実施の形態に係るエミュレーション装置の構成を示すブロック図である。 本発明の実施の形態に係るエミュレーション装置の概要を説明するための図である。 本発明の実施の形態に係るエミュレーション装置の疑似デバイスエミュレーション用のメモリ領域の構造を示すメモリマップ図である。 本発明の実施の形態に係るエミュレーション装置の動作の一例を示すフローチャートである。 本発明の実施の形態に係るエミュレーション装置の構成を示す機能ブロック図である。 本発明の実施の形態に係るエミュレーション装置の動作の一例を示すフローチャートである。 本発明の実施の形態に係るエミュレーション装置の構成を示す機能ブロック図である。 本発明の実施の形態に係るエミュレーション装置の画面の一例を示す図である。 本発明の実施の形態に係るエミュレーション装置の画面の一例を示す図である。 本発明の実施例に係るエミュレーション装置がエミュレートする組み込み機器の構成を示す機能ブロック図である。 本発明の実施例に係るエミュレーション装置の画面の一例を示す図である。 本発明の実施例に係るエミュレーション装置の疑似デバイスエミュレーション用のメモリ領域のベクタ・テーブル領域を説明するための図である。 本発明の実施例に係るエミュレーション装置の疑似デバイスエミュレーション用のメモリ領域のデバイス領域を説明するための図である。 本発明の実施例に係るエミュレーション装置の疑似チップへ供給するクロック一覧を説明するための図である。 本発明の実施例に係るエミュレーション装置の割込み要求フラグ・レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置の割込み要因フラグ・レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置の割込みイネーブル・フラグ・レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置の割込みクリア・レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置のステータスレジスタとステータスフラグを説明するための図である。 本発明の実施例に係るエミュレーション装置のカウンタ・レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置のインターバル設定レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置のインターバル・タイマ制御レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置の入出力ポート制御レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置の割込み制御レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置の入力ポート状態レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置の出力ポート設定レジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置のLCD表示モードレジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置のLCD表示データ・メモリレジスタを説明するための図である。 本発明の実施例に係るエミュレーション装置のLCD表示データ・メモリレジスタとCOM信号/SEG信号の関係を説明するための図である。 本発明の実施例に係るエミュレーション装置のLCDパネルの一例を示す図である。 本発明の実施例に係るエミュレーション装置の動作の一例を示すフローチャートである。 本発明の実施例に係るエミュレーション装置の画面の一例を示す図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
図1は、本発明の実施の形態に係るエミュレーション装置100の構成を示す機能ブロック図である。
本発明の実施の形態に係るエミュレーション装置100は、ARMプロセッサをPC等のコンピュータ上でエミュレーションし、開発対象のARMプロセッサの組み込み機器をPC上で疑似的に実現させる。開発対象の組み込み機器は、表示器、操作スイッチ、通信装置、またはセンサ等、様々な周辺ハードウェアを組み込むことが想定される。本発明の実施の形態に係るエミュレーション装置100は、ARMプロセッサ、メモリ、そして、各種周辺ハードウェアをソフトウェアで構築する。これにより、開発対象の各種組込み機器を、PC上でソフトウェアとして扱い、簡易に再現し、デバッグすることが可能になる。
ARMプロセッサは、RISC(Reduced Instruction Set Computer)で設計するマイクロプロセッサである。RISCは、マイクロプロセッサへの命令を簡略化し、パイプライン処理の効率を高め、処理性能を向上させることができる。このようにARMプロセッサは、そのプログラムサイズが小さく、プロセッサの実装面積も電力消費量も小さいので、組み込み機器を小型化でき、コストも削減できるので、様々な分野で多岐にわたり利用されている。
組み込み機器の例としては、たとえば、携帯電話などの端末機器をはじめ、携帯情報端末、電子機器、音響機器、家電製品、遊技機、自動販売機、計測機器、昇降機、車輌関連機器等がある。
本発明の実施の形態に係るエミュレーション装置100は、ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するエミュレーション装置100であって、組み込みプログラムを記憶する組み込みプログラム記憶領域112、およびARMプロセッサと周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域114を有する記憶装置110と、組み込みプログラムを受け付けるプログラム受付部102と、組み込みプログラムの命令を組み込みプログラム記憶領域112から読み出し、命令の実行時に実行すべき処理が割り当てられた疑似デバイスレジスタ領域114にアクセスして、周辺装置の動作を疑似する処理を実行させる実行部106と、を備える。
エミュレーション装置100は、図2に示すように、たとえば、CPU(Central Processing Unit)120、RAM(Random Access Memory)等のメモリ122、ハードディスク124、およびネットワーク通信部126を備え、キーボードやマウス等の入力装置150やディスプレイなどの表示装置152やプリンタ等の出力装置(不図示)と接続されるサーバコンピュータやパーソナルコンピュータ、またはタブレット端末などのコンピュータ10(以下、「PC10」とも呼ぶ)により実現することができる。エミュレーション装置100は、入力装置150の入力を受け付ける操作受付部128と、表示装置152の表示制御を行う表示制御部130と、をさらに備える。ここで、ネットワーク通信部126、操作受付部128、および表示制御部130は、コンピュータ10の入出力を制御するI/O部に含まれる。本実施形態のI/O部は、この他に図示されない様々な装置との入出力を制御するI/O部を含んでもよい。また、入力装置150および表示装置152が一体となったタッチパネル等も備えてもよい。
コンピュータ10のこれらの各要素は、バス134を介して互いに接続され、CPU120により各要素とともにエミュレーション装置100全体が制御される。CPU120が、ハードディスク124に記憶されるプログラムをメモリ122に読み出して実行することにより、エミュレーション装置100の図1の各ユニットの各機能を実現することができる。
このように、本実施形態のエミュレーション装置100の各構成要素は、CPU120、メモリ122、メモリ122にロードされた図1の構成要素を実現するプログラム、そのプログラムを格納するハードディスク124などの記憶ユニット、ネットワーク接続用インタフェース(ネットワーク通信部126)を有する任意のコンピュータ10のハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下に説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
また、各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
また、エミュレーション装置100は、仮想サーバなどにより構成されてもよい。
本実施形態のコンピュータプログラムは、コンピュータ(PC10)に、組み込みプログラムを受け付ける手順、組み込みプログラムの命令を組み込みプログラム記憶領域112から読み出し、命令の実行時に実行すべき処理が割り当てられた疑似デバイスレジスタ領域114にアクセスして、周辺装置(図3の疑似チップ14または疑似デバイス16)の動作を疑似する処理を実行させる手順、を実行させるように記述されている。
本実施形態のコンピュータプログラムは、コンピュータで読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。
本発明の実施の形態に係るエミュレーション装置100は、上記構成により、ARMプロセッサをPC10上でエミュレーションできる。以下、エミュレーションしたARMプロセッサを図3に示すように、「疑似ARM CPU12」とも呼ぶものとする。そして、開発対象の実機器の組み込みプログラムの動作をPC10上で再現できるようになっている。
併せて、エミュレーション対象の実機器の周辺ハードウェアを疑似化した、対応する疑似チップ14または疑似デバイス16を構成し、ARMプロセッサの組込み機器の動作をPC10上で再現して確認できるようにしている。
疑似チップ14とは、疑似デバイス16を動作させるために必要なコントローラなどを含む。疑似デバイス16とは、たとえば、7セグメント、LED、LCD等の表示器、メーター、操作スイッチ、キーパッド、ボタン、レバー、ランプ、ブザー、スピーカ、各種センサ、UART(Universal Asynchronous Receiver Transmitter)、モータ等、組み込み機器に組み込まれるべき様々なデバイスを含むことができる。
このように、本発明のエミュレーション装置100は様々な構成の組み込み機器を実機に替えてPC10上で再現できるので、各種組み込み機器の開発ツールとしてだけでなく、組み込みシステムの開発技術の教育ツールとしても利用できる。
図1のプログラム受付部102は、PC10のI/O部を介して開発対象の組み込みプログラムを受け付ける。開発対象の組み込みプログラムは、PC10または他のコンピュータ上で所定の言語(たとえば、C言語等)で記述され、コンパイルされた後の実行形式のプログラムである。実際の組み込み機器では、組み込みプログラムは、EPROM(Erasable Programmable Read Only Memory)などに書き込まれて機器に組み込まれ、機器のRAM(Random Access Memory)にロードされた後、ARMプロセッサにより実行される。
本実施形態では、この組み込みプログラムの開発作成途中または動作試験時などに、プログラム受付部102が、組み込みプログラムをPC10に取り込む。プログラムの取り込み方法は、特に限定されず、たとえば、USBメモリなどの記録媒体に書き込んだものを読み込んでもよいし、ネットワーク3(図2)を介して他の記憶装置などから読み込んでもよい。
プログラム受付部102が読み込んだ組み込みプログラムは、記憶装置110の組み込みプログラム記憶領域112に格納される。記憶装置110は、図2のメモリ122に相当する。プログラム受付部102が読み込んだ組み込みプログラムは、一旦、図2のハードディスク124に格納されてもよい。そして、本発明の実施の形態のプログラムがエミュレーション装置100を実現する時に、図2のハードディスク124から組み込みプログラムを、図2のメモリ122にロードすることができる。
上述したように、開発対象の組み込み機器は、ARMプロセッサと、メモリと、各種周辺ハードウェアとを備える。
エミュレーション装置100の記憶装置110の疑似デバイスレジスタ領域114には、ARMプロセッサと周辺装置の動作を疑似する処理が割り当てられる。
本実施形態では、PC10上で、組み込み機器をエミュレーションするために、組み込み機器のメモリを疑似する疑似メモリ20の領域をPC10上に確保する。図4にこの疑似メモリ20のメモリマップの一例を示す。
図4によれば、疑似メモリ20は、ベクタ・テーブル領域22と、デバイス領域24と、プログラム領域26と、を有する。図4のメモリマップは一例であり、これに限定されるものではない。
ベクタ・テーブル領域22は、疑似ARM CPU12において、例外発生により分岐するときのプログラムのスタートアドレスを格納する。
デバイス領域24は、疑似デバイス16または疑似チップ14等の疑似周辺ハードウェア毎に、命令実行時の動作を模擬する処理がレジスタビットにそれぞれ割り当てられたレジスタの領域を含む。レジスタ毎に、各ビットの動作を模擬する処理が予め定義される。たとえば、表示器への表示命令が実行された時、実行部106が命令に対応するレジスタビットにアクセスすることで、PC10で命令に対応する表示処理を再現するようになっている。このデバイス領域24は、図1の疑似デバイスレジスタ領域114に相当する。
本実施形態では、疑似ARM CPU12が直接アクセス(メモリのRead/Write)するメモリを模擬するデバイス領域を、疑似チップ・レジスタと呼ぶ。疑似チップ・レジスタは、図4の疑似メモリ20のデバイス領域24に配置される。
なお、本実施形態では、この疑似チップ・レジスタを保持するチップを疑似チップ14(図3)と呼び、その他のデバイス(疑似デバイス16(図3)と呼称)と区別している。
プログラム領域26は、組み込みプログラムがロードされる領域を含む。このプログラム領域26は、図1の組み込みプログラム記憶領域112に相当する。
上述のような構成において、本発明の実施の形態に係るエミュレーション方法を以下に説明する。図5は、本実施形態のエミュレーション装置100の動作の一例を示すフローチャートである。
本発明の実施の形態に係るエミュレーション方法は、コンピュータ(図3のPC10)が、組み込みプログラムを受け付け(図5のステップS11)、組み込みプログラムをプログラム記憶領域(図1の組み込みプログラム記憶領域112)から命令を読み出し(図5のステップS13)、命令の実行時に実行すべき処理が割り当てられた疑似デバイスレジスタ領域114(図1)にアクセスして(図5のステップS15)、周辺装置(図3の疑似デバイス16または疑似チップ14)の動作を疑似する処理を実行させる(図5のステップS17)。
具体的には、まず、プログラム受付部102が組み込みプログラムを受け付け、組み込みプログラム記憶領域112にロードし展開する(ステップS11)。
そして、実行部106が、組み込みプログラムの命令を組み込みプログラム記憶領域112から読み出して順に実行することとなる(ステップS13)。
その際、実行部106は、命令を、その命令の実行時にアクセスすべき、周辺装置の動作を模擬する処理が割り当てられた疑似デバイスレジスタ領域114のレジスタビットに変換し、そのレジスタビットにアクセスする(ステップS15)。そして、実行部106は、アクセスされたレジスタビットに応じて、周辺装置(図3の疑似デバイス16または疑似チップ14)の動作を疑似する処理を実行して、組み込み機器の動作を再現する(ステップS17)。
なお、ステップS13およびステップS15は、組み込みプログラムの命令や割り込み発生毎に繰り返し行うことができる。
本発明のエミュレーション装置100は、組み込みプログラムの命令は、1ステップずつ実行したり、ステップを指定して実行したり、途中で停止させたりしながら、実行状態を確認することができるユーザインタフェース部を備えることができる。たとえば、疑似デバイスレジスタ領域114のレジスタのビットの値を提示したり、組み込みプログラムの各ステップを確認しながら、その実行結果の応答を確認できるように提示したりしてもよい。
また、本発明の実施の形態に係るエミュレーション装置100は、ARMプロセッサを組み込んだ機器の開発技術の教育ツールに適用してもよい。すなわち、組み込み機器の開発支援システムは、エミュレーション装置100を備えることができる。
以上説明したように、本発明によれば、組み込み機器の周辺装置のハードウェアを疑似チップ14または疑似デバイス16に対する組み込みプログラムの命令実行時に、疑似デバイスレジスタ領域114の該当レジスタビットにアクセスすることで、命令による組み込み機器の動作をPC10上で再現させることができる。このように、ソフトウェアで周辺装置のハードウェアの動作を再現できるので、様々な周辺装置を組み合わせた組み込み機器を再現できる。組み込み機器の開発時には、組み込みプログラムのデバッグを、実機を用いずに行うことができるので、作業効率が向上するとともに、コストを抑えることができる。また、組み込みシステムの開発技術の教育時にも、実機に対応する専用の機器を準備する必要がなく、PC10のみで様々な種類の組み込み機器をエミュレーションできる。
(第2の実施の形態)
図6は、本発明の実施の形態に係るエミュレーション装置200の構成を示す機能ブロック図である。
本実施形態のエミュレーション装置200は、上記実施の形態とは、周辺装置の入出力を模擬し、周辺装置の動作を確認可能なユーザインタフェースを提供する点で相違する。
図6に示すように、本実施形態のエミュレーション装置200は、図1の上記実施形態のエミュレーション装置100と同様な構成を有するとともに、さらに、入出力模擬部202を備える。
疑似デバイスレジスタ領域114に割り当てられた周辺装置(図3の疑似チップ14または疑似デバイス16)の動作を疑似する処理は、周辺装置(図3の疑似チップ14または疑似デバイス16)の操作または動作に対応する入力または出力を模擬する処理を含む。
入出力模擬部202は、周辺装置(図3の疑似チップ14または疑似デバイス16)の入力または出力の模擬結果を、周辺装置(図3の疑似チップ14または疑似デバイス16)の操作または動作として確認可能なユーザインタフェースを周辺装置(図3の疑似チップ14または疑似デバイス16)毎に提供する。
入出力模擬部202が、周辺装置(図3の疑似チップ14または疑似デバイス16)の構成に従って、ユーザインタフェースを組み合わせ、組み込み機器の各周辺装置(図3の疑似チップ14または疑似デバイス16)の入力または出力を模擬し、組み込み機器の周辺装置(図3の疑似チップ14または疑似デバイス16)の操作または動作を確認できるユーザインタフェースを提供する。
入出力模擬部202は、図2のPC10のディスプレイ装置などの表示装置152に、組み込み機器に組み込まれる周辺装置(図3の疑似チップ14または疑似デバイス16)を模擬する画像を形成して画面に表示してもよい。組み込み機器の周辺装置(図3の疑似チップ14または疑似デバイス16)を模擬する画像は、たとえば、組み込み機器の外観を描画し、組み込み機器に備わっている表示器、操作スイッチなどの周辺装置のハードウェアを再現させる画像でもよい。組み込み機器の各周辺装置のハードウェアの動作状態が分かればよく、特に、外観を再現しなくてもよい。
さらに、入出力模擬部202は、組み込み機器の操作スイッチの操作を図2のPC10のキーボードやマウスなどから模擬操作できるようになっている。たとえば、組み込み機器の操作スイッチに対応する操作ボタンの画像を図2の表示装置152の画面に表示し、図2の入力装置150を用いた操作を図2の操作受付部128が受け付ける。操作受付部128が受け付ける操作は、疑似デバイス16または疑似チップ14への操作に対応付けることができる。これらの操作は、実行部106により、疑似ARM CPU12への割り込みや命令に対応する図3のデバイス領域24またはベクタ・テーブル領域22の所定のビットへのアクセスに変換される。そして、実行部106が、アクセスされたビット毎に定義された処理を実行して疑似デバイス16または疑似チップ14の入力または出力を模擬する。この実行結果に基づいて、入出力模擬部202がさらに、表示装置152の画面に再現して提示する。
このように構成された本発明の実施の形態に係るエミュレーション装置200の動作について、以下説明する。
図7は、本実施形態のエミュレーション装置200の動作の一例を示すフローチャートである。
図7に示すように、本実施形態のエミュレーション装置200は、図5の上記実施形態のエミュレーション装置100のフローチャートと同様なステップS11〜ステップS17を有するとともに、さらに、ステップS21およびステップS23を有する。
上記実施形態と同様のステップS17の後、コンピュータ(エミュレーション装置200(図3のPC10))が、周辺装置(図3の疑似デバイス16または疑似チップ14)の入力または出力を模擬する処理の結果に基づいて、周辺装置(図3の疑似デバイス16または疑似チップ14)の操作または動作を確認できるユーザインタフェースを周辺装置(図3の疑似デバイス16または疑似チップ14)毎に提供し(ステップS21)、周辺装置(図3の疑似デバイス16または疑似チップ14)の構成に従って、ユーザインタフェースを組み合わせ、組み込み機器の各周辺装置(図3の疑似デバイス16または疑似チップ14)の入力または出力を模擬し、組み込み機器の周辺装置(図3の疑似デバイス16または疑似チップ14)の操作または動作を確認できるユーザインタフェースを提供する(ステップS23)。
具体的には、組み込みプログラムを実行したときの、疑似デバイスレジスタ領域114へのアクセス結果に基づいて、入出力模擬部202が、周辺装置の操作または動作に対応する入力または出力を模擬し、ユーザインタフェース部、すなわち、表示装置152の画面等に提示する(ステップS21)。たとえば、入出力模擬部202は、組み込み機器に操作スイッチやLCDなどの周辺装置が組み込まれる構成を有する例の場合、操作スイッチやLCDの画像等を表示装置152の画面に表示する。そして、入力装置150を用いて画面上で操作した、組み込み機器の操作スイッチの操作を操作受付部128が受け付け、組み込み機器への入力とする。そして、入力に対し、実行部106が、組み込みプログラムに従い、該当する疑似デバイスレジスタ領域114にアクセスし(ステップS15)、周辺装置の動作が模擬され、たとえば、その結果、組み込み機器のLCDに画面が表示される(ステップS17)。このとき、入出力模擬部202が、表示させるべき画面を組み込み機器のLCDに表示させた画像を、表示装置152に表示させること等で、周辺装置の入出力を模擬して提示することができる(ステップS23)。
なお、ステップS13、ステップS15、およびステップS21、ステップS23等は、命令や割り込み発生毎に繰り返し行うことができる。
また、入出力模擬部202は、上述したように、ユーザの操作を受け付けることで発生する割り込みに従い、組み込みプログラムが実行する命令に対しても、ステップS13、ステップS15、およびステップS21、ステップS23等の動作を行うことができる。
以上説明したように、本発明の実施の形態によれば、上記実施形態と同様な効果を奏するとともに、さらに、エミュレーション対象の組み込み機器を構成する周辺機器の動作をシミュレーションしてユーザに提示できるので、組み込み機器の動作確認の効率がより向上する。また、組み込み機器の教育ツールとしても、技術理解をより促進できる。
(第3の実施の形態)
図8は、本発明の実施の形態に係るエミュレーション装置250の構成を示す機能ブロック図である。
本実施形態のエミュレーション装置250は、上記実施の形態とは、組み込み機器の搭載可能な予め複数種類の周辺装置を疑似デバイスレジスタ領域に割り当て、周辺装置を選択して組み込み機器をカスタマイズしてエミュレーションできる点で相違する。本実施形態のエミュレーション装置250は、図6の実施形態のエミュレーション装置200の構成に加え、さらに、構成受付部252を備える。なお、本実施形態のエミュレーション装置250は、図1の上記実施形態のエミュレーション装置100の構成に、さらに、構成受付部252を備えた構成としてもよい。
本実施形態において、記憶装置110は、組み込み機器に組み込み可能な複数種類の周辺装置毎に、周辺装置(疑似チップ14または疑似デバイス16)の動作を疑似する処理をそれぞれ割り当てた複数の疑似デバイスレジスタ領域114a、114b、および114cを有し、エミュレーション対象の組み込み機器に組み込む周辺装置の構成を受け付ける構成受付部252をさらに備える。
なお、図では、3つの周辺装置に対応する3つの疑似デバイスレジスタ領域114a、114b、および114cを示しているが、これに限定されるものではない。少なくとも1つの周辺装置に対応する疑似デバイスレジスタ領域114を含むことができる。また、本実施形態では、特に区別する必要がない場合、疑似デバイスレジスタ領域114と呼ぶものとする。
受け付けた周辺装置の構成に従って、実行部106が、該当する周辺装置の疑似デバイスレジスタ領域114を、組み込みプログラムの実行時に使用し、周辺装置の構成をカスタマイズした前記組み込み機器をエミュレーションする。
すなわち、本実施形態のエミュレーション装置250では、図3のデバイス領域24に、各種の周辺装置(疑似チップ14または疑似デバイス16)毎に、複数のレジスタ領域を予め確保しておく。そして、構成受付部252が受け付けた組み込み機器の周辺装置の構成に基づいて、実行部106は、組み込む周辺装置に対応するレジスタ領域のみを使用するように制御する。
構成受付部252は、たとえば、図9(a)に示すような、周辺装置構成選択画面260に提示される複数の周辺装置(疑似ハードウェア)の中から選択することができる。図9(a)に示すように、周辺機器リスト262の中から周辺装置を選択した時(図中、反転表示部264)、選択された周辺装置に対応する疑似チップ14と疑似デバイス16がさらに疑似デバイス確認画面272に表示されてもよい。また、このとき、図9(b)に示すように、選択された周辺装置の外観を示す周辺装置画像280を画面上に表示してもよい。
さらに、図10に示すように、本実施形態のエミュレーション装置250において、構成受付部252は、組み込み機器の構成を編集する編集画面290を表示し、編集画面290上で周辺装置の構成の編集を受け付けることができる。
このように構成された本実施形態のエミュレーション装置250では、エミュレーション対象の組み込み機器の周辺装置の構成を選択して動作を確認することができる。
すなわち、構成受付部252が受け付けた周辺装置の構成に従って、予め定義されている疑似デバイスレジスタ領域114の中から、選択された周辺装置に対応する疑似デバイスレジスタ領域114を使用して、実行部106が組み込み機器をエミュレーションすることができる。
ユーザは、周辺装置の構成を編集しながら、組み込み機器の構成をカスタマイズして、組み込み機器のエミュレーションを行うことができる。そして、カスタマイズした組み込み機器の周辺装置は、画面上にその入出力を模擬するユーザインタフェースを表示できるので、組み込み機器を疑似的に操作したり、動作させたりすることができる。
以上説明したように、本実施形態のエミュレーション装置250によれば、上記実施形態と同様な効果を奏するとともに、さらに、実機や専用の装置を用いずに、PC10のみで様々な周辺装置を組み合わせながら、組み込み機器のエミュレーションを行うことが可能になる。効率よく低コストで組み込み機器のエミュレーションを実現できる。
ARMプロセッサを利用した組み込みシステムの開発支援システムとして、効率よく低コストで組み込み機器のエミュレーションを実現できる。または、本発明は、組み込み機器の教育支援システムとして、操作性もよく、組み込み機器の開発技術の習得に大きく貢献でき得る。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
たとえば、上記各実施形態において、エミュレーション装置は、さらに、組み込みプログラムの命令と、実行部106による命令の実行結果をモニタする画面を図2の表示装置152に表示させる表示部をさらに備えてもよい。表示部は、さらに、疑似メモリ20をモニタする画面を図2の表示装置152に表示させてもよい。特に、疑似チップ14または疑似デバイス16の疑似デバイスレジスタ領域114の状態をそれぞれモニタする画面を図2の表示装置152に表示させてもよい。
また、上記各実施形態において、エミュレーション装置は、さらに、組み込みプログラムの命令と、実行部106による命令の実行結果、または、疑似デバイス16の疑似メモリ20の情報を出力する出力部をさらに備えてもよい。これらの情報は、たとえば、所定の形式のファイルとしてPC10のハードディスク124またはPC10に接続された他の記憶装置に出力してもよいし、PC10に接続されたプリンタなどの印字出力装置に出力され、印字されてもよい。
(実施例1)
上記説明した本発明の実施の形態に係るエミュレーション装置の実施例として、組み込み機器としてストップウォッチを例に、以下、図8〜図32を用いて説明する。
本実施例では、図8の上記実施形態のエミュレーション装置250を用いて、組み込み機器のストップウォッチ300をエミュレートするものとする。本実施例では、エミュレーション装置250は、図2で説明したコンピュータ10として、汎用のパーソナルコンピュータを用いる。
図11は、本実施例のエミュレーション装置250のエミュレーション対象として、ストップウォッチ300を組み込み機器の例とした時の構成を示すブロック図である。
図11に示すように、ストップウォッチ300は、疑似ARM CPU12と、RAM(Random Access Memory)304と、割込みコントローラ306と、インターバル・タイマ308と、INPUTコントローラ310と、LCD(Liquid Crystal Display)コントローラ312と、LCD314と、を備える。図では、ストップウォッチ300の各構成要素は、バス316を介して接続される。
本実施例のエミュレーション装置250において、実行部106は、疑似ARM CPU12により実行される組み込みプログラムの周辺装置(図11のRAM304、割込みコントローラ306、インターバル・タイマ308、INPUTコントローラ310、LCDコントローラ312等)への制御を、エミュレーション装置250のメモリ(図4の疑似メモリ20)へのアクセスにて実現する。
図12は、本実施例のエミュレーション装置250の表示装置152(図2)に表示される組み込み機器エミュレート中の画面を示す図である。本図では、組み込み機器がストップウォッチ300の場合の例を示している。
本実施例では、エミュレーションを操作し、その結果を表示するエミュレーション画面400と、エミュレーション対象のストップウォッチ300の状態を表示する組み込み機器操作画面410と、を画面表示できるものとする。画面構成や表示内容は、一例であり、これに限定されるものではない。たとえば、組み込み機器操作画面410では、ストップウォッチ外観図412として、実機を模擬した画像を表示しているが、外観は必ずしも必要ではなく、各種操作ボタンと表示器を模擬する画像が表示されればよい。
具体的には、エミュレーション画面400は、レジスタ状態欄402と、メモリ状態欄404と、CPU状態欄406と、を有する。さらに、エミュレーション画面400は、エミュレーション操作を受け付ける各種操作ボタンや、各種メッセージを表示する表示部を設けることができる。特に、警告メッセージ表示等は、ユーザに注意喚起を促すために、別ウインドウでポップアップ表示するなどしてもよい。
レジスタ状態欄402は、エミュレート中の疑似デバイス16のレジスタの値を表示する。メモリ状態欄404は、エミュレート中の疑似デバイス16のRAM304の状態を表示する。CPU状態欄406は、疑似ARM CPU12の状態を表示する。
組み込み機器操作画面410は、ストップウォッチ300のストップウォッチ外観図412の画像が表示され、実機のストップウォッチ300の各種操作ボタンに対応するLAPボタン414、スタート/ストップボタン416、リセットボタン420、およびモードボタン422、さらに、LCD418の画像が表示される。
PC10の入力装置150を用いて、これらの各種操作ボタンに対応する画像を操作すると、操作を受け付け、ストップウォッチ300の動作をエミュレートすることができるようになっている。
さらに、LCD418には、エミュレートされたストップウォッチ300の動作結果が表示されるようになっている。このように、組み込み機器操作画面410上で、ストップウォッチ300の各種ボタンを操作でき、かつ、操作に基づくストップウォッチ300の動作をLCD418の表示で確認することができる。
さらに、エミュレーション画面400では、疑似デバイス16の疑似ARM CPU12、RAM304、さらに、疑似デバイスレジスタ領域114の状態を、ストップウォッチ300の動作に応じて確認できる。
本実施例では、図4で説明した疑似メモリ20を予め定義する。
疑似メモリ20のメモリ構成は、図4で説明したように、ベクタ・テーブル領域22と、デバイス領域24と、プログラム領域26と、を含む。
図13に、本実施例のベクタ・テーブル領域22の構成を示す。
本実施例では、図4で示した疑似メモリ20の00000000H〜0000003FH番地の64バイト領域は、ベクタ・テーブル領域22として予約される。ベクタ・テーブル領域22は、疑似ARM CPU12における例外発生により分岐するときのプログラム・スタート・アドレスを格納する。
ベクタ・テーブルには、32ビットアドレスで設定する。
図14に、本実施例のデバイス領域24の構成を一覧で示す。
本実施例では、図4で示した疑似メモリ20の00010000H〜0001FFFFH番地の64Kバイト領域はデバイス領域24として予約されている。この領域にはチップ・レジスタが配置される。チップ・レジスタは、32ビット境界で整列され配置される。アクセスサイズ等の詳細は、図16〜図29を用いてチップ・レジスタ毎に後述する。
図14に示すように、デバイス領域24には、疑似チップ14または疑似デバイス16のレジスタ領域が予約される。たとえば、周辺装置(周辺機器)として、LCDコントローラ、ランプ、ブザー、LED、7セグメント表示器(図中、「7セグ表示器」と示す)が予約されている。その他、データ収集の疑似チップ14として、D/AコントローラやA/Dコントローラ、入出力ポートとして、UARTや割り込み対応の入出力ポート、タイマ、割り込みコントローラ等が予約されている。
本実施例では、図4の疑似メモリ20の08000000H〜08FFFFFFH番地の128Mバイト領域を、プログラム領域26として使用する。
本実施例のエミュレーション装置250において、ストップウォッチ300内、疑似ARM CPU12におけるクロックは仮想的に定義する。
本実施例において、図4のデバイス領域24は、クロック制御レジスタは含まない。クロック周波数は、組み込み機器の初期設定により決定する。
疑似チップ14または疑似デバイス16は、エミュレーション装置250のPC10から疑似ARM CPU12に供給されるクロックを基準として、クロック分周して動作する。
以下、各疑似チップ14または疑似デバイス16の詳細について説明する。
(割込みコントローラ306)
割込みコントローラ306について、以下説明する。
<機能>
要求された割込みを保持し、疑似ARM CPU12への割り込み(IRQ)通知を行う。
<チップ・レジスタ>
割込みコントローラ306は、図4のデバイス領域24に、割込み要求フラグ・レジスタ、割込み要求フラグ・レジスタ、割込みイネーブル・フラグ・レジスタ、および割込みクリア・レジスタを含むチップレジスタとして割り当てられる。
[割込み要求フラグ・レジスタ]
割込み要求フラグは、割込み要求の状況を保持するフラグである。対応する割込み要求の発生あるいは命令によりセットされ、割込み要求の受付け時、RESET入力時、あるいは命令の実行によりクリアされる。
同時に複数の割込み要求がセットされている場合、ビット番号の小さい要求から受付けられる。
割込み要求フラグ・レジスタの詳細を図16に示す。
図16(a)は、割込み要求フラグ・レジスタの構成を示す。
図16(b)は、割込み要求フラグ・レジスタの属性を示す。
図16(c)は、割込み要求フラグ・レジスタの機能を示す。
[割込み要因フラグ・レジスタ]
割り込み要因フラグは、受付けた割り込み要因を保持するフラグである。割込み受付け時にセットされ、RESET入力時あるいは命令の実行によりクリアされる。割り込み要因がセットされていると以後の割込み受付けは抑制される。
割込み要因フラグ・レジスタの詳細を図17に示す。
図17(a)は、割込み要因フラグ・レジスタの構成を示す。
図17(b)は、割込み要因フラグ・レジスタの属性を示す。
図17(c)は、割込み要因フラグ・レジスタの機能を示す。
[割込みイネーブル・フラグ・レジスタ]
割込みイネーブル・フラグは、対応割込みの許可/禁止をプログラムから設定する。割込み許可する場合にセットし、禁止する場合にクリアする。
割込みイネーブル・フラグ・レジスタの詳細を図18に示す。
図18(a)は、割込みイネーブル・フラグ・レジスタの構成を示す。
図18(b)は、割込みイネーブル・フラグ・レジスタの属性を示す。
図18(c)は、割込みイネーブル・フラグ・レジスタの機能を示す。
[割込みクリア・レジスタ]
割込み要因をプログラムからクリアするレジスタである。このレジスタに書込むことで現在の割込み要因および割り込み要求はクリアされる。
割込みクリア・レジスタの詳細を図19に示す。
図19(a)は、割込みクリア・レジスタの構成を示す。
図19(b)は、割込みクリア・レジスタの属性を示す。
図19(c)は、割込みクリア・レジスタの機能を示す。
<動作>
割込みコントローラ306の動作を以下に示す。
(1) 割込み対応入力ポートおよびインターバル・タイマの割込み要求(内部ポート)を割込み要求フラグに反映。
割込みイネーブル・フラグがクリアされている要求はセットされない。
この処理で内部ポートは自動的にクリアされる(要求セットの有無は無関係)。
(2) 割込み要求フラグにセットされている要求がある場合疑似ARM CPU12に割り込みを通知。
割込み要求フラグはビット番号が小さい要求から処理する。
割込み許可フラグがクリアされている場合、当該要求は処理せず要求フラグをクリアする。
疑似ARM CPU12が割込みを受付けた場合は割込み要求フラグをクリアし、割込み要因フラグをセットする。
割込み要因フラグがセットされている場合は、疑似ARM CPU12に対する割込み通知は行われない。
<疑似ARM CPU12の割込み(IRQ)動作>
ステータスレジスタ(CPSR)のIビットがセットされている場合は、割込み(IRQ)を受付けない。割込みを有効にするには、特権モードでIビットをクリアする。
疑似ARM CPU12のステータスレジスタと、ステータスフラグの構成を図20に示す。
図20(a)は、疑似ARM CPU12のステータスレジスタ構成を示す。
図20(b)は、疑似ARM CPU12のステータスフラグ構成を示す。
図20(c)は、疑似ARM CPU12のステータスフラグの説明を示す。
IRQを受付けた場合のCPU動作を以下に示す。
(1) R14_irq に次実行命令アドレス+4をセット
(2) SPSR_irq に現ステータスレジスタ(CPSR)をコピー
(3) ステータスレジスタ(CPSR) のCPUモードにIRQモードをセット
(4) ステータスレジスタ(CPSR) のTビットをクリア(ARM命令セット)
(5) ステータスレジスタ(CPSR) のIビットをセット(IRQ禁止)
(6) ステータスレジスタ(CPSR) の Aビットをセット(データアボート禁止)
(7) ベクタアドレス(0x00000018)へジャンプ
ここで、IRQ処理を行う。
次の割込みを受付けるためには、割込みコントローラの割込み要因をクリアする必要がある。
割込み要因がセットされていると、次の割込みが抑制される。
<割込み要因>
割込み要因には、デジタル信号入力ポート(8点)およびインターバル・タイマの2種類がある。
(インターバル・タイマ308)
インターバル・タイマ308について、以下説明する。
<機能>
設定した周期で割込み要求をセットする。
<チップ・レジスタ>
インターバル・タイマ308は、図4のデバイス領域24に、カウンタ・レジスタ、インターバル設定レジスタ、およびインターバル・タイマ制御レジスタを含むチップレジスタとして割り当てられる。
[カウンタ・レジスタ]
カウンタ・レジスタは、インターバル・タイマ308のカウント値を保持する16ビットのレジスタである。
カウンタ・レジスタの詳細を図21に示す。
図21(a)は、カウンタ・レジスタの構成を示す。
図21(b)は、カウンタ・レジスタの属性を示す。
図21(c)は、カウンタ・レジスタの機能を示す。
[インターバル設定レジスタ]
インターバル設定レジスタは、インターバル・タイマ308のインターバルを設定する16ビットのレジスタである。
インターバル設定レジスタの詳細を図22に示す。
図22(a)は、インターバル設定レジスタの構成を示す。
図22(b)は、インターバル設定レジスタの属性を示す。
図22(c)は、インターバル設定レジスタの機能を示す。
[インターバル・タイマ制御レジスタ]
インターバル・タイマ制御レジスタは、インターバル・タイマ308のインターバル・タイマを制御する16ビットのレジスタである。
インターバル・タイマ制御レジスタの詳細を図23に示す。
図23(a)は、インターバル・タイマ制御レジスタの構成を示す。
図23(b)は、インターバル・タイマ制御レジスタの属性を示す。
図23(c)は、インターバル・タイマ制御レジスタの機能を示す。
<動作>
インターバル・タイマ308の動作を以下に示す。
クロックでタイマをカウントアップし、設定インターバルと比較する。設定インターバルよりタイマが等しいか大きくなったら割込み要求をセットする。このときタイマは自動的に0に戻る。
タイマ動作制御ビットに0を設定するとカウントを一時停止する。
タイマ動作制御ビットに1を設定するとカウントを開始する。このときカウンタはクリアされない。
タイマ・クリアを1に設定すると、カウンタを0にクリアする。カウンタを0にクリアしたタイミングで、チップがレジスタ値を0に書き換える。したがって、タイマ・クリアが1のときはレジスタにWriteアクセスをしないようにする。
(デジタル信号入出力(INPUTコントローラ310))
INPUTコントローラ310(デジタル信号入出力)について、以下説明する。
<機能>
入出力信号8点の状態を保持する。
入力あるいは出力を切り替えることができる。入力として使用する場合、割込みを有効に設定すると、割込みコントローラに割込み要求を出力する。
<チップ・レジスタ>
INPUTコントローラ310は、図4のデバイス領域24に、入出力ポート制御レジスタ、割込み制御レジスタ、入力ポート状態レジスタ、および出力ポート状態レジスタを含むチップレジスタとして割り当てられる。
[入出力ポート制御レジスタ]
入出力ポート制御レジスタは、入出力ポートの有効/無効を設定する16ビットのレジスタである。
入出力ポート制御レジスタの詳細を図24に示す。
図24(a)は、入出力ポート制御レジスタの構成を示す。
図24(b)は、入出力ポート制御レジスタの属性を示す。
図24(c)は、入出力ポート制御レジスタの機能を示す。
[割込み制御レジスタ]
割込み制御レジスタは、入力ポートの割り込みモードを設定する16ビットのレジスタである。
出力ポートとして使用する場合は、設定は無視される。
割込み制御レジスタの詳細を図25に示す。
図25(a)は、割込み制御レジスタの構成を示す。
図25(b)は、割込み制御レジスタの属性を示す。
図25(c)は、割込み制御レジスタの機能を示す。
[入力ポート状態レジスタ]
入力ポート状態レジスタは、入力ポートの状態を保持する16ビットのレジスタである。
入力ポート状態レジスタの詳細を図26に示す。
図26(a)は、入力ポート状態レジスタの構成を示す。
図26(b)は、入力ポート状態レジスタの属性を示す。
図26(c)は、入力ポート状態レジスタの機能を示す。
[出力ポート設定レジスタ]
出力ポート設定レジスタは、出力ポートの状態を設定する16ビットのレジスタである。
出力ポート設定レジスタの詳細を図27に示す。
図27(a)は、出力ポート設定レジスタの構成を示す。
図27(b)は、出力ポート設定レジスタの属性を示す。
図27(c)は、出力ポート設定レジスタの機能を示す。
<動作>
INPUTコントローラ310の動作を以下に示す。
入力として使用するポートは以下のように動作する。
システムクロックに同期して、外部入力ポートの状態を入力ポート状態レジスタに保持する。入力ポート制御レジスタで無効と設定されているポートの状態は常に0となる。
割込みが有効な場合、入力ポートの状態が変化したタイミング(立ち上がり、立ち下がり、あるいは両エッジ)で割込みコントローラに割込み要求を通知する。
出力として使用するポートは以下のように動作する。
システムクロックに同期して、出力ポート制御レジスタで有効(出力ポートとして使用する)と設定された出力ポート設定レジスタの設定値を外部ポートに出力する。
(スイッチ)
疑似デバイス16として、ストップウォッチ300は、上述したように、3つのスイッチを有する。しかし、これらのスイッチには、チップレジスタは割り当てない。スイッチが接続されるデジタル信号入力ポート(上記INPUTコントローラ310参照)を対応付ける。
<機能>
押している間のみON状態を保持するスイッチである。離すとOFF状態に戻る。
<チップ・レジスタ>
上述したとおり、スイッチ自体のデバイス領域24への割り当てはない。
デジタル信号入力ポートと接続して使用する。
ここでは、3つのスイッチを3つのデジタル信号入力ポートIN0〜IN3にそれぞれ接続する。
<動作>
たとえば、図26の入力ポート状態レジスタに、スイッチの状態を保持する。接続されているデジタル信号入力ポート経由で、プログラムからスイッチの状態を参照することができる。
(LCD314、LCDコントローラ312)
LCDコントローラ312およびLCD314について、以下説明する。
<機能>
図12のLCD418の表示機能を提供する。
<チップ・レジスタ>
LCDコントローラ312およびLCD314は、図4のデバイス領域24に、LCD表示モードレジスタ、およびLCD表示データ・メモリレジスタを含むチップレジスタとして割り当てられる。
[LCD表示モードレジスタ]
LCD表示モードレジスタは、LCDの表示モードを制御する16ビットのレジスタである。
LCD表示モードレジスタの詳細を図28に示す。
図28(a)は、LCD表示モードレジスタの構成を示す。
図28(b)は、LCD表示モードレジスタの属性を示す。
図28(c)は、LCD表示モードレジスタの機能を示す。
[LCD表示データ・メモリレジスタ]
LCD表示データ・メモリレジスタは、LCDへ表示する内容を格納する16ビットのレジスタである。
LCD表示データ・メモリレジスタの詳細を図29に示す。
図29(a)は、LCD表示データ・メモリレジスタ(0〜127)の構成を示す。
図29(b)は、LCD表示データ・メモリレジスタの属性を示す。
図29(c)は、LCD表示データ・メモリレジスタの機能を示す。
選択されているCOMとセグメントの交点が点灯しLCD表示を行う。
表示データ・メモリレジスタとCOM信号/SEG信号の関係を、図30のLCD表示データ・メモリレジスタとCOM信号/SEG信号の関係に示す。COM信号は表示データ・メモリレジスタのビット(#0〜#15)に接続されている。表示データ・メモリレジスタ0〜127のビットにひとつでも‘1’が書き込まれていれば、対応するCOM信号が選択状態になる。SEG信号は表示データ・メモリレジスタ0〜127に接続されている。表示データ・メモリレジスタの#0〜#15にひとつでも‘1’が書き込まれていれば、対応するSEG信号が選択状態となる。
<動作>
LCDコントローラ312およびLCD314の動作を以下に示す。
LCD表示モードレジスタのLCDPに1を設定し、LCD表示をONにし、LCDSおよびLCDCを表示領域に合わせて設定する。
設定が完了したら、表示データ・メモリレジスタの点灯したいビットに1を書き込む。
図31に、LCDパネルの例(8×15のLCDパネル)を示す。
このように構成されたストップウォッチ300の動作について、以下説明する。
図32に、ストップウォッチ300の基本動作シーケンスを示す。
<ループloop[常時]>
まず、アクターとして、オペレータ500(図中、「Operator」と示す)が、エミュレーション装置250を起動し、エミュレーションを開始する(ステップS100)と、ループ[常時]が開始される。
図12の疑似ARM CPU12のエミュレーション画面400において、ストップウォッチ300の処理を記載したロードモジュールをロードし疑似メモリ20上に命令を展開する。
疑似ARM CPU504が、疑似メモリ506上の命令をフェッチし、デコードする(ステップS110)。
疑似ARM CPU504が、疑似メモリ506に命令コードを要求し(ステップS111)、デコードした命令を実行し(ステップS120)、ロード/ストア命令であれば(ステップS113)、疑似メモリ506にアクセス(Read/Write)する(ステップS121)。
疑似メモリ506は、疑似チップ508へのアクセスであれば(ステップS115)、該当する疑似チップ508に通知する(ステップS123)。
そして、疑似メモリ506または疑似チップ508から疑似ARM CPU504に、応答が返された後、疑似ARM CPU504からクロック管理502にクロックが通知される(ステップS130)。通知に従い、クロック管理502は、クロック管理を開始する。
<タイミング通知(オペレーションopt[イベント発生])>
クロック管理502は、イベント登録されている疑似チップ508にタイミングを通知する(ステップS200)。
疑似チップ508は、レジスタの内容を解釈して所定の動作(疑似メモリ506へのアクセス(Read/Write)(ステップS210)や疑似デバイス510への通知(ステップS220)など)を行う。
疑似デバイス510は、通知された指令内容を実行し、疑似デバイス508に応答を返す(ステップS221)。
疑似デバイス508は、イベント(応答時間)をクロック管理502に登録する(ステップS230)。
<タイミング通知(オペレーションopt[イベント発生])>
クロック管理502は、応答時間に達したことを疑似チップ508に通知する(ステップS300)。
疑似チップ508は、応答内容を解釈し疑似メモリ506にアクセス(Read/Write)する(ステップS310)。
(実施例2)
図33に示すように、疑似デバイス16または疑似チップ14を、図10の編集画面290で選択し、編集することで、他の組み込み機器として動作させることができる。
たとえば、ここでは、LCD、ボリュームスピーカなどを選択することで、図33のミュージックプレーヤ350をエミュレーションすることが可能になる。
このように、組み込み機器の周辺装置として、疑似チップ14または疑似デバイス16を選択して組み込み機器の構成を編集することで、様々な組み込み機器のエミュレーションを行うことが可能になる。
以上説明したように、本発明によれば、周辺デバイスの動作コードおよび周辺デバイスのカスタマイズにより、別の組み込み機器(別システム)として動作することが可能である。
このことにより、多種に亘る教育が可能であり、組込みシステム開発の理解に効果があると考えられる。
また、実機で動作させる前に、動作確認が可能になり、実機のハードウェアの不具合による動作不良と、ソフトウェアのバグによる動作不良を見極め易くなる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するエミュレーション装置を実現するコンピュータが実行するプログラムであって、
前記コンピュータは、前記組み込みプログラムを記憶する組み込みプログラム記憶領域、および前記ARMプロセッサと前記周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域を有する記憶装置を備え、
前記コンピュータに、
前記組み込みプログラムを受け付ける手順、
前記組み込みプログラムの命令を前記プログラム記憶領域から読み出し、前記命令の実行時に実行すべき処理が割り当てられた前記疑似デバイスレジスタ領域にアクセスして、前記周辺装置の動作を疑似する処理を実行させる手順を実行させるためのプログラム。
(付記2)
付記1に記載のプログラムにおいて、
前記記憶装置は、前記組み込み機器が組み込み可能な複数種類の周辺装置毎に、前記周辺装置の動作を疑似する処理をそれぞれ割り当てた複数の前記疑似デバイスレジスタ領域を有し、
前記コンピュータに、さらに、
エミュレーション対象の前記組み込み機器に組み込む周辺装置の構成を受け付ける手順、
受け付けた前記周辺装置の構成に従って、該当する前記周辺装置の前記疑似デバイスレジスタ領域を、前記組み込みプログラムの実行時に使用し、前記周辺装置の構成をカスタマイズした前記組み込み機器をエミュレーションする手順を実行させるためのプログラム。
(付記3)
付記1または2に記載のプログラムにおいて、
前記疑似デバイスレジスタ領域に割り当てられた前記周辺装置の動作を疑似する前記処理は、前記周辺装置の操作または動作に対応する入力または出力を模擬する処理を含み、
前記コンピュータに、
前記周辺装置の入力または出力を模擬する処理の結果に基づいて前記周辺装置の操作または動作を確認できるユーザインタフェースを前記周辺装置毎に提供する手順をさらに実行させ、
前記周辺装置の構成に従って、前記ユーザインタフェースを組み合わせ、前記組み込み機器の各前記周辺装置の入力または出力を模擬し、前記組み込み機器の前記周辺装置の操作または動作を確認できるユーザインタフェースを提供するプログラム。
(付記4)
ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するエミュレーション装置であって、
前記組み込みプログラムを記憶するプログラム記憶領域、および前記ARMプロセッサと前記周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域を有する記憶装置と、
前記組み込みプログラムを受け付けるプログラム受付手段と、
前記組み込みプログラムの命令を前記プログラム記憶領域から読み出し、前記命令の実行時に実行すべき処理が割り当てられた前記疑似デバイスレジスタ領域にアクセスして、前記周辺装置の動作を疑似する処理を実行させる実行手段と、を備えるエミュレーション装置。
(付記5)
付記4に記載のエミュレーション装置において、
前記記憶装置は、前記組み込み機器に組み込み可能な複数種類の周辺装置毎に、前記周辺装置の動作を疑似する処理をそれぞれ割り当てた複数の前記疑似デバイスレジスタ領域を有し、
エミュレーション対象の前記組み込み機器に組み込む周辺装置の構成を受け付ける構成受付手段をさらに備え、
前記構成受付手段が受け付けた前記周辺装置の構成に従って、前記実行手段が、該当する前記周辺装置の前記疑似デバイスレジスタ領域を、前記組み込みプログラムの実行時に使用し、前記周辺装置の構成をカスタマイズした前記組み込み機器をエミュレーションするエミュレーション装置。
(付記6)
付記4または5に記載のエミュレーション装置において、
前記疑似デバイスレジスタ領域に割り当てられた前記周辺装置の動作を疑似する前記処理は、前記周辺装置の操作または動作に対応する入力または出力を模擬する処理を含み、
前記周辺装置の入力または出力を模擬する処理の結果に基づいて前記周辺装置の操作または動作を確認できるユーザインタフェースを前記周辺装置毎に提供する入出力模擬手段をさらに備え、
前記入出力模擬手段が、前記周辺装置の構成に従って、前記ユーザインタフェースを組み合わせ、前記組み込み機器の各前記周辺装置の入力または出力を模擬し、前記組み込み機器の前記周辺装置の操作または動作を確認できるユーザインタフェースを提供するエミュレーション装置。
(付記7)
付記4乃至6いずれか一項に記載のエミュレーション装置において、
パーソナルコンピュータ、サーバコンピュータ、またはタブレット端末を用いて実現されるエミュレーション装置。
(付記8)
付記4乃至7いずれか一項に記載のエミュレーション装置を用いた組み込み機器の開発支援システム。
(付記9)
ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するコンピュータを用いたエミュレーション方法であって、
前記コンピュータは、前記組み込みプログラムを記憶する組み込みプログラム記憶領域、および前記ARMプロセッサと前記周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域を有する記憶装置を備え、
前記コンピュータが、
前記組み込みプログラムを受け付け、
前記組み込みプログラムの命令を前記プログラム記憶領域から読み出し、前記命令の実行時に実行すべき処理が割り当てられた前記疑似デバイスレジスタ領域にアクセスして、前記周辺装置の動作を疑似する処理を実行させるエミュレーション方法。
(付記10)
付記9に記載のエミュレーション方法において、
前記記憶装置は、前記組み込み機器に組み込み可能な複数種類の周辺装置毎に、前記周辺装置の動作を疑似する処理をそれぞれ割り当てた複数の前記疑似デバイスレジスタ領域を有し、
前記コンピュータが、さらに、
エミュレーション対象の前記組み込み機器に組み込む周辺装置の構成を受け付け、
受け付けた前記周辺装置の構成に従って、該当する前記周辺装置の前記疑似デバイスレジスタ領域を、前記組み込みプログラムの実行時に使用し、前記周辺装置の構成をカスタマイズした前記組み込み機器をエミュレーションするエミュレーション方法。
(付記11)
付記9または10に記載のエミュレーション方法において、
前記疑似デバイスレジスタ領域に割り当てられた前記周辺装置の動作を疑似する前記処理は、前記周辺装置の操作または動作に対応する入力または出力を模擬する処理を含み、
前記コンピュータが、
前記周辺装置の入力または出力を模擬する処理の結果に基づいて前記周辺装置の操作または動作を確認できるユーザインタフェースを前記周辺装置毎に提供し、
前記周辺装置の構成に従って、前記ユーザインタフェースを組み合わせ、前記組み込み機器の各前記周辺装置の入力または出力を模擬し、前記組み込み機器の前記周辺装置の操作または動作を確認できるユーザインタフェースを提供するエミュレーション方法。
3 ネットワーク
10 コンピュータ(PC)
12 疑似ARM CPU
14 疑似チップ
16 疑似デバイス
20 疑似メモリ
22 ベクタ・テーブル領域
24 デバイス領域
26 プログラム領域
100 エミュレーション装置
102 プログラム受付部
106 実行部
110 記憶装置
112 組み込みプログラム記憶領域
114 疑似デバイスレジスタ領域
120 CPU
122 メモリ
124 ハードディスク
126 ネットワーク通信部
128 操作受付部
130 表示制御部
134 バス
150 入力装置
152 表示装置
200 エミュレーション装置
202 入出力模擬部
250 エミュレーション装置
252 構成受付部
260 周辺装置構成選択画面
262 周辺機器リスト
264 反転表示部
272 疑似デバイス確認画面
280 周辺装置画像
290 編集画面
300 ストップウォッチ
304 RAM
306 割込みコントローラ
308 インターバル・タイマ
310 INPUTコントローラ
312 LCDコントローラ
314 LCD
316 バス
350 ミュージックプレーヤ
400 エミュレーション画面
402 レジスタ状態欄
404 メモリ状態欄
406 CPU状態欄
410 組み込み機器操作画面
412 ストップウォッチ外観図
414 LAPボタン
416 スタート/ストップボタン
418 LCD
420 リセットボタン
422 モードボタン
500 オペレータ
502 クロック管理
504 疑似ARM CPU
506 疑似メモリ
508 疑似チップ
510 疑似デバイス

Claims (10)

  1. ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するエミュレーション装置であって、
    前記組み込みプログラムを記憶するプログラム記憶領域、および前記ARMプロセッサと前記周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域を有する記憶装置と、
    前記組み込みプログラムを受け付けるプログラム受付手段と、
    前記組み込みプログラムの命令を前記プログラム記憶領域から読み出し、前記命令の実行時に実行すべき処理が割り当てられた前記疑似デバイスレジスタ領域にアクセスして、前記周辺装置の動作を疑似する処理を実行させる実行手段と、を備え
    前記組み込みプログラムは、前記ARMプロセッサと前記周辺装置を動作させる命令を含む実行形式のプログラムであり、
    前記疑似デバイスレジスタ領域は、前記組み込みプログラムの各命令の実行時にアクセスすべき、前記周辺装置の動作を模擬する処理がそれぞれ割り当てられるレジスタビットを有し、
    前記実行手段は、前記組み込みプログラムから順次前記命令を読み出し、各命令を、割り当てられた前記疑似デバイスレジスタの前記レジスタビットに変換し、当該レジスタビットにアクセスし、前記アクセスされた前記レジスタビットに応じた前記周辺装置の動作を疑似する処理を実行させるエミュレーション装置。
  2. 請求項1に記載のエミュレーション装置において、
    前記記憶装置は、前記組み込み機器に組み込み可能な複数種類の周辺装置毎に、前記周辺装置の動作を疑似する処理をそれぞれ割り当てた複数の前記疑似デバイスレジスタ領域を有し、
    エミュレーション対象の前記組み込み機器に組み込む周辺装置の構成を受け付ける構成受付手段をさらに備え、
    前記構成受付手段が受け付けた前記周辺装置の構成に従って、前記実行手段が、該当する前記周辺装置の前記疑似デバイスレジスタ領域を、前記組み込みプログラムの実行時に使用し、前記周辺装置の構成をカスタマイズした前記組み込み機器をエミュレーションするエミュレーション装置。
  3. 請求項1または2に記載のエミュレーション装置において、
    前記疑似デバイスレジスタ領域に割り当てられた前記周辺装置の動作を疑似する前記処理は、前記周辺装置の操作または動作に対応する入力または出力を模擬する処理を含み、
    前記周辺装置の入力または出力を模擬する処理の結果に基づいて前記周辺装置の操作または動作を確認できるユーザインタフェースを前記周辺装置毎に提供する入出力模擬手段をさらに備え、
    前記入出力模擬手段が、前記周辺装置の構成に従って、前記ユーザインタフェースを組み合わせ、前記組み込み機器の各前記周辺装置の入力または出力を模擬し、前記組み込み機器の前記周辺装置の操作または動作を確認できるユーザインタフェースを提供するエミュレーション装置。
  4. 請求項1乃至3いずれか一項に記載のエミュレーション装置において、
    パーソナルコンピュータ、サーバコンピュータ、またはタブレット端末を用いて実現されるエミュレーション装置。
  5. 請求項1乃至4いずれか一項に記載のエミュレーション装置を用いた組み込み機器の開発支援システム。
  6. ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するコンピュータを用いたエミュレーション方法であって、
    前記コンピュータは、前記組み込みプログラムを記憶する組み込みプログラム記憶領域、および前記ARMプロセッサと前記周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域を有する記憶装置を備え、
    前記組み込みプログラムが、前記ARMプロセッサと前記周辺装置を動作させる命令を含む実行形式のプログラムであり、
    前記疑似デバイスレジスタ領域が、前記組み込みプログラムの各命令の実行時にアクセスすべき、前記周辺装置の動作を模擬する処理がそれぞれ割り当てられるレジスタビットを有し、
    前記コンピュータが、
    前記組み込みプログラムを受け付け、
    前記組み込みプログラムの命令を前記プログラム記憶領域から読み出し、前記命令の実行時に実行すべき処理が割り当てられた前記疑似デバイスレジスタ領域にアクセスして、前記周辺装置の動作を疑似する処理を実行させ
    前記組み込みプログラムから順次前記命令を読み出し、各命令を、割り当てられた前記疑似デバイスレジスタの前記レジスタビットに変換し、当該レジスタビットにアクセスし、前記アクセスされた前記レジスタビットに応じた前記周辺装置の動作を疑似する処理を実行させるエミュレーション方法。
  7. 請求項6に記載のエミュレーション方法において、
    前記記憶装置は、前記組み込み機器に組み込み可能な複数種類の周辺装置毎に、前記周辺装置の動作を疑似する処理をそれぞれ割り当てた複数の前記疑似デバイスレジスタ領域を有し、
    前記コンピュータが、さらに、
    エミュレーション対象の前記組み込み機器に組み込む周辺装置の構成を受け付け、
    受け付けた前記周辺装置の構成に従って、該当する前記周辺装置の前記疑似デバイスレジスタ領域を、前記組み込みプログラムの実行時に使用し、前記周辺装置の構成をカスタマイズした前記組み込み機器をエミュレーションするエミュレーション方法。
  8. 請求項6または7に記載のエミュレーション方法において、
    前記疑似デバイスレジスタ領域に割り当てられた前記周辺装置の動作を疑似する前記処理は、前記周辺装置の操作または動作に対応する入力または出力を模擬する処理を含み、
    前記コンピュータが、
    前記周辺装置の入力または出力を模擬する処理の結果に基づいて前記周辺装置の操作または動作を確認できるユーザインタフェースを前記周辺装置毎に提供し、
    前記周辺装置の構成に従って、前記ユーザインタフェースを組み合わせ、前記組み込み機器の各前記周辺装置の入力または出力を模擬し、前記組み込み機器の前記周辺装置の操作または動作を確認できるユーザインタフェースを提供するエミュレーション方法。
  9. ARMプロセッサと周辺装置が組み込まれ、組み込みプログラムによって動作する組み込み機器を模擬するエミュレーション装置を実現するコンピュータが実行するプログラムであって、
    前記コンピュータは、前記組み込みプログラムを記憶する組み込みプログラム記憶領域、および前記ARMプロセッサと前記周辺装置の動作を疑似する処理を割り当てた疑似デバイスレジスタ領域を有する記憶装置を備え、
    前記組み込みプログラムは、前記ARMプロセッサと前記周辺装置を動作させる命令を含む実行形式のプログラムであり、
    前記疑似デバイスレジスタ領域は、前記組み込みプログラムの各命令の実行時にアクセスすべき、前記周辺装置の動作を模擬する処理がそれぞれ割り当てられるレジスタビットを有し、
    前記コンピュータに、
    前記組み込みプログラムを受け付ける手順、
    前記組み込みプログラムの命令を前記プログラム記憶領域から読み出し、前記命令の実行時に実行すべき処理が割り当てられた前記疑似デバイスレジスタ領域にアクセスして、前記周辺装置の動作を疑似する処理を実行させる手順
    前記組み込みプログラムから順次前記命令を読み出し、各命令を、割り当てられた前記疑似デバイスレジスタの前記レジスタビットに変換し、当該レジスタビットにアクセスし、前記アクセスされた前記レジスタビットに応じた前記周辺装置の動作を疑似する処理を実行させる手順を実行させるためのプログラム。
  10. 請求項9に記載のプログラムにおいて、
    前記記憶装置は、前記組み込み機器が組み込み可能な複数種類の周辺装置毎に、前記周辺装置の動作を疑似する処理をそれぞれ割り当てた複数の前記疑似デバイスレジスタ領域を有し、
    前記コンピュータに、さらに、
    エミュレーション対象の前記組み込み機器に組み込む周辺装置の構成を受け付ける手順、
    受け付けた前記周辺装置の構成に従って、該当する前記周辺装置の前記疑似デバイスレジスタ領域を、前記組み込みプログラムの実行時に使用し、前記周辺装置の構成をカスタマイズした前記組み込み機器をエミュレーションする手順を実行させるためのプログラム。
JP2012081229A 2012-03-30 2012-03-30 エミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システム Active JP5979709B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012081229A JP5979709B2 (ja) 2012-03-30 2012-03-30 エミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012081229A JP5979709B2 (ja) 2012-03-30 2012-03-30 エミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システム

Publications (2)

Publication Number Publication Date
JP2013210882A JP2013210882A (ja) 2013-10-10
JP5979709B2 true JP5979709B2 (ja) 2016-08-31

Family

ID=49528639

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012081229A Active JP5979709B2 (ja) 2012-03-30 2012-03-30 エミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システム

Country Status (1)

Country Link
JP (1) JP5979709B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111025990B (zh) * 2019-12-25 2021-08-03 山东浪潮科学研究院有限公司 一种基于risc-v的车载终端系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6446845A (en) * 1987-08-18 1989-02-21 Hitachi Ltd Simulation system for microcomputer
JPH03198132A (ja) * 1989-12-27 1991-08-29 Fujitsu Ltd シミュレーション装置
JPH064351A (ja) * 1992-06-24 1994-01-14 Toshiba Corp ビジュアル・シミュレーション装置
JP3129059B2 (ja) * 1993-09-27 2001-01-29 オムロン株式会社 コンピュータ組み込み型商品の開発方法および装置
JPH11194960A (ja) * 1997-12-26 1999-07-21 Toshiba Corp ソフトウェア試験装置
JPH11282693A (ja) * 1998-03-30 1999-10-15 Toshiba Corp Mcuシミュレーション装置、そのシミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000099369A (ja) * 1998-09-17 2000-04-07 Matsushita Electric Ind Co Ltd ビジュアルシミュレーション装置およびその方法とビジュアルシミュレーションプログラム記録媒体
JP2001216178A (ja) * 2000-02-04 2001-08-10 Seiko Epson Corp シミュレーション装置およびシミュレーション方法ならびにシミュレーションプログラムを記憶した記憶媒体
US20020107678A1 (en) * 2001-02-07 2002-08-08 Chuan-Lin Wu Virtual computer verification platform
JP2007264694A (ja) * 2006-03-27 2007-10-11 Seiko Epson Corp 入出力模擬プログラム、該プログラムを記録した記録媒体、入出力模擬装置および入出力模擬方法

Also Published As

Publication number Publication date
JP2013210882A (ja) 2013-10-10

Similar Documents

Publication Publication Date Title
US6915416B2 (en) Apparatus and method for microcontroller debugging
CN101938566B (zh) 一种可视化的终端调试方法和装置
US9535817B2 (en) Application development environment for portable electronic devices
CN101344899B (zh) 一种片上系统的仿真测试方法及仿真测试系统
KR100233188B1 (ko) 프로그램 실행을 인터럽트하지 않고 스테이터스 데이터를 얻는 컴퓨터 시스템 및 방법
JP2010015534A (ja) マルチコアマイコンシステムのシミュレーション方法及びシミュレーション装置
Black et al. A full system x86 simulator for teaching computer organization
Lacamera Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems
CN113360440B (zh) 处理器通信控制方法及相关产品
Ostrander Android UI Fundamentals: Develop and Design
RU2012149584A (ru) Устройство, способ, компьютерная программа и пользовательский интерфейс
JP5979709B2 (ja) エミュレーション装置、エミュレーション方法、プログラム、および組み込み機器の開発支援システム
CN114385524A (zh) 嵌入式固件仿真系统及其方法、装置和电子设备
Kloboves et al. FPGA-based SIC/XE processor and supporting toolchain
JP2005353020A (ja) コンピュータプログラムのシミュレーション方式
JP2002366378A (ja) プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体
CN112579169B (zh) 处理器追踪流的生成方法及装置
JP3270729B2 (ja) 拡張命令セット・シミュレータ
JP2001216176A (ja) デバッグ装置およびデバッグ方法ならびにデバッグプログラムを記憶した記憶媒体
CN115291953A (zh) 中央处理器的控制方法、装置、设备及存储介质
Kosowska et al. Implementing the Bus Protocol of a Microprocessor in a Software-Defined Computer
EP2385467A1 (en) State display apparatus
Lacamera Embedded Systems Architecture: Design and write software for embedded devices to build safe and connected systems
CN116974945A (zh) 一种基于qemu仿真的硬件调试系统及调试方法
JPS63271542A (ja) Romデバツガ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160721

R150 Certificate of patent or registration of utility model

Ref document number: 5979709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150