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

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

Info

Publication number
JP2888242B2
JP2888242B2 JP63299668A JP29966888A JP2888242B2 JP 2888242 B2 JP2888242 B2 JP 2888242B2 JP 63299668 A JP63299668 A JP 63299668A JP 29966888 A JP29966888 A JP 29966888A JP 2888242 B2 JP2888242 B2 JP 2888242B2
Authority
JP
Japan
Prior art keywords
development
microprocessor
emulator
output
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.)
Expired - Fee Related
Application number
JP63299668A
Other languages
English (en)
Other versions
JPH02146630A (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.)
Fujitsu Ltd
Fujitsu Electronics Inc
Original Assignee
Fujitsu Ltd
Fujitsu Electronics Inc
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 Electronics Inc 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)

Description

【発明の詳細な説明】 〔概 要〕 被開発装置に於けるマイクロプロセッサのプログラム
開発システムに関し、 クロス開発環境においてもセルフ開発環境において一
般的に行われている標準入出力関数を用いてのプログラ
ム評価を被開発装置におけるマイクロプロセッサのシス
テム評価にても行えるようにすることを目的とし、少な
くともオペレーティングシステムとエミュレータを制御
するシステムを内蔵し,被開発装置に於けるマイクロプ
ロセッサのプログラムの開発を実行する開発マシン,該
開発マシンにより制御されるエミュレータ及び該エミュ
レータに接続され,該エミュレータによりそのプログラ
ムが制御されるマイクロプロセッサを有する被開発装置
とから構成されたクロス開発環境下での被開発装置のマ
イクロプロセッサのプログラム開発において,該開発マ
シンにロードされるコンパイラが出力するオブジェクト
ファイル内に予め該被開発装置のマイクロプロセッサ制
御用情報及び標準入出力機能を実行させる標準入出力情
報とを含ませておく手段,該オブジェクトファイルが当
該システムにロードされた時に該被開発装置のマイクロ
プロセッサの制御情報をエミュレータのメモリにストア
しておく手段,該標準入出力機能を実行するためサブル
ーチンを含む標準入出力情報を該開発マシンのメモリに
ストアする手段,及び該標準入出力情報に関する標準入
出力シンボルテーブルと標準入出力割り込みテーブルと
を該開発マシンのメモリか該エミュレータのメモリの何
れかにストアする手段とをそれぞれ設けるとともに,該
被開発装置のマイクロプロセッサのプログラムの実行情
報と該標準入出力割り込みテーブルの情報とを比較検出
する手段を該エミュレータに設けておき,該エミュレー
タが該被開発装置のマイクロプロセッサのプログラムを
制御し実行させるに際し1命令毎に当該プログラムの実
行情報をエミュレータににて読みとり,該比較検出手段
において当該実行情報と該割り込みテーブルの情報とを
比較し,両者が一致した場合にはエミュレータは該被開
発装置のマイクロプロセッサのプログラムの実行停止を
指示すると共に,当該標準入出力に関する関数情報を該
標準入出力シンボルテーブルから選択して該開発マシン
へ送り,該標準入出力関数情報に該当する標準入出力サ
ブルーチンを該開発マシンに実行させるように構成す
る。
〔産業上の利用分野〕
本発明はマイクロコンピュータの制御ソフトウェアを
開発する際の例えば高級言語を用いたクロスコンパイラ
の利用をより容易にするためのマンマシンインターフェ
ースを向上するためのもので、マイクロコンピュータの
制御プログラム開発の分野で利用されるものである。
又より具体的には、被開発装置に於けるマイクロプロ
セッサのプログラムの開発を実行する為にマイクロプロ
セッサを内蔵している開発マシン(以下開発マシンと言
う)を使用して,該開発マシンのマイクロプロセッサと
被開発装置に於けるマイクロプロセッサとが互換性のな
い異なる機械語で動作するクロス開発環境下(以下単に
クロス開発環境下と言う)において被開発装置のマイク
ロプロセッサ等のマイクロコンピュータのプログラムを
開発及び評価する場合においても高級言語のようなクロ
スコンパイラを用いてセルフ開発環境下におけると同様
の手法でその開発評価が出来るシステムに関するもので
ある。
〔従来の技術〕
マイクロコンピュータを内蔵した被開発装置,例えば
温風ヒータとかエアコン等はこれ等の製品が出荷される
以前に、組み込まれたマイクロプロセッサのコンピュー
タプログラムが正常に作動するかどうかを検査し評価す
ることが一般的に行われている。
従来、このようなマイクロコンピュータの制御ソフト
ウェア開発環境はアセンブラ一辺倒であったが、近年高
級言語、それもC言語を使用するプログラマが増加し、
それに伴い高級言語デバッグをサポートするソフトウェ
アシュミレータが出現している。
処で従来においてこの様な被開発装置のマイクロプロ
セッサのプログラムを開発するに際しては通常セルフ開
発環境の下で実行されている。セルフ開発環境とは被開
発装置のマイクロプロセッサと開発マシン例えばパソコ
ンのマイクロプロセッサとが同一種類の機械語で動作す
る場合を云い、一般的にはパソコンのマイクロプロセッ
サが被開発装置のマイクロプロセッサを制御しながら評
価が行われるものであり、アセンブラにより機械語と1
対1に対応して実行されていた。然しながら実際の作業
としては、マイクロプロセッサにおけるプログラムが正
しく動作しているかをみるには該マイクロプロセッサの
動作をいちいちブレークしてそのたびに調べたい値につ
いての変数をメモリをのぞいてその値をみる必要があ
る。かかるやり方はかなり辛抱強さがいる。つまりこの
システムでは変数変化が予想されるアドレスを予め指定
してそこで実行を停めて別のコマンドを用いてメモリの
中を見ることにより確認しそれから別の実行に移るとい
う繁雑さが要求されていた。
かかる繁雑さを解消する方法としてコンパイラつまり
高級言語例えばC言語を用いてデバックすることが盛ん
になりアセンブラを知らなくても被開発装置に於けるマ
イクロプロセッサのプログラム開発が出来るようになっ
て来た。そして更に,パソコン側のマイクロプロセッサ
に被開発装置のマイクロプロセッサの制御を代行させ,
例えばC言語のコンパイラで上記の開発を行う場合に
は、プログラムの実行において高級言語が正しいか否か
を調べるのにプログラムの途中に標準入出力関数例えば
“printf"文を挿入しておき、その“printf"文により要
求された変数をパソコンのCRT画面に表示させて確認す
るというような方法で実行されており、手軽な方法とし
てよく使用されている。この方法ではセルフ開発である
ため動作する被開発装置のマイクロプロセッサと開発マ
シンのマイクロプロセッサとが同一種類の機械語で動作
するものであり、従って該被開発装置のマイロプロセッ
サの動作をパソコンのマイクロプロセッサで代行するこ
とが可能となるのである。
又このような高級言語を扱っている人はいちいちプロ
グラムの実行を停めずに調べたい変動データや情報をCR
Tに表示して確認する方法に慣れているのが一般的であ
る。
一方かかる評価システムにおいてセルフ開発環境とは
異なりデバッグするプログラムを調べるパソコン用のマ
イクロプロセッサと該被開発装置のマイクロプロセッサ
とが異なる種類の機械語で動作する場合のプログラム開
発を行う即ちクロス開発環境の場合には、パソコンのマ
イクロプロセッサで代行する事が出来ない。
従って,前述したように被開発装置のシステムの制御
は直接には該被開発装置のマイクロプロセッサが行い,
パソコン側のマイクロプロセッサがこの被開発装置のマ
イクロプロセッサをエミュレータを介して止めたり,走
らせたりすることによって間接的に被開発装置のシステ
ムの制御を行う方式を取らざるを得なくなる。
その場合において,プログラムの途中に例えば“prin
tf"文を挿入して実行させたとしてもマイクロプロセッ
サに通常表示機能がないため直ちにその結果を表示する
ことは出来ない。
然しながら前述のように高級言語による評価に慣れて
いる人の要望もあり、クロス開発環境下でもセルフ開発
環境と同じような評価システムが確立されることが望ま
れていた。
〔発明が解決しようとする課題〕
従って本発明の目的はクロス開発環境下においてもセ
ルフ開発環境において一般的に行われている標準入出力
関数を用いて被開発装置のマイクロプロセッサのプログ
ラム開発を行うことの出来る方法を提供しようとするも
のである。
〔課題を解決するための手段〕
上記の目的を達成するため、現物のマイクロプロセッ
サのシステムを評価するにはエミュレータを用いて評価
する必要があり、高級言語をサポートしているクロスコ
ンパイラ及びそれに対応したエミュレータを用意してプ
ログラム開発や評価にセルフ開発環境と同一のデバッグ
手法をとることを可能にする必要があり、かかる技術的
課題を実現するために次のような技術的後生を採用した
ものである。即ち、 少なくともオペレーティングシステムとエミュレータ
を制御するシステムを内蔵し,被開発装置に於けるマイ
クロプロセッサのプログラムの開発を実行する開発マシ
ン(以下単に開発マシンと言う),該開発マシンにより
制御されるエミュレータ及び該エミュレータに接続さ
れ,該エミュレータによりそのプログラムが制御される
マイクロプロセッサを有する被開発装置とから構成さ
れ,且つ該開発マシンのマイクロプロセッサと該被開発
装置に於けるマイクロプロセッサとが異なる機械語で動
作するクロス開発環境下(以下単にクロス開発環境下と
云う)での被開発装置におけるマイクロプロセッサのプ
ログラム開発システムにおいて,該開発マシンにロード
されるコンパイラが出力するオブジェクトファイル内に
予め該被開発装置のマイクロプロセッサ制御用情報及び
標準入出力機能を実行させる標準入出力情報とを含ませ
ておく手段,該オブジェクトファイルが当該システムに
ロードされた時に該被開発装置のマイクロプロセッサの
制御情報をエミュレータのメモリにストアしておく手
段,該標準入出力機能を実行するためサブルーチンを含
む標準入出力情報を該開発マシンのメモリにストアする
手段,及び該標準入出力情報に関する情報入出力シンボ
ルテーブルと標準入出力割り込みテーブルとを該開発マ
シンのメモリか該エミュレータのメモリの何れかにスト
アする手段とをそれぞれ設けるとともに,該被開発装置
のマイクロプロセッサのプログラムの実行情報と該標準
入出力割り込みテーブルの情報とを比較検出する手段を
該エミュレータに設けておき,該エミュレータが該被開
発装置のマイクロプロセッサのプログラムを制御し実行
させるに際し1命令毎に当該プログラムの実行情報をエ
ミュレータにて読みとり,該比較検出手段において当該
実行情報と該割り込みテーブルの情報とを比較し,両者
が一致した場合にはエミュレータは該被開発装置のマイ
クロプロセッサのプログラムの実行停止を指示すると共
に,当該標準入出力に関する関数情報を該標準入出力シ
ンボルテーブルから選択して該開発マシンへ送り,該標
準入出力関数情報に該当する標準入出力サブルーチンを
該開発マシンに実行させる被開発装置のマイクロプロセ
ッサのプログラム開発システムである。
つまり,本発明の基本的技術思想は開発マシンと被開
発装置のマイクロプロセッサ及びエミュレータとからな
るクロス開発環境下でのマイクロプロセッサのプログラ
ム開発において、該開発マシンにおけるコンパイラが出
力するオブジェクトファイル内に該被開発装置のマイク
ロプロセッサのネイティブなコードとセルフ開発環境下
で一般に用意されている標準入出力機能を実行させるた
めの情報とを含ませ、該情報の出力をエミュレータが識
別して該開発マシンの入出力機能に当該標準入出力機能
を代行させるように構成されている被開発装置のマイク
ロプロセッサのプログラム開発及び評価システムであ
る。
ここで,上記の開発マシンとは被開発装置に於けるマ
イクロプロセッサのプログラムの開発を実行する為にマ
イクロプロセッサを主体としキーボード,表示装置等を
含んで構成されている機器を指すものである。
〔作用〕
本発明にあっては,開発マシンとマイクロプロセッサ
を有する被開発装置及びエミュレータとからなるクロス
開発環境下での被開発装置のマイクロプロセッサのプロ
グラム開発システムにおいて,コンパイラが出力する開
発マシンにロードされるオブジェクトファイル内に該被
開発装置のマイクロプロセッサのネイティブな制御情報
と標準入出力機能を実行させるための標準入出力情報と
を含ませておき,該被開発装置のマイクロプロセッサの
ネイティブな制御情報に基きエミュレータを介して該被
開発装置のマイクロプロセッサのプログラムを実行させ
ると共にその実行情報をエミュレータにおいて該標準入
出力情報と比較,識別させ,該両情報が一致した時にエ
ミュレータが該被開発装置のマイクロプロセッサのプロ
グラムの実行を停止すると同時に,当該標準入出力に関
する情報を開発マシンへ送り該標準入出力機能の実行を
該開発マシンの標準入出力機能に代行させるものである
からクロス開発環境下においてもセルフ開発環境下にお
けると同様にパソコンのCRTを見ながら被開発装置のマ
イクロプロセッサのプログラムにおけるデバッグを実行
することが出来る。
〔実施例〕
以下に本発明を実施例の形で詳しく説明する。
まず本発明におけるようなクロス開発環境下におい
て、セルフ開発環境におけると同じ標準入出力関数を用
いて被開発装置のマイクロプロセッサのプログラムを開
発,評価する場合には例えば第2図に示すように000番
地からFFF番地まで構成されたクロス開発用プログラム
が実行されている間にaaa番地であるデータ(“Var")
がどう変化しているかを見たい場合“printf"以下の文
を挿入し(例えば“printf"(“a=%d",Var)として
変数Varの値を“a=1234"の形式で10進表示するよう指
示)これを実行するに当たっては、該被開発装置のマイ
クロプロセッサではこれを表示出来ないため開発マシン
のパソコンのマイクロプロセッサを使ってこの情報を画
面に出すことにしたものである。従って被開発装置のシ
ステム上のマイクロプロセッサは本来ずっと動いている
が“printf"文が挿入されていた箇所に出合うとパソコ
ン上のマイクロプロセッサがそれを検知し,画面表示の
ため“Var"のデータをエミュレータを通じて見に行きそ
のデータをパソコンの方で例えば“a=1234"というよ
うな表示をCRTにさせることになる。
かかるシステムを実行するための基本構成図が第1図
に示されており,開発マシン1と温風ヒータ、エアコン
等の被開発装置3との間にエミュレータ2を介在させる
ものであり、開発マシン1には当然オペレーティングシ
ステム4、及びエミュレータ制御ソフト6等が含まれて
いる。又,かかる本発明のシステムにおいて開発マシン
に関する基本ソフトを含むコンパイラ5が出力するオブ
ジェクトファイル7内に被開発装置3のマイクロプロセ
ッサ13のネイティブな情報コードとコンパイラのソース
プログラムにおいて記述された標準入出力情報,例えば
C言語であれば、getc,putc,printf,fprintf,scanf2,f
scanf等の標準入出力関数データをデバッグ情報として
含ませるものである。
この場合両者は互いに異なるオブジェクトレコードタ
イプを用いて含ませることが出来る。
その他,該オブジェクトファイル7にはネイティブ情
報のシンボル情報と標準入出力情報のシンボル情報とを
含ませておくことも出来る。
その後、本発明においては第1図に示されるようにエ
ミュレータを介して該プログラムを開発評価するに当た
り,ローダブルオブジェクトファイル7内に含まれるネ
イティブ情報,標準入出力情報,ネイティブ情報のシン
ボル情報及び標準入出力情報のシンボル情報の内,ネイ
ティブコードはエミュレータのメモリ12にロードし、そ
の他は後述する種々の形式で開発マシンのメモリ8又は
エミュレータのメモリ9にロードしておく。
そしてプログラムの実行に当たってはブレークポイン
トで指定されたシンボルの種別によりエミュレーション
メモリの実行か標準入出力の代行かを判断してその実行
を切り分ける機能をエミュレータ2に持たせておくもの
である。第1図において7はローダブルオブジェクトの
ファイル,7′はクロスコンパイラが出力する絶対形式オ
ブジェクトプログラムのレコード形式である。又8はホ
ストマシンメモリで9及び12はエミュレータのメモリで
ありそれぞれその内にロードされるデータの種類を示し
ている。
尚,該エミュレータメモリ内のデータは開発マシンの
メモリ8に含ませておくこともできる。
本発明において使用されるエミュレータは被開発装置
のマイクロプロセッサのプログラムを制御する機能を有
しており該マイクロプロセッサとその周辺リソースを必
要な時点でエミュレータのハードを用いて代行する機能
を有するものであればよい。
通常被開発装置のマイクロプロセッサのプログラムは
いったん走り出したら被開発装置内で実行されるから好
きな番地では止められないためエミュレータが該被開発
装置のマイクロプロセッサの動作を止めたり進めたりす
る。具体的には、一般にプローブと称するエミュレータ
本体(ハード)から引き出されたリード線の先端に取り
付けられているソケットを被開発装置からマイクロプロ
セッサを取り外した跡にさし込んでエミュレータのマイ
クロプロセッサにより被開発装置のプログラムを制御す
る(つまりプログラムを走らせる、停める、どの番地ま
で実行するか等)ものであってハードそのものはそれほ
ど複雑なものでなくてもよい。次に本発明にあっては,
本システムを作動される為の基本ソフトを含むクロスコ
ンパイラを準備する必要がある。
係るクロスコンパイラは例えば,MS−DOS(マイクロソ
フト社のオペレーティングシステム )環境の下で制御
用マイクロコントローラのクロスコンパイラを作成す
る。このクロスコンパイラはprint f2 scan f等のC言
語の標準入出力関数がソースプログラムに記述されてい
ると標準入出力レコードを出力する。又、本発明では,
該標準入出力レコードから,標準入出力関数に対応する
ホストマシンコードを開発マシン1のマイクロプロセッ
サ(ホストコンピュータ)側でサブルーチンの形でメモ
リ8中にロードしておく。
一方エミュレータ2は該プログラムのロード時に標準
入出力レコードに対応した標準入出力割り込みテーブル
11と標準入出力シンボルテーブル10とを作成しメモリ9
にストアしておく。
尚,前記したように,該標準入出力割り込みテーブル
11と標準入出力シンボルテーブル10とは開発マシンのメ
モリ8にストアしておくこともできるがデーター処理の
スピードが低下するため該テーブルを開発マシン側に設
けることは得策ではない。
以下に本発明に於けるシステムの実行手順を第3図の
フローチャートに従って説明すると,エミュレータが被
開発装置のプログラムの実行中(step a)にその実行ア
ドレスをエミュレータに転送し(step b),該アドレス
がエミュレータ(ハード)上のメモリ(RAM)に作成さ
れた該標準入出力割り込みテーブルの割り込みアドレス
と一致するかを一命令毎に比較し(step c)、そのテー
ブルのアドレスの1つと一致したら例えば現行アドレス
と該テーブル中のアドレス200h(“printf"文)と一致
したらその情報にもとづきエミュレータが被開発装置の
プログラム実行を中止する(step d)と共に関数情報を
選択し(step e)、これを開発マシンのマイクロプロセ
ッサに送り(step f)標準入出力関数(プリント或いは
CRT表示等)の処理を割り込み実行させる(step g)も
のである。
プログラム実行時に該標準入出力割り込みアドレスを
ソフトウェアのブレークポイントと考え、割り込みをか
け、その時点でエミュレータは被開発装置のマイクロプ
ロセッサをホールドさせ、標準入出力割り込みテーブル
の情報を参照することによりどの標準入出力関数部分を
実行するかを判断して制御をホストマシンに移す。ホス
トマシンは標準入出力処理を実行し終了したら制御をエ
ミュレータに戻すのである。
この処理が終了後エミュレータは被開発装置のシステ
ムの実行を再開する(step h)。
又他の具体例としては、上記標準入出力割り込みテー
ブルを開発マシンのマイクロプロセッサに作成してお
き、被開発装置のシステムの実行中にその実行状態をエ
ミュレータを介して開発マシンのマイクロプロセッサに
送りそこで前記と同じ比較処理を行わせ実行アドレスが
該テーブル上の割り込みアドレスの1つと一致した場合
にはその情報をエミュレータに戻し上記と同じ処理を行
うようにしても良い。本発明では,ホストマシンのマイ
クロプロセッサのプログラムでエミュレータを制御しつ
つエミュレータのハードに指示を送りエミュレータに被
開発装置のマイクロプロセッサの情報を読み込ませそれ
を開発マシンに転送させるか,又エミュレータ自身で該
情報を読みとり比較してデータがどう変わったかを確認
する。
次に本発明において使用されるローダブルオブジェク
トファイルのデーター構造及び標準入出力関数、同シン
ボルテーブル、或いは同割り込みテーブル等のデーター
構造について説明する。
第4図に示すようにこのオブジェクトファイルはレコ
ードと呼ばれる形の単位(a)から作成されるのであ
り、従ってこのファイルはこのデータブロック(a)の
集まりから構成されたものである。
以下該データブロックについて簡単な例を用いて説明
すると、その構成はレコード識別番号、レコード長
及びレコードの内容から出来ている。このレコードに
は大別してデータレコードとデバック情報レコードとが
ありそのについての詳細を次に説明するが上記、と
の部分については省略する。
まずデータレコードの中味は第5図に示すような単位
構成(b)となっていて、どこのアドレスからロードさ
せるかを示すプログラムロードアドレス、以下に続く
の部分のデータのバイト長を示すデータ長及びメモ
リにロードするデータの内容とから構成されており、
のアドレスによりのデータをメモリにロードするも
のである。
このデータレコードをエミュレータが読み込んでエミ
ュレーションメモリにロードするとそのロード結果は第
6図に示すようになる。例えばのアドレスが200h、デ
ータ長が16バイト、データの内容が=010203…で
あったとするとこれがエミュレーションメモリ15の斜線
の部分にロードされる。
一方デバック情報レコードについてみると、デバック
情報とはエミュレーションを円滑に行うために用意され
た主にシンボル情報であり、例えば数値、変数、ジャン
プ先の記号からなるもので、コンパイラやアセンブラが
出力するものである。
このレコードの単位構成(c)は第7図に示すように
シンボルタイプとシンボルデータ及びシンボル定義
番号から構成されている。
ここでシンボルタイプは一般的なものとして数値シ
ンボル、変数、分岐先ラベル(ジャンプ先のラベル)が
含まれる。
又シンボルデータはシンボルが持っているデータで
数値シンボルであれば数値そのもの、変数、か更にはラ
ベルであればそこにアドレスが格納される。
又シンボル定義番号はシンボルがコンパイラやアセ
ンブラで定義された順に付けられるシリアル番号であ
る。
このレコードをエミュレータが開発マシンのマイクロ
プロセッサのメモリに又はエミュレータ上のメモリ(RA
M)にロードすると第8図に示すシンボルテーブル16が
該マイクロプロセッサのメモリ(ホストマシンメモリ)
8上に又はエミュレータのメモリ9(RAM)上に形成さ
れる。第8図中ラベル1(16−1)が“Var"(変数)と
すると例えばSym1−(1)(シンボルタイプに相当す
る)を1、Sym1−(2)シンボルデータに相当する)を
200h、Sym1−(3)(シンボル定義番号に相当する)を
1のように形成する。ラベルn(16−3)におけるSym
n−(1),Sym n−(2),Sym n−(3)も同様であ
る。
次に本発明に使用される標準入出力レコードの構成に
ついて述べる。高級言語を用いた標準入出力関数である
例えばprintf,fputc2fgetc,fprintf,fscanf等は一般に
はコンソール入出力関数と考えてよく入力はキーボード
によるインプット、出力はテレビ等に表示することを示
している。そこで該標準入出力関数がソースプログラム
内に記述されるとコンパイラは第9図に示すような標準
入出力レコード(d)を出力する。
該レコード(d)の構成は標準入出力関数識別番号を
番号付けする部分、該標準入出力関数が記述されたア
ドレスを格納する標準入出力関数割込アドレス部分と
標準入出力の関数情報を格納する部分とから成ってお
り、前記標準入出力関数識別番号を予め例えば 1:printf 2:fputc 3:fgetc 4:fprintf 5:fscanf のように割りつけておき,このいずれかをの部分に格
納する。又上記標準入出力関係割り込みアドレスには例
えば当該関数である。“printf"が200h番地であるとす
るとこの部分には200hとなり、このアドレスの処をプ
ログラムが実行しようとすると割り込みが入り“print
f"の処理をするよう命令が出る。更に関数情報の部分
には組み込み関数特有の情報が入るものであり、このフ
ィールドは各関数によって異なる。このデータの構成は
膨大であるのでここでは“print f"を使用する場合を一
例として説明する。
今C言語で“print f"の書式は次のように表される。
print f(format,arg1,arg2,…arg n) ここでarg1…arg nは表示したいデータであり、そのデ
ータ構成は第10図に示すようになっている。
同図中は文字列でformatの内容が入る。即ち、どう
いう形で表示したらよいかの指示文を入れるものであ
る。例えばprint f(“AB=%d",Var)としておくとVar
の変数の値を10進で表示せよという指示となり今Varの
値が12であればCRT上にはAB=12と表示される。
次にパラメーター−12−2〜〜nには前記した
シンボル情報で定義したシンボル定義番号を入れる。こ
れはそれぞれarg1,arg2,…arg nに対応する。シンボル
定義番号が判ればその値が格納されている実際のアドレ
スがテーブルを参照することで判る。つまり第8図にお
けるラベル16−1のsym−1−(3)の1、或いはラベ
ル16−3のsym n−(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……マイクロプロセッサ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 9/44,9/45 G06F 11/28

Claims (1)

    (57)【特許請求の範囲】
  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 JPH02146630A (ja) 1990-06-05
JP2888242B2 true 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)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX9200935A (es) * 1991-03-07 1993-03-01 Digital Equipment Corp Sistema y metodo para detectar llamadas de instruccion de dominio cruzado en un sistema de computadora
JP4009517B2 (ja) * 2002-10-18 2007-11-14 株式会社アドバンテスト プログラム開発支援装置およびコンパイル方法
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」No.83(1987−9)p.88−96

Also Published As

Publication number Publication date
JPH02146630A (ja) 1990-06-05

Similar Documents

Publication Publication Date Title
US5926638A (en) Program debugging system for debugging a program having graphical user interface
EP0327195A2 (en) Processor simulation
JPH0689200A (ja) デバッグシステム及び方法
US6467082B1 (en) Methods and apparatus for simulating external linkage points and control transfers in source translation systems
JP2888242B2 (ja) マイクロプロセッサのプログラム開発システム
JP2886191B2 (ja) 命令解析装置及び方法
JP2001034497A (ja) 逆アセンブラのバイナリコード取得方法
US20020129336A1 (en) Automatic symbol table selection in a multi-cell environment
JP5118562B2 (ja) デバッグ支援装置
CN116089316B (zh) 一种基于动态断点的内核驱动数据调试方法
JP2659366B2 (ja) デバッグ方法及びその装置
JP3270729B2 (ja) 拡張命令セット・シミュレータ
JP2788353B2 (ja) タスクトレース方法
JPH05250221A (ja) シミュレータ実行方式
Goldberg et al. The PRIM System: An alternative architecture for emulator development and use
JPS5856051A (ja) アクセス割込みによるアドレス・コンペア方式
JPH0465729A (ja) シンボリック・デバッガ
Gladstone Comparing Microcomputer Development System Capabilities
JPS62214444A (ja) シミユレ−シヨン方法
JPS6113615B2 (ja)
JPS6367695B2 (ja)
JP3398178B2 (ja) シミュレータ
JPS63271542A (ja) Romデバツガ
JP2540605B2 (ja) デ―タフロ―コンピュ―タの実行検知方式
JPH04248634A (ja) デバッガ

Legal Events

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