JPH02146630A - マイクロプロセッサのプログラム開発システム - Google Patents

マイクロプロセッサのプログラム開発システム

Info

Publication number
JPH02146630A
JPH02146630A JP63299668A JP29966888A JPH02146630A JP H02146630 A JPH02146630 A JP H02146630A JP 63299668 A JP63299668 A JP 63299668A JP 29966888 A JP29966888 A JP 29966888A JP H02146630 A JPH02146630 A JP H02146630A
Authority
JP
Japan
Prior art keywords
microprocessor
emulator
output
information
standard input
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.)
Granted
Application number
JP63299668A
Other languages
English (en)
Other versions
JP2888242B2 (ja
Inventor
Shiro Oba
大庭 史朗
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.)
Fujitsu Ltd
Fujitsu Microcomputer Systems Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Microcomputer Systems 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 Fujitsu Ltd, Fujitsu Microcomputer Systems Ltd filed Critical Fujitsu Ltd
Priority to JP63299668A priority Critical patent/JP2888242B2/ja
Publication of JPH02146630A publication Critical patent/JPH02146630A/ja
Application granted granted Critical
Publication of JP2888242B2 publication Critical patent/JP2888242B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概 要〕 被開発装置に於けるマイクロプロセッサのプログラム開
発システムに関し、 クロス開発環境においてもセルフ開発環境において一般
的に行われている標準入出力関数を用いてのプログラム
評価を被開発装置におけるマイロプロセッサのシステム
評価にても行えるようにすることを目的とし、少なくと
もオペレーティングシステムとエミュレータを制御する
システムを内蔵し、被開発装置に於けるマイクロプロセ
ッサのプログラムの開発を実行する開発マシン、該開発
マシンにより制御されるエミュレータ及び該エミュレー
タに接続され、該エミュレータによりそのプログラムが
制御されるマイロプロセ・ノサを有する被開発装置とか
ら構成されたクロス開発環境下での被開発装置のマイロ
プロセッサのプログラム開発において、該開発マシンに
ロードされるコンパイラが出力するオブジェクトファイ
ル内に予め該被開発装置のマイロプロセッサ制御用情報
及び標準入出力機能を実行させる標準入出力情報とを含
ませておく手段、該オブジェクトファイルが当該システ
ムにロードされた時に該被開発装置のマイロプロセッサ
の制御情報をエミュレータのメモリにストアしておく手
段、該標準入出力機能を実行するためサブルーチンを含
む標準入出力情報を該開発マシンのメモリにストアする
手段、及び該標準入出力情報Gこ関する標準入出力シン
ボルテーブルと標準入出力割り込みテーブルとを該開発
マシンのメモリか該エミュレータのメモリの何れかにス
トアする手段とをそれぞれ設けるとともに。
該被開発装置のマイロプロセッサのプログラムの実行情
報と該標準入出力割り込みテーブルの情報とを比較検出
する手段を該エミュレータに設けておき、該エミュレー
タが該被開発装置のマイロプロセッサのプログラムを制
御し実行させるに際し1命令毎に当該プログラムの実行
情報をエミュレータににて読みとり、該比較検出手段に
おいて当該実行情報と該割り込みテーブルの情報とを比
較し1両者が一致した場合にはエミュレータは該被開発
装置のマイロプロセッサのプログラムの実行停止を指示
すると共に、当該標準入出力に関する関数情報を該標準
入出力シンボルテーブルから選択して該開発マシンへ送
り、該標準入出力関数情報に該当する標準人出カサブル
ーチンを該開発マシンに実行させるように構成する。
〔産業上の利用分野] 本発明はマイクロコンピュータの制御ソフトウェアを開
発する際の例えば高級言語を用いたクロスコンパイラの
利用をより容易にするためのマンマシンインターフェー
スを向上するためのもので、マイクロコンピュータの制
御プログラム開発の分野で利用されるものである。
又より具体的には、被開発装置に於けるマイクロプロセ
ッサのプログラムの開発を実行する為にマイクロプロセ
ッサを内蔵している開発マシン(以下開発マシンと言う
)を使用して、該開発マシンのマイクロプロセッサと被
開発装置に於けるマイクロプロセッサとが互換性のない
異なる機械語で動作するクロス開発環境下(以下単にク
ロス開発環境下と言う)において被開発装置のマイロプ
ロセッサ等のマイクロコンピュータのプログラムを開発
及び評価する場合においても高級言語のようなりロスコ
ンパイラを用いてセルフ開発環境下におけると同様の手
法でその開発評価が出来るシステムに関するものである
〔従来の技術〕
マイクロコンピュータを内蔵した被開発装置。
例えば温風ヒータとかエアコン等はこれ等の製品が出荷
される以前に、組み込まれたマイロプロセッサのコンピ
ュータプログラムが正常に作動するかどうかを検査し評
価することが一般的に行われている。
従来、このようなマイクロコンピュータの制御ソフトウ
ェア開発環境はアセンブラ−辺側であったが、近年高級
言語、それもC言語を使用するプログラマが増加し、そ
れに伴い高級言語デバッグをサポートするソフトウェア
シュミレータが出現している。
処で従来においてこの様な被開発装置のマイロプロセッ
サのプログラムを開発するに際しては通常セルフ開発環
境の下で実行されている。セルフ開発環境とは被開発装
置のマイロプロセッサと開発マシン例えばパソコンのマ
イクロプロセッサとが同一種類の機械語で動作する場合
を云い、−船釣にはパソコンのマイクロプロセッサが被
開発装置のマイロプロセッサを制御しながら評価が行わ
れるものであり、アセンブラにより機械語と1対1に対
応して実行されていた。然しなから実際の作業としては
、マイロプロセッサにおりるプログラムが正しく動作し
ているかをみるには該マイクロプロセッサの動作をいち
いちブレークしてそのたびに調べたい値についての変数
をメモリをのぞいてその値をみる必要がある。かかるや
り方はかなり辛抱強さがいる。つまりこのシステムでは
変数変化が予想されるアドレスを予め指定してそこで実
行を停めて別のコマンドを用いてメモリの中を見ること
により確認しそれから別の実行に移るという繁雑さが要
求されていた。
かかる繁雑さを解消する方法としてコンパイラつまり高
級言語例えばC言語を用いてデBソゲすることが盛んに
なりアセンブラを知らなくても被開発装置に於けるマイ
クロプロセッサのプログラム開発が出来るようになって
来た。そして更にパソコン側のマイクロプロセッサに被
開発装置のマイロプロセッサの制御を代行させ1例えば
C言語のコンパイラで上記の開発を行う場合には、プロ
グラムの実行において高級言語が正しいか否かを調べる
のにプログラムの途中に標準入出力関数例えば“pri
ntf”文を挿入しておき、その“printf”文に
より要求された変数をパソコンのCRT画面に表示させ
て確認するというような方法で実行されており、手軽な
方法としてよく使用されている。
この方法ではセルフ開発であるため動作する被開発装置
のマイロプロセッサと開発マシンのマイクロプロセッサ
とが同一種類の機械語で動作するものであり、従って該
被開発装置のマイロプロセッサの動作をパソコンのマイ
クロプロセッサで代行することが可能となるのである。
又このような高級言語を扱っている人はいちいちプログ
ラムの実行を停めずに調べたい変動データや情報をCR
Tに表示して確認する方法に慣れているのが一般的であ
る。
一方かかる評価システムにおいてセルフ開発環境とは異
なりデバッグするプログラムを調べるパソコン用のマイ
クロプロセッサと該被開発装置のマイロプロセッサとが
異なる種類の機械語で動作する場合のプログラム開発を
行う即ちクロス開発環境の場合には、パソコンのマイク
ロプロセッサで代行する事が出来ない。
従って、前述したように被開発装置のシステムの制御は
直接には該被開発装置のマイロプロセッサが行い、パソ
コン側のマイクロプロセッサがこの被開発装置のマイロ
プロセッサをエミュレータを介して止めたり、走らせた
りすることによって間接的に被開発装置のシステムの制
御を行う方式を取らざるを得なくなる。
その場合において、プログラムの途中に例えばprin
tf”文を挿入して実行させたとしてもマイロプロセッ
サに通常表示機能がないため直ちにその結果を表示する
ことは出来ない。
然しなから前述のように高級言語による評価に慣れてい
る人の要望もあり、クロス開発環境下でもセルフ開発環
境と同じような評価システムが確立されることが望まれ
ていた。
〔発明が解決しようとする課題〕
従って本発明の目的はクロス開発環境下においてもセル
フ開発環境において一般的に行われている標準入出力関
数を用いて被開発装置のマイクロプロセッサのプログラ
ム開発を行うことの出来る方法を従供しよう吉するもの
である。
〔課題を解決するための手段〕
上記の目的を達成するため、現物のマイロプロセッサの
システムを評価するにはエミュレータを用いて評価する
必要があり、高級言語をサポートしているクロスコンパ
イラ及びそれに対応したエミュレータを用意してプログ
ラム開発や評価にセルフ開発環境と同一のデバッグ手法
をとることを可能にする必要があり、かかる技術的課題
を実現するために次のような技術的構成を採用したもの
である。即ち、 少なくともオペレーティングシステムとエミュレータを
制御するシステムを内蔵し、被開発装置に於けるマイク
ロプロセッサのプログラムの開発を実行する開発マシン
(以下単に開発マシンと言う)、該開発マシンにより制
御されるエミュレータ及び該エミュレータに接続され、
該エミュレータによりそのプログラムがIJ4卸される
マイロプロセッサを有する被開発装置とから構成され、
且つ該開発マシンのマイクロプロセッサと該被開発装置
に於けるマイクロプロセッサとが異なる機械語で動作す
るクロス開発環境下(以下単にクロス開発環境下と言う
)での被開発装置におりるマイクロプロセッサのプログ
ラム開発システムにおいて。
該開発マシンにロードされるコンパイラが出力するオブ
ジェクトファイル内に予め該被開発装置のマイロプロセ
ッサ制御用情報及び標準入出力機能を実行させる標準入
出力情報とを含ませてお(手段、該オブジェクトファイ
ルが当該システムにロードされた時に該被開発装置のマ
イロプロセッサの制御情報をエミュレータのメモリにス
トアしておく手段、該標準入出力機能を実行するためサ
ブルーチンを含む標準入出力情報を該開発マシンのメモ
リにストアする手段、及び該標準入出力情報に関する標
準入出力シンボルテーブルと標準入出力割り込みテーブ
ルとを該開発マシンのメモリか該エミュレータのメモリ
の何れかにストアする手段とをそれぞれ設けるとともに
、該被開発装置のマイロプロセッサのプログラムの実行
情報と該標準入出力割り込みテーブルの情報とを比較検
出する手段を該エミュレータに設けておき、該エミュレ
ータが該被開発装置のマイロプロセッサのプログラムを
制御し実行させるに際しl命令毎に当該プログラムの実
行情報をエミュレータにて読みとり、該比較検出手段に
おいて当該実行情報と該割り込みテーブルの情報とを比
較し1両者が一致した場合にはエミュレータは該被開発
装置のマイロプロセッサのプログラムの実行停止を指示
すると共に、当該標準入出力に関する関数情報を該標準
入出力シンボルテーブルから選択して該開発マシンへ送
り、該標準入出力関数情報に該当する標準入出カサブル
ーチンを該開発マシンに実行させる被開発装置のマイク
ロプロセンサのプログラム開発システムである。
つまり2本発明の基本的技術思想は開発マシンと被開発
装置のマイロプロセッサ及びエミュレータとからなるク
ロス開発環境下でのマイロプロセッサのプログラム開発
において、該開発マシンにおけるコンパイラが出力する
オブジェクトファイル内に該被開発装置のマイロプロセ
ッサのネイティブなコードとセルフ開発環境下で一般に
用意されている標準入出力機能を実行させるための情報
とを含ませ、該情報の出力をエミュレータが識別して該
開発マシンの入出力機能に当該標準入出力機能を代行さ
せるように構成されている被開発装置のマイクロプロセ
ッサのプログラム開発及び評価システムである。
ここで、上記の開発マシンとは被開発装置に於けるマイ
クロプロセッサのプログラムの開発を実行する為にマイ
クロプロセッサを主体としキーボード、表示装置等を含
んで構成されている機器を指すものである。
〔作  用〕
本発明にあっては、開発マシンとマイロプロセッサを有
する被開発装置及びエミュレータとからなるクロス開発
環境下での被開発装置のマイロプロセッサのプログラム
開発システムにおいて、コンパイラが出力する開発マシ
ンにロードされるオブジェク1−ファイル内に該被開発
装置のマイロプロセッサのネイティブな制御情報と標準
入出力機能を実行させるための標準入出力情報とを含ま
せておき、該被開発装置のマイロプロセンサのネイティ
ブな制御情報に基きエミュレータを介して該被開発装置
のマイロプロセッサのプログラムを実行させると共にそ
の実行情報をエミュレータにおいて該標準入出力情報と
比較、識別させ、該画情報が一致した時にエミュレータ
が該被開発装置のマイロプロセッサのプログラムの実行
を停止すると同時に、当該標準入出力に関する情報を開
発マシンへ送り該標準入出力機能の実行を該開発マシン
の標準入出力機能に代行させるものであるからクロス開
発環境下においてもセルフ開発環境下におけると同様に
パソコンのCRTを見ながら被開発装置のマイロプロセ
ッサのプログラムにおけるデバッグを実行することが出
来る。
〔実施例〕
以下に本発明を実施例の形で詳しく説明する。
まず本発明におけるようなりロス開発環境下において、
セルフ開発環境におけると同じ標準入出力関数を用いて
被開発装置のマイロプロセッサのプログラムを開発、評
価する場合には例えば第2図に示すように000番地か
ら FFF番地まで構成されたクロス開発用プログラムが実
行されている間にaaa番地であるデータ(“’Var
″)がどう変化しているかを見たい場合“printf
  ”以下の文を挿入しく例えば’printf(“a
−%d”、 Var)として変数 Varの値を“a−
1234”の形式で10進表示するよう指示)これを実
行するに当たっては、該被開発装置のマイロプロセッサ
ではこれを表示出来ないため開発マシンのパソコンのマ
イクロプロセッサを使ってこの情報を画面に出すことに
したものである。従って被開発装置のシステム上のマイ
クロプロセッサは本来ずっと動いているが“print
f”文が挿入されていた箇所に出合うとパソコン上のマ
イクロプロセッサがそれを検知し1画面表示のためVa
r”のデータをエミュレータを通じて見に行きそのデー
タ(工5) をパソコンの方で例えば” a =1234”というよ
うな表示をCRTにさせることになる。
かかるシステムを実行するための基本構成図が第1図に
示されており、開発マシン1と温風ヒータ、エアコン等
の被開発装置3との間にエミュレータ2を介在させるも
のであり、開発マシンlには当然オペレーティングシス
テム4、及びエミュレータ制御ソフト6等が含まれてい
る。又、かかる本発明のシステムにおいて開発マシンに
関する基本ソフトを含むコンパイラ5が出力するオブジ
ェクトファイル7内に被開発装置3のマイロプロセッサ
13のネイティブな情報コードとコンパイラのソースプ
ログラムにおいて記述された標準入出力情報9例えばC
言語であれば、getc+ puLc、 printf
、 fprintf、 5canf2 f 5canf
  等の標準入出力関数データをデバッグ情報として含
ませるものである。
この場合両者は互いに異なるオブジェクトレコードタイ
プを用いて含ませることが出来る。
その他、該オブジェクトファイル7にばネイティブ情報
のシンボル情報と標準入出力情報のシンボル情報とを含
ませておくことも出来る。
その後、本発明においては第1図に示されるようにエミ
ュレータを介して該プログラムを開発評価するに当たり
、ローダプルオブジェクトファイル7内に含まれるネイ
ティブ情報、標準入出力情報、ネイティブ情報のシンボ
ル情報及び標準入出力情報のシンボル情報の内、ネイテ
ィブコードはエミュレタのメモリ12にロードし、その
他は後述する種々の形式で開発マシンのメモリ8又はエ
ミュレータのメモリ9にロードしておく。
そしてプログラムの実行に当たってはブレークポイント
で指定されたシンボルの種別によりエミュレーションメ
モリの実行か標準入出力の代行かを判断してその実行を
切り分ける機能をエミュレータ2に持たせておくもので
ある。第1図において7はローダプルオブジェクトのフ
ァイル、7はクロスコンパイラが出力する絶対形式オブ
ジェクトプログラムのレコード形式である。又8はボス
1〜マシンメモリで9及び12はエミュレータのメモリ
でありそれぞれその内にロードされるデータの種類を示
している。
尚、該エミュレータメモリ内のデータは開発マシンのメ
モリ8に含ませておくこともできる。
本発明において使用されるエミュレータは被開発装置の
マイロプロセッサのプログラムを制御する機能を有して
おり該マイロプロセッサとその周辺リソースを必要な時
点でエミュレータのハードを用いて代行する機能を有す
るものであればよい。
通常被開発装置のマイロプロセッサのプログラムはいっ
たん走り出したら被開発装置内で実行されるから好きな
番地では止められないためエミュレータが該被開発装置
のマイロプロセッサの動作を止めたり進めたりする。具
体的には、一般にプローブと称するエミュレータ本体(
ハード)から引き出されたリード線の先端に取り付けら
れているソケットを被開発装置からマイロプロセッサを
取り外した跡にさし込んでエミュレータのマイクロプロ
セッサにより被開発装置のプログラムを制御する(つま
りプログラムを走らせる、停める、どの番地まで実行す
るか等)ものであってハードそのものはそれほど複雑な
ものでなくてもよい。
次に本発明にあっては2本システムを作動される為の基
本ソフトを含むクロスコンパイラを準備する必要がある
係るクロスコンパイラは例えば、 MS−008(マイ
クロソフト社のオペレーティングシステム@)環境の下
で制御用マイクロコントローラのクロスコンパイラを作
成する。このクロスコンパイラはprint f 2 
s”can f等のC言語の標準入出力関数がソースプ
ログラムに記述されていると標準入出力レコードを出力
する。又、本発明では、該標準入出力レコードから、標
準入出力関数に対応するホストマシンコードを開発マシ
ン1のマイクロプロセッサ(ホストコンピュータ)側で
サブルーチンの形でメモリ8中にロードしておく。
一方エミュレータ2は該プログラムのロード時に標準入
出力レコードに対応した標準入出力割り込みテーブル1
1と標準入出力シンボルテーブル10とを作成しメモリ
9にストアしておく。
尚、前記したように、該標準入出力割り込みテーブル1
1と標準入出力シンボルテーブル10とは開発マシンの
メモリ8にストアしておくこともできるがデーター処理
のスピードが低下するため該テーブルを開発マシン側に
設けることは得策ではない。
以下に本発明に於けるシステムの実行手順を第3図のフ
ローチャートに従って説明すると、エミュレータが被開
発装置のプログラムの実行中(s tepa)にその実
行アドレスをエミュレータに転送しく5tep b) 
、該アドレスがエミュレータ(ハード)上のメモリ (
RAM)に作成された該標準入出力割り込みテーブルの
割り込みアドレスと一致するかを一命令毎に比較しく5
tep c) 、そのテーブルのアドレスの1つと一致
したら例えば現行アドレスと該テーブル中のアドレス2
00 h (”printf”文)と一致したらその情
報にもとづきエミュレータが被開発装置のプログラム実
行を中止する(step d)と共に関数情報を選択し
く5tep e) 、これを開発マシンのマイクロプロ
セッサに送り(step f)標準入出力関数(プリン
ト或いはCRT表示等)の処理を割り込み実行させる(
step g)ものである。
プログラム実行時に該標準入出力割り込みアドレスをソ
フトウェアのブレークポイントと考え、割り込みをかけ
、その時点でエミュレータは被開発装置のマイクロプロ
セッサをホールドさせ、標準入出力割り込みテーブルの
情報を参照することによりどの標準入出力関数部分を実
行するかを判断して制御をホストマシンに移す。ホスト
マシンは標準入出力処理を実行し終了したら制御をエミ
ュレータに戻すのである。
この処理が終了後エミュレータは被開発装置のシステム
の実行を再開する(step h)。
又他の具体例としては、上記標準入出力割り込みテーブ
ルを開発マシンのマイクロプロセッサに作成しておき、
被開発装置のシステムの実行中にその実行状態をエミュ
レータを介して開発マシンのマイクロプロセッサに送り
そこで前記と同じ比較処理を行わせ実行アドレスが該テ
ーブル上の割り込みアドレスの1つと一致した場合には
その情報をエミュレータに戻し上記と同じ処理を行うよ
うにしても良い。本発明では、ホストマシンのマイクロ
プロセッサのプログラムでエミュレータを制御しつつエ
ミュレータのハードに指示を送りエミュレータに被開発
装置のマイロプロセッサの情報を読み込ませそれを開発
マシンに転送させるか又エミュレータ自身で該情報を読
みとり比較してデータがどう変わったかを確認する。
次に本発明において使用されるローダブルオフジェクト
ファイルのデーター構造及び標準入出力関数、同シンボ
ルテーブル、或いは同割り込みテーブル等のデーター構
造について説明する。
第4図に示すようにこのオブジェク1〜フアイルはレコ
ードと呼ばれる形の単位(alから作成されるのであり
、従ってこのファイルはこのデータブロック(alの集
まりから構成されたものである。
以下該データブロックについて簡単な例を用いて説明す
ると、その構成はレコード識別番号■、レコード長■及
びレコードの内容■から出来ている。このレコードには
大別してデータレコードとデバッグ情報レコードとがあ
りその■についての詳細を次に説明するが上記■、と■
の部分については省略する。
まずデータレコードの中味は第5図に示すような単位構
成(b)となっていて、どこのアドレスからロードさせ
るかを示すプログラムロードアドレス■、以下に続く■
の部分のデータのへイト長を示すデータ長■及びメモリ
にロードするデータの内容■とから構成されており、■
のアドレスにより■のデ・−夕をメモリにロードするも
のである。
このデータレコードをエミュレータが読み込んでエミュ
レーションメモリにロードするとそのロード結果は第6
図に示すようになる。例えば■のアドレスが200h、
データ長■が16ハイト、データの内容■が■−010
203・・・であったとするとこれがエミュレーション
メモリ15の斜線の部分にロードされる。
一方デハソグ情報レコードについてみると、デバッグ情
報とはエミュレーションを円滑に行うために用意された
主にシンボル情報であり、例えば数値、変数、ジャンプ
先の記号からなるもので、コンパイラやアセンブラが出
力するものである。
このレコードの単位構成fc)は第7図に示すようにシ
ンボルタイプのとシンボルデータ■及びシンボル定義番
号■から構成されている。
ここでシンボルタイプ■は一般的なものとして数値シン
ボル、変数、分岐先ラベル(ジャンプ先のラベル)が含
まれる。
又シンボルデータ■はシンボルが持っているデータで数
値シンボルであれば数値そのもの、変数、か更にはラベ
ルであればそこにアドレスが格納される。
又シンボル定義番号■はシンボルがコンパイラやアセン
ブラで定義された順に付けられるシリアル番号である。
このレコードをエミュレータが開発マシンのマイクロプ
ロセッサのメモリに又はエミュレータ上のメモリ (R
AM)にロードすると第8図に示すシンボルテーブル1
6が該マイクロプロセッサのメモリ (ホストマシンメ
モリ)8上に又はエミュレータのメモリ9  (RAM
)上に形成される。
第8図中ラベル1(L6−1)が“Var″′(変数)
とすると例えばSyml−(1)(シンボルタイプに相
当する)を1、Syml−(2)シンボルデータに相当
する)を200h、Syml −(3)  (’z7ボ
ル定義番号に相当する)を1のように形成する。ラベル
n(16−3)におけるSymn  (1)、Symn
(2)、 Symn −(3)も同様である。
次に本発明に使用される標準入出力レコードの構成につ
いて述べる。高級言語を用いた標準入出力関数である例
えばprintf、 fputc2 fgetc、fp
rintf、 fscanf等は一般にはコンソール入
出力関数と考えてよく入力はキーボードによるインプッ
ト、出力はテレビ等に表示することを示している。そこ
で該標準入出力関数がソースプログラム内に記述される
とコンパイラは第9図に示すような標準入出力レコード
(d)を出力する。
該レコード(d )の構成は標準入出力関数識別番号を
番号付けする部分■、該標準入出力関数が記述されたア
ドレスを格納する標準入出力関数側込アドルス部分■と
標準人出力の関数情報を格納する部分■とから成ってお
り、前記標準入出力関数識別番号を予め例えば 1 :  prinLf 2 :  fputc 3 :  fgetc 4 :  fprintf 5  :  fscanf のように割りつけておき、このいずれかを■の部分に格
納する。父上記標準入出力関数割り込みアドレスには例
えば当該関数である’  printf  ″が200
h番地であるとするとこの部分■には200hとなり、
このアドレスの処をプログラムが実行しようとすると割
り込みが入り“’ prinLf  ”の処理をするよ
う命令が出る。更に関数情報の部分■には組み込み関数
特有の情報が入るものであり、このフィールドは各関数
によって異なる。このブタの構成 は膨大であるのでここでは” printf”を使用す
る場合を一例として説明する。
今C言語で“ print f”の書式は次のように表
される。
print f (formaL arg 1 、ar
g 2 +  。= argn )ここでarg 1・
・・arg nは表示したいデータであり、そのデータ
構成は第10図に示すようになっている。
同図中■は文字列でformatの内容が入る。即ち、
どういう形で表示したらよいかの指示文を入れるもので
ある。例えばprint f (“AB−%d”、Va
r)としておくとVarの変数の値を10進で表示せよ
という指示となり今Varの値が12であればCRT上
にはAB=12と表示される。
次にパラメーター■−12■−2〜■−nには前記した
シンボル情報で定義したシンボル定義番号を入れる。こ
れはそれぞれarg 1 +arg 2 + ・・・a
rg nに対応する。シンボル定義番号が判ればその値
が格納されている実際のアドレスがテーブルを参照する
ことで判る。つまり第8図におけるラベル16−1のs
yml−(3)の1、或いはラベル16−3のsymn
−(3)のNがシンボル定義番号であり開発マシン又は
エミュレータのマイクロプロセッサ上のメモリに作った
該シンボルテーブルを参照すればその値は格納されてい
る実アドレスが判る。
このレコードをエミュレータがロードすると第11図に
示すような標準入出力割り込みテーブル17が開発マシ
ンのマイクロプロセッサのメモリ上もしくはエミュレー
タのRAM上にロードする毎に1回作成される。
このテーブルは第11図のとおり、標準入出力割り込み
アドレス■、標準入出力関数識別番号■及び関数情報格
納アドレス■から構成されている。
該標準入出力割り込みアドレス■は、例えば前述のデー
タレコードの2番目に当たるアドレス200hに相当す
るもので、つまりプログラムのどこに来たら標準入出力
を割り込ませ実行させるかを示す。又標準入出力関数識
別番号■としては、例えば“print f”であれば
1がここに入る。更に関数情報格納アドレス■には、前
記の第9図に示す関数情報が入ることになるが、これを
全部格納することは繁雑であるのでこの情報を別のテー
ブル■に作っておきそのアドレスのみを■に格納するよ
うにしてもよい。尚かかる標準入出力割り込みテーブル
17は開発マシンのマイクロプロセッサ(所謂パソコン
)上に設けてもよいがエミュレータにメモリを増設して
おいてそのテーブルを設けることによって処理スピード
を上げることが出来る。
この標準入出力割り込みテーブル17の標準入出力割り
込みアドレスがいくつか出来るが、これ等全てをソフト
ウェアブレークポイントと考え、1命令の実行毎にコン
パレート即ち、該ブレークポイントと現行アドレスとが
一致するかどうかを調べ、一致した場合にはそれぞれの
標準入出力処理の実行をエミュレータが開発マシンのホ
ストコンピュータ(パソコン)に指示する。その処理が
終了した場合にはその制御を本来のプログラムに戻すの
である。従来このようなプログラムの評価にはリアルタ
イムで実行しマイクロプロセッサのスピードをいかに落
とさないで調べて行くかが重要な問題となるためハード
ウェアブレークポイントを通常膜はハードウェアでプロ
グラムを比較していくがプログラムのスピードを落とさ
ないためハードウェアブレークポイントはせいぜい4つ
くらいしか設けられない。一方ソフトウェアブレークポ
イントによりプログラムを調べる方法では1命令毎にあ
るかどうかを調へるためエミュレータのスピードが落ち
るのでリアルタイム処理には適していない。然しなから
本発明においては標準入出力関数を利用して処理するこ
とは画面に表示するものであってその間プログラムの実
行をストップさせるものであるからリアルタイム処理の
問題はなくなり、論理チエツクだけであるためソフトウ
ェアブレークポイントを援用しえるのである。
そこで、開発マシンのマイクロプロセッサ又はエミュレ
ータ上のコンパレータではソフトウェアのブレークポイ
ントとしての割り込みアドレスと現行アドレスとを全て
比較し、割り込みアドレスと一致したらエミュレータが
それを認識し、どういう標準入出力割り込み関数を使用
するかを関数情報をみて決定しそれを開発マシンのマイ
クロプロセッサに指示する。又該マイクロプロセ・ノサ
には予め用意された例えば標準入出力の処理のためのサ
ブルーチン群を用いていったんその処理結果をCRTに
画面表示する。
表示が終了したらエミュレータは本来の被開発装置のシ
ステムの制御にもどって次のプログラムを実行する。エ
ミュレータは被開発装置のマイロプロセッサのプログラ
ムをみているのでその時の実行されている処理のアドレ
スは確認出来るからそのアドレス情報を開発マシンのマ
イクロプロセッサに伝達する。この通信時間はかなりか
かるので前記のように当該テーブルをエミュレータに設
けることが好ましい。このアドレスが標準入出力割り込
みテーブルの各フレームのアドレスと比較し全部比較し
て一致しなければ次のステップに移るし又一致するのが
あれば上記した処理を実行する。
本発明においてはハードブレークポイントを必ずしも設
ける必要はないが、リアルタイム的な処理をする場合に
は当然設ける必要がある。
〔発明の効果〕
以上説明したように、本発明によれば、エミュレータを
用いたクロス開発環境においても、セルフ開発環境と変
わらない高級言語特有のデバッグが可能となり、スタブ
と呼ばれるprintf文をソースプログラムの途中に
多数置くことによるデバッグ手法が使用可能となる。
また、大型汎用のプログラミング環境に慣れた人間でも
マイコン制御用のプログラムに異和感なく入ることがで
きる。
【図面の簡単な説明】
第1図は本発明に係るマイクロプロセッサのプログラム
開発システムの基本構成図である。 第2図は本発明に使用されるプログラムの例を示す図で
ある。 第3図は本発明に係るシステムの実行フローチャートで
ある。 第4図は本発明で使用されるオブジェクトファイルのデ
ーター構成を示す図である。 第5図は本発明で使用されるデータレコードの構成を示
す図である。 第6図はデータレコードがエミュレータのメモリにロー
ドされた場合のファイル状態を示す図である。 第7図は本発明で使用されるデバッグ情報レコードの構
成を示す図である。 第8図は本発明で使用されるシンボルテーブルの例を示
す図である。 第9図は本発明で使用される標準入出力レコードの構成
を示す図である。 第10図は第9図の標準人出力レコードのうちの関数情
報に関するフィールドの構成を示す図である。 第11図は標準入出力割り込みテーブルの例を示す図で
ある。 1・・・開発マシン、    2・・・エミュレータ、
3・・・被開発装置 7・・・クロスコンパイラ 7゛・・・クロスコンパイラが出力する絶対形式のオブ
ジェクトプログラムのレコード形式8・・・開発マシン
のメモリ 9.12・・・エミュレータのメモリ 10・・・標準入出力データシンボルテーブル11・・
・標準入出力割り込みテーブル13・・・マイロプロセ
ッサ

Claims (1)

    【特許請求の範囲】
  1. 少なくともオペレーティングシステムとエミュレータを
    制御するシステムを内蔵し、被開発装置に於けるマイク
    ロプロセッサのプログラムの開発を実行する開発マシン
    、該開発マシンにより制御されるエミュレータ及び該エ
    ミュレータに接続され、該エミュレータによりそのプロ
    グラムが制御されるマイロプロセッサを有する被開発装
    置とから構成され、且つ該開発マシンのマイクロプロセ
    ッサと該被開発装置に於けるマイクロプロセッサとが異
    なる機械語で動作するクロス開発環境下での被開発装置
    におけるマイクロプロセッサのプログラム開発システム
    において、該開発マシンにロードされるコンパイラが出
    力するオブジェクトファイル内に予め該被開発装置のマ
    イロプロセッサ制御用情報及び標準入出力機能を実行さ
    せる標準入出力情報とを含ませておく手段、該オブジェ
    クトファイルが当該システムにロードされた時に該被開
    発装置のマイロプロセッサの制御情報をエミュレータの
    メモリにストアしておく手段、該標準入出力機能を実行
    するためサブルーチンを含む標準入出力情報を該開発マ
    シンのメモリにストアする手段、及び該標準入出力情報
    に関する標準入出力シンボルテーブルと標準入出力割り
    込みテーブルとを該開発マシンのメモリか該エミュレー
    タのメモリの何れかにストアする手段とをそれぞれ設け
    るとともに、該被開発装置のマイロプロセッサのプログ
    ラムの実行情報と該標準入出力割り込みテーブルの情報
    とを比較検出する手段を該エミュレータに設けておき、
    該エミュレータが該被開発装置のマイロプロセッサのプ
    ログラムを制御し実行させるに際し1命令毎に当該プロ
    グラムの実行情報をエミュレータにて読みとり、該比較
    検出手段において当該実行情報と該割り込みテーブルの
    情報とを比較し、両者が一致した場合にはエミュレータ
    は該被開発装置のマイロプロセッサのプログラムの実行
    停止を指示すると共に、当該標準入出力に関する関数情
    報を該標準入出力シンボルテーブルから選択して該開発
    マシンへ送り、該標準入出力関数情報に該当する標準入
    出力サブルーチンを該開発マシンに実行させることを特
    徴とする被開発装置のマイクロプロセッサのプログラム
    開発システム
JP63299668A 1988-11-29 1988-11-29 マイクロプロセッサのプログラム開発システム Expired - Fee Related JP2888242B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63299668A JP2888242B2 (ja) 1988-11-29 1988-11-29 マイクロプロセッサのプログラム開発システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63299668A JP2888242B2 (ja) 1988-11-29 1988-11-29 マイクロプロセッサのプログラム開発システム

Publications (2)

Publication Number Publication Date
JPH02146630A true JPH02146630A (ja) 1990-06-05
JP2888242B2 JP2888242B2 (ja) 1999-05-10

Family

ID=17875529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63299668A Expired - Fee Related JP2888242B2 (ja) 1988-11-29 1988-11-29 マイクロプロセッサのプログラム開発システム

Country Status (1)

Country Link
JP (1) JP2888242B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05505694A (ja) * 1991-03-07 1993-08-19 ディジタル イクイプメント コーポレイション 多重アーキテクチャ内で多重コードの実行とデバッグを行うシステムにおけるコードのインタフェースのジャケットに特に適合する定義域間命令の呼出しとデータの参照を検出するための改良したシステム及び方法
WO2004036420A1 (ja) * 2002-10-18 2004-04-29 Advantest Corporation プログラム開発支援装置、プログラム実行装置、コンパイル方法およびデバッグ方法
JP2006350676A (ja) * 2005-06-16 2006-12-28 Hitachi Software Eng Co Ltd 組込みシステムのプログラムデバッグ方法
JP2007004516A (ja) * 2005-06-24 2007-01-11 Hitachi Software Eng Co Ltd 組込みシステムのプログラムデバッグ方法
JP2011048625A (ja) * 2009-08-27 2011-03-10 Oki Data Corp シミュレータプログラム及びシミュレータ装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
OMRON TECHNICS=1987 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05505694A (ja) * 1991-03-07 1993-08-19 ディジタル イクイプメント コーポレイション 多重アーキテクチャ内で多重コードの実行とデバッグを行うシステムにおけるコードのインタフェースのジャケットに特に適合する定義域間命令の呼出しとデータの参照を検出するための改良したシステム及び方法
WO2004036420A1 (ja) * 2002-10-18 2004-04-29 Advantest Corporation プログラム開発支援装置、プログラム実行装置、コンパイル方法およびデバッグ方法
JP2006350676A (ja) * 2005-06-16 2006-12-28 Hitachi Software Eng Co Ltd 組込みシステムのプログラムデバッグ方法
JP2007004516A (ja) * 2005-06-24 2007-01-11 Hitachi Software Eng Co Ltd 組込みシステムのプログラムデバッグ方法
JP2011048625A (ja) * 2009-08-27 2011-03-10 Oki Data Corp シミュレータプログラム及びシミュレータ装置

Also Published As

Publication number Publication date
JP2888242B2 (ja) 1999-05-10

Similar Documents

Publication Publication Date Title
US5394544A (en) Software system debugger with distinct interrupt vector maps for debugging and application programs
EP0327195B1 (en) Processor simulation
US4951195A (en) Condition code graph analysis for simulating a CPU processor
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US6550056B1 (en) Source level debugger for debugging source programs
JP2000181725A (ja) 実行可能なコ―ドを改変し、追加機能を付与するための方法およびシステム
US7043717B2 (en) Debugging apparatus and method
JP2888242B2 (ja) マイクロプロセッサのプログラム開発システム
JPS62113244A (ja) プログラムテスト装置
WO2024069730A1 (ja) デバッグ装置及びデバッグ方法
JP2803090B2 (ja) Mpuシミュレーション方法及びmpuシミュレータ
JPH0410081B2 (ja)
CA1259138A (en) Method of compiling high level language statements into low level language instruction sets
JP2540605B2 (ja) デ―タフロ―コンピュ―タの実行検知方式
JP2659366B2 (ja) デバッグ方法及びその装置
JPH05250221A (ja) シミュレータ実行方式
Goldberg et al. The PRIM System: An alternative architecture for emulator development and use
Robbins GDB Pocket Reference
Davidson et al. Testing of microprograms using the lockheed SUE microinstruction simulator
JP3398178B2 (ja) シミュレータ
JPS63223928A (ja) 論理図デバツグ処理方式
JPH02210556A (ja) プログラム実行状態の視覚化装置
JPH0465729A (ja) シンボリック・デバッガ
JPS63223931A (ja) 論理図実行ル−ト出力処理方式
JPS62214444A (ja) シミユレ−シヨン方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees