JPH04229336A - マイクロコンピュータ開発支援装置 - Google Patents

マイクロコンピュータ開発支援装置

Info

Publication number
JPH04229336A
JPH04229336A JP2408372A JP40837290A JPH04229336A JP H04229336 A JPH04229336 A JP H04229336A JP 2408372 A JP2408372 A JP 2408372A JP 40837290 A JP40837290 A JP 40837290A JP H04229336 A JPH04229336 A JP H04229336A
Authority
JP
Japan
Prior art keywords
program
address
intermediate code
instruction
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2408372A
Other languages
English (en)
Inventor
Takeshi Tanaka
猛 田中
Hiroshi Ii
浩志 井伊
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2408372A priority Critical patent/JPH04229336A/ja
Publication of JPH04229336A publication Critical patent/JPH04229336A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 【0001】 【産業上の利用分野】本発明は、インサーキットエミュ
レータによりマイクロコンピュータ応用機器のプログラ
ムをデバッグするマイクロコンピュータ開発支援装置に
関するものである。 【0002】 【従来の技術】近年、各種電子機器の制御にマイクロコ
ンピュータが用いられている。このようなマイクロコン
ピュータ応用機器では、動作プログラムはROM(リー
ドオンリーメモリ)に書き込まれており、このROM内
のプログラムを工夫することにより複雑多様な制御を実
現できる。 【0003】上記プログラムの動作チェックは、通常、
ICE(インサーキットエミュレータ)により行われる
。すなわち、マイクロコンピュータ応用機器に搭載され
ているマイクロプロセッサの代わりにICEを接続して
プログラムを実行し、プログラム命令をトレースしたり
、メモリやレジスタの内容を調べたりしながら、総合的
なプログラムチェックとデバッグが行われている。 【0004】 【発明が解決しようとする課題】ところが、上記従来の
構成では、プログラムが全体として動作しているかどう
かについては容易に判定できるが、プログラム動作中に
割り込みが発生した場合、メインプログラム中のどの位
置でどの割り込みプログラムが動作したかが分かりにく
いため、デバッグ効率が悪く、開発されたプログラムの
信頼性も充分ではないという問題点を有している。 【0005】 【課題を解決するための手段】本発明のマイクロコンピ
ュータ開発支援装置は、上記の課題を解決するために、
インサーキットエミュレータによりマイクロコンピュー
タ応用機器のメインプログラムと割り込み処理プログラ
ムとを含むプログラムをデバッグするマイクロコンピュ
ータ開発支援装置において、前記プログラム中、実行さ
れたプログラム命令の格納アドレスを検出するアドレス
検出手段と、検出されたアドレスを記憶するアドレス記
憶手段と、前記プログラムのソースプログラムとこのソ
ースプログラムに対応するプログラム命令の格納アドレ
スとを記憶するプログラム記憶手段と、アドレス記憶手
段に記憶されているアドレスとプログラム記憶手段に記
憶されているアドレスとを比較して、一致するアドレス
に格納されているソースプログラムをプログラム記憶手
段から読み出すと共に、そのソースプログラムがメイン
プログラムであるか割り込み処理プログラムであるかを
判別する比較手段と、比較手段より読み出されたソース
プログラムに基づいてフローチャートを作成し表示する
と共に、メインプログラム上での割り込み発生位置を表
示する表示手段とが備えられていることを特徴としてい
る。 【0006】 【作用】上記の構成によれば、インサーキットエミュレ
ータによりマイクロコンピュータ応用機器のメインプロ
グラムと割り込み処理プログラムとを含むプログラムを
デバッグするマイクロコンピュータ開発支援装置におい
て、前記プログラム中、実行されたプログラム命令の格
納アドレスを検出するアドレス検出手段と、検出された
アドレスを記憶するアドレス記憶手段と、前記プログラ
ムのソースプログラムとこのソースプログラムに対応す
るプログラム命令の格納アドレスとを記憶するプログラ
ム記憶手段と、アドレス記憶手段に記憶されているアド
レスとプログラム記憶手段に記憶されているアドレスと
を比較して、一致するアドレスに格納されているソース
プログラムをプログラム記憶手段から読み出すと共に、
そのソースプログラムがメインプログラムであるか割り
込み処理プログラムであるかを判別する比較手段と、比
較手段より読み出されたソースプログラムに基づいてフ
ローチャートを作成し表示すると共に、メインプログラ
ム上での割り込み発生位置を表示する表示手段とを備え
たので、プログラムのテスト時に実行されたメインプロ
グラム及び割り込み処理プログラムのソースプログラム
がフローチャートとして表示され、しかも、メインプロ
グラム上のどの処理を行っていた時点でどの割り込み処
理プログラムが動作したかを確認できる。これにより、
マイクロコンピュータ応用機器の動作が異常であれば、
上記フローチャートに基づいてデバッグを必要とするプ
ログラム部分を迅速に見出すことができ、割り込み処理
プログラムを含むプログラムの開発効率が飛躍的に向上
する。 【0007】 【実施例】本発明の一実施例について図1ないし図16
に基づいて説明すれば、以下のとおりである。 【0008】本実施例のマイクロコンピュータ開発支援
装置は、図1に示すように、ICE(インサーキットエ
ミュレータ)1と、プログラム中で実際に実行されたプ
ログラム命令の格納アドレスを検出するアドレス検出器
2(アドレス検出手段)と、アドレス検出器2により検
出されたアドレスを記憶するアドレス記憶器3(アドレ
ス記憶手段)と、前記プログラムのソースプログラムと
このソースプログラムに対応するプログラム命令のの格
納アドレスとを記憶するプログラム記憶器4(プログラ
ム記憶手段)と、アドレス記憶器3に記憶されているア
ドレスとプログラム記憶器4に記憶されているアドレス
とを比較して、一致するアドレスに格納されているソー
スプログラムをプログラム記憶手段より取り出すと共に
そのソースプログラムがメインプログラムであるか割り
込み処理プログラムであるかを判別するアドレス比較器
5(比較手段)と、アドレス比較器5から出力されたソ
ースプログラムに基づきフローチャートを作成し表示す
ると共にメインプログラム上での割り込み発生位置を表
示する表示装置6(表示手段)とから構成されている。 【0009】また、プログラム記憶器4はメインプログ
ラム記憶部4aとサブプログラム記憶部4bとから構成
されており、メインプログラム記憶部4aでは、デバッ
グしようとするプログラムのメインプログラム部分のソ
ースプログラムとこのソースプログラムに対応するプロ
グラム命令の格納アドレスとが記憶され、サブプログラ
ム記憶部4bでは、デバッグしようとするプログラムの
割り込み処理プログラム部分のソースプログラムとこの
ソースプログラムに対応するプログラム命令の格納アド
レスとが記憶される。 【0010】上記の構成において、マイクロコンピュー
タ応用機器としての試作機7に搭載されるROM(図示
されていない)内に格納しようとするプログラムの評価
を行う場合、制御用のマイクロプロセッサ(図示されて
いない)の代わりに、上記マイクロコンピュータ開発支
援装置のICE1が接続される。そして、プログラムの
テストのために、プログラム命令実行時のトレースや、
試作機7のメモリ(図示されていない)やレジスタ(図
示されていない)の内容表示及び内容変更等を実施する
ことにより、試作機7の実使用条件下でのシミュレーシ
ョンが行われる。 【0011】本実施例のマイクロコンピュータ開発支援
装置では、デバッグしようとするメインプログラムと割
り込み処理プログラムとを含むプログラムのソースプロ
グラムと、ソースプログラムに対応した各プログラム命
令を格納しようとしている上記ROM内のアドレスとが
、予めプログラム記憶器4に記憶されている。そして、
上述のシミュレーションの間に実際に実行されたメイン
プログラムまたは割り込み処理プログラムのプログラム
命令の格納されているアドレスがアドレス検出器2によ
り検出され、その検出されたアドレスがアドレス記憶器
3に逐次転送され、記憶される。 【0012】ある1つのシミュレーションが終了すると
、アドレス記憶器3に記憶されているアドレスとプログ
ラム記憶器4に記憶されているアドレスとがアドレス比
較器5により比較され、一致するアドレスに格納されて
いるソースプログラムがプログラム記憶器4より読み出
されると共に、そのソースプログラムがメインプログラ
ムであるか割り込み処理プログラムであるかが判別され
る。したがって、このときアドレス比較器5から出力さ
れるソースプログラムは、上記シミュレーションの間に
プログラム中において実際に実行された一連のプログラ
ム命令に対応するメインプログラム及び割り込み処理プ
ログラムのソースプログラム部分からなっている。 【0013】表示装置6では、アドレス比較器5から出
力されたソースプログラムが解析され、メインプログラ
ム及び割り込み処理プログラムのフローチャートが作成
されると共に、メインプログラム上での割り込み発生位
置を表示される。そして、このシミュレーションの間に
試作機7がまったく正常に動作しておれば、この一連の
プログラム命令中にバグが混じっている可能性は少ない
と判断できる。逆に、試作機7の動作が異常であれば、
それらのプログラム命令の中にデバッグが必要な部分が
あると判断でき、このとき、このプログラム命令に対応
するソースプログラムのフローチャートを用いて、迅速
なデバッグを行なうことができる。 【0014】また、全プログラム中のプログラム命令数
NT に対して、そのシミュレーションで実際に実行さ
れたプログラム命令数NI の比、すなわちNI /N
T 、により定義されるテスト率を表示することにより
、そのプログラムの何パーセント位の部分がテストされ
たかを知ることができる。 【0015】以下、試作機7で用いられるプログラムの
一具体例として、アセンブリ言語により記述されたプロ
グラムを挙げ、これを用いて本実施例のマイクロコンピ
ュータ開発支援装置の動作についてさらに詳しく説明す
る。 【0016】プログラムは、通常、基本動作時に実行さ
れるメインプログラムと、割り込み事象が発生したとき
にメインプログラムの実行を一時停止させて優先的に実
行される割り込み処理プログラムとから構成されている
。紙面の都合上、メインプログラムを表1及び表2に分
割して示す。また、割り込み処理プログラムを表3及び
表4に分割して示す。 【0017】 【表1】 【0018】 【表2】 【0019】 【表3】 【0020】 【表4】 【0021】表1乃至表4のプログラムでは、左のコラ
ムから右のコラムに順に、アドレスフィールド、メモリ
フィールド、ラベルフィールド、インストラクションフ
ィールド、オペランドフィールド、コメントフィールド
になっており、アドレスフィールド内のアドレスとメモ
リフィールド内のメモリ内容は16進数表示されている
。なお、インストラクション及びオペランドからなるプ
ログラム命令は本具体例ではザイログ社製のマイクロプ
ロセッサ:Z80のニーモニックにより記述されている
が、必ずしもこれに限るものではない。 【0022】メインプログラムは、表1及び表2のアド
レスフィールドに表示されているアドレスより明らかな
ように、$0015(以下、”$”マークにより16進
数表示であることを示す)から$008Fまでのアドレ
スに格納され、エントリアドレスである$0015をサ
ブルーチンコールすることにより起動される。なお、リ
ターンアドレスは$008Fである。 【0023】割り込み処理プログラムは、表3及び表4
のアドレスフィールドに表示されているアドレスより明
らかなように、$0162(以下、”$”マークにより
16進数表示であることを示す)から$01A8までの
アドレスに格納される。そして、上記メインプログラム
を実行中に割り込み事象が発生すると、必要なレジスタ
及びリターンアドレス等がスタックに退避され、エント
リアドレスである$01A8からの割り込み処理プログ
ラムに制御が移される。なお、割り込み処理プログラム
からのリターンアドレスは$01A8である。 【0024】上記メインプログラム及び割り込み処理プ
ログラムのソースプログラムとこのソースプログラムに
対応するプログラム命令の格納アドレスとは、上述のよ
うに、プログラム記憶器4のメインプログラム記憶部4
aとサブプログラム記憶部4bとにそれぞれ記憶される
。 【0025】本実施例のマイクロコンピュータ開発支援
装置による上記プログラムのデバッグ時、実際に実行さ
れたプログラム命令の格納されているアドレスがアドレ
ス検出器2(図1)により検出されるが、通常はメイン
プログラムのアドレスである$0015〜$008Fが
順次検出アドレスとして検出される。 【0026】そして、メインプログラム実行中、割り込
み事象が、例えばアドレス$001B及びアドレス$0
036のプログラム命令実行時に発生したとすると、図
2に示すように、検出アドレスとして$001Bまでの
メインプログラムのアドレスが出力された後、割り込み
処理プログラムのアドレスである$0162〜$01A
8が出力され、それから再びメインプログラムに処理が
戻って$001Bの次のアドレスである$001F〜$
0036までが出力され、次いで割り込み処理プログラ
ムのアドレスである$0162…が出力されることにな
る。 【0027】そして、上述のように、これらの検出アド
レスがアドレス記憶器3に記憶され、シミュレーション
の終了時点で、アドレス記憶器3に記憶されているアド
レスとプログラム記憶器4に記憶されているアドレスと
がアドレス比較器5により比較され、一致するアドレス
に格納されているソースプログラムがプログラム記憶器
4より読み出される。また、アドレス比較器5において
、割り込み処理プログラムのエントリアドレスとして予
め記憶されている$0162が検出された場合、アドレ
ス記憶器3に記憶されている1つ前のアドレス、すなわ
ち、アドレス$001Bとアドレス$0036とが順次
割り込み発生アドレスとして記憶され、これに基づいて
、メインプログラム上のどのアドレスにおいて割り込み
が発生したかを知ることができる。 【0028】表示装置6では、アドレス比較器5から出
力されたソースプログラムが解析され、上記の場合であ
れば、メインプログラムと割り込み処理プログラムの両
方のフローチャートが作成される。そして、例えば、メ
インプログラムは表示装置6のメイン画面に表示され、
割り込み処理プログラムはウィンドウ等のサブ画面に表
示される。 【0029】表示装置6より出力されたメインプログラ
ムのフローチャートを図3及び図4に、割り込み処理プ
ログラムのフローチャートを図5及び図6に示す。 【0030】また、本実施例では、メインプログラム上
のどの処理を行っていた時点で、割り込み処理プログラ
ムが動作したかを示すために、上記のようにして記憶さ
れた割り込み発生アドレスに基づいて、メインプログラ
ムのフローチャート上に所定のマークが表示される。な
お、ここでは、マークとして「<−−@」が用いられて
いる。 【0031】上記の具体例では、マークされた位置は、
図3に示すように、メインプログラム上のアドレス$0
01B及び$0036におけるプログラム命令に対応し
ており、このプログラム命令が終了した後、割り込み処
理プログラムが実行されたことを示している。 【0032】なお、すべてのプログラム命令が1度は実
行された場合、プログラム中の全アドレスがアドレス記
憶器3に記憶されることになるので、表示装置6より出
力されるフローチャートは、図3乃至図6に示すように
、全プログラムのフローチャートになり、このときのテ
スト率は1となる。そして、このとき、試作機7が正常
に動作していたとすると、実施されたテストについて、
このプログラムのデバッグはほぼ完了していると見るこ
とができる。 【0033】以上のように、本実施例によれば、試作機
7の実使用条件下でのシミュレーションが行われた後、
ただちにフローチャートが表示されるので、プログラム
のどの部分がデバッグを必要としているかを迅速に知る
ことができる。 【0034】しかも、メインプログラム上のどの処理を
行っていた時点で、割り込み処理プログラムが動作した
かをフローチャート上で確認できるので、複雑な割り込
み処理プログラムを含むプログラムのデバッグも迅速に
行うことができる。 【0035】さらに、プログラムのデバッグ後、再度シ
ミュレーションを行うと、デバッグされたプログラムの
フローチャートが新たに表示されるため、デバッグされ
たプログラムが正常かどうかも迅速に知ることができる
。これにより、試作機7を制御するためのプログラム開
発の効率が飛躍的に向上することになる。 【0036】なお、以上の実施例において、フローチャ
ートを作成し表示する表示装置6の一具体例について図
7乃至図16に基づいて、以下に説明する。 【0037】この表示装置6では、図7の概略の構成図
に示すように、ソースリスト記憶手段12はハードディ
スク記憶装置やフロッピーディスク記憶装置などの外部
記憶装置もしくはRAM(ランダムアクセスメモリ)デ
ィスク等の内部記憶装置であり、アドレス比較器5から
出力されたソースプログラムが行番号付きで記憶される
。 【0038】ジャンプ命令記憶手段13はソースプログ
ラムを記述するアセンブリ言語におけるジャンプ命令を
予め記憶している。 【0039】ソースリスト記憶手段12に記憶されたソ
ースプログラムは、命令毎にソースリスト解析手段14
によってジャンプ命令記憶手段13に記憶されたジャン
プ命令と順次的に対比され、後述するような処理によっ
て第1中間コード及び第2中間コードを作成し、第1中
間コード記憶手段15及び第2中間コード記憶手段16
に記憶する。 【0040】第1中間コード記憶手段15及び第2中間
コード記憶手段16に後述するように記憶されている第
1中間コード及び第2中間コードは、対応する第1中間
コード解析手段17及び第2中間コード解析手段18に
より後述する処理に沿って解析され、解析結果は例えば
プロッタなどの出力コントロール手段19に入力され、
記録紙20にフローチャートが描画される。なお、出力
コントロール手段19としてはCRT(陰極線管)でも
もちろんかまわない。 【0041】図8は上記表示装置6の基本的動作を説明
するフローチャートである。本実施例ではソースリスト
解析手段14により図8のステップS1、S2において
それぞれ第1中間コード及び第2中間コードが作成され
る。またステップS3、S4において出力コントロール
手段19によって後述するフローチャート作成プログラ
ム「第1フロー」及び「第2フロー」が実行され、フロ
ーチャートが描画される。 【0042】図9乃至図12では、後述する第1中間コ
ード、CODE(*,1),CODE(*,2),CO
DE(*,3)及び第2中間コード、LA(*,1),
LA(*,2),LA(*,3),LA(*,4)が後
述するように作成される。第1中間コード、第2中間コ
ードは、CODE1〜3、LA1〜4のように略記する
場合もある。 【0043】図9のステップS11では処理に用いられ
る変数LINE,CONT,LANO,ADDがすべて
0に初期化され、ステップS12ではジャンプ命令記憶
手段13に記憶されているジャンプ命令(これらはマイ
クロプロセッサにおいて、プログラム命令として定義さ
れている)が読み出され、ステップS13ではソースリ
スト記憶手段12に記憶されているソースプログラムが
読み出され、その最大行番号LENDが読み取られる。 【0044】ステップS14では、現在記憶している行
番号LINEが最大行番号LENDに等しいかどうか判
断される。等しければ後述する種類はすべて終了してい
ることになり、メインルーチンへ復帰する。ステップS
14の判断が否定であればステップS15で行番号LI
NEが+1インクリメントされる。ステップS16では
、行番号LINEに対応するソースプログラムの命令を
示す関数SOURSE(LINE)にラベルが含まれる
か否かを判断する。ステップS17では、対応する行番
号の命令にジャンプ命令が含まれるかどうかが判断され
、ステップS18では当該命令がRETであるか否かを
判断する。 【0045】ステップS19で後述する変数CONTが
1か否かが判断され、否定であればステップS20に移
り、第1中間コードのCODE1〜2にスペース記号が
与えられ、CODE3には対応する命令が設定される。 ステップS21では変数CONTを1に設定し処理はス
テップS14に戻る。ステップS22では第1中間コー
ド及び第2中間コードの行番号LANOを+1インクリ
メントし、第2中間コードの行のいずれか1つを示す変
数Iを0に初期化する。 【0046】ステップS23では変数Iを+1インクリ
メントし、ステップS24では変数Iが行番号LANO
と一致するか否かを判断する。一致しなければステップ
S25で行番号Iの第2中間コードのLA1がラベルで
あるか否かを判断する。ラベルでなければステップS2
3に戻るが、ラベルであればステップS26に移り、第
2中間コードの LA(I,3) =LINE+ADD      …(
1)の設定を行い処理をステップS23に戻す。 【0047】ステップS24の判断が肯定となるとステ
ップS27に移り、新たな行番号LANOについて第2
中間コードのLA1をラベルに設定し、LA2を0とし
、LA3について LA(LANO,3)=LINE+ADD    …(
2)の設定を行う。ステップS28では第1中間コード
についてCODE1に「T」を設定し、CODE2にス
ペース(SP)記号を設定し、CODE3をラベルに設
定する。 【0048】ここで前記第1中間コードは下記のような
関数値を意味する関数として定義される。 【0049】   CODE(*,1)=T  (行番号*=ラベル)
                N  (行番号*=
ジャンプ命令)                  
                  …(3)   
             G  (行番号*=RET
文)                SP(行番号*
=他の命令)  CODE(*,2)=*  (行番号
*=継続行)                SP(
行番号*=フローチャートの1つの枠内の最初の命  
                         
 令か、または単項)               
                     …(4)
  CODE(*,3)=行番号*の命令またはラベル
                         
           …(5)  ステップS29で
は、前記変数CONTを0に設定する。この変数CON
Tは下記のように定義される。        【0050】   CONT=0(次行が継続行である可能性なし) 
          1(次行が継続行である可能性有
り)                       
                         
                …(6)なお、ここ
で言う継続行とは、ソースプログラムのある命令に引き
続く行番号の命令が前行の命令と連続する処理を行う命
令であることを言う。 【0051】ステップS30では、前記ラベルが検出さ
れた同一行にさらに命令が記述されているかどうかを判
断する。否定の場合、処理はステップS14に戻る。 【0052】ジャンプ命令以外の命令であって、ラベル
が含まれていない場合、処理はステップS14、S15
、S16、S17、S18、S19、S20、S21を
経てステップS14に戻る。ステップS19にて肯定と
判断すると、ステップS31にて前記第3式〜第5式の
定義に従い第1中間コードが作成され、処理がステップ
S14に戻る。ステップS17にて肯定と判断すると、
ステップS32へ移る。ステップS32以降、ステップ
S33・34では、前記ステップS22・S23・S2
4と同一の処理が行われる。 【0053】ステップS34の判断が否定であれば、ス
テップS35へ移り、第2中間コードのLA2が0であ
るか否かを判断する。この判断が否定であれば処理はス
テップS33に移り、肯定であればステップS36で同
一の変数を行番号とする第2中間コードのLA1がジャ
ンプ先ラベルであるか否かを判断する。否定であれば前
記ステップS33へ移る。肯定であればステップS37
へ移り、下記のように定義される第2中間コードが設定
される。 【0054】   LA(*,1)=行番号*のラベルまたは    
        ジャンプ命令であるときのジャンプ先
データ                      
              …(7)  LA(*,
2)=0(行番号*=ラベル)           
 n(行番号*がジャンプ命令であるときの行番号) 
                         
                        …
(8)  LA(*,3)=ジャンプ命令のジャンプ先
データ                      
              …(9)ステップS38
では行番号LINE+ADDの命令について前記第3式
〜第4式に示す定義に基づき第1中間コードが設定され
、ステップS39で変数CONTが0に設定され、処理
はステップS14に戻る。前記ステップS34の判断が
肯定となると、ステップS40にて前記第7式〜第9式
の定義に基づき最新の行番号LANOに基づく第2中間
コードが設定され、ステップS38へ処理が移る。 【0055】ステップS30の判断が肯定となると、処
理はステップS41に進み、変数ADDが+1インクリ
メントされる。ステップS42では、その命令がジャン
プ命令であるかどうかが判断され、否定であればステッ
プS43に移り、RET命令であるかどうかを判断する
。否定であればステップS44に移り、前記第3式〜第
5式の定義に基づいて、第1中間コードが設定される。 ステップS45で変数CONT=1に設定して、処理は
ステップS14に戻る。 【0056】この命令がRET命令であれば、ステップ
S43の判断は肯定となり、処理はステップS46に移
り、前記第3式〜第5式の定義に基づいて、第1中間コ
ードが設定される。ステップS47で変数CONT=0
に設定され、処理はステップS14に戻る。 【0057】同一行にラベルとともにジャンプ命令が記
述されている場合、ステップS42の判断は肯定となり
、ステップS48に移り、行番号LANOが+1インク
リメントされ、また変数I=0に設定される。ステップ
S49では変数Iが+1インクリメントされ、ステップ
S50では変数Iが行番号LANOに一致したかどうか
が判断される。否定であればステップS51に移り、変
数Iの行番号の第2中間コードのLA(I,2) が0
であるかどうか判断する。肯定であればステップS52
で、その変数Iの第2中間コードのLA(I,1) が
ジャンプ先ラベルであるかどうかが判断される。 【0058】ステップS51の判断が否定であればステ
ップS49に戻る。ステップS52の判断が否定であっ
ても同様である。ステップS52の判断が肯定であれば
、ステップS53で前記第7式〜第9式の定義に基づい
て、第2中間コードが設定される。ステップS54では
前記第3式〜第5式の定義に基づいて、第1中間コード
がそれぞれ設定される。ステップS55で変数CONT
=0に設定して、処理はステップS14に戻る。 【0059】ここで、前記ステップS18の判断が肯定
となる場合、すなわちラベルと同一行の命令がRET命
令である場合、処理はステップS57に移り、前記第3
式〜第5式の定義に基づいて第1中間コードがそれぞれ
設定される。ステップS58では変数CONT=0に設
定して、処理はステップS14に戻る。 【0060】このようにして、ソースリスト解析手段1
4によって前記第1中間コード及びLA(*,1),L
A(*,2),LA(*,3) の第2中間コードがそ
れぞれ得られ、第1中間コード及び第2中間コードに対
応する第1中間コード記憶手段15及び第2中間コード
記憶手段16にそれぞれ記憶される。 【0061】図13は第2中間コードのLA(*,4)
 を求める処理を説明するフローチャートである。ステ
ップS61では行番号の変数JLが0に初期化される。 ステップS62では変数JLが第2中間コードの行番号
LANOと一致したかどうかが判断され、否定であれば
ステップS63で変数JLが+1インクリメントされる
。ステップS64でこのときの変数JLに対応する第2
中間コードのLA(JL,2)が0であるかどうかが判
断される。 【0062】この判断が否定であればステップS65で
、 LA(JL,4)=LA(JL,3)−LA(JL,2
)…(10)の演算が実行され、第2中間コードのLA
(JL,4)が得られる。ステップS64の判断が肯定
であるとき、すなわちLA(JL,1)がラベルであれ
ば処理はステップS62に戻る。ステップS62の判断
が肯定であればステップS66に移り、各変数LA1〜
3、LANOを第2中間コード記憶手段16に記憶する
。また、ステップS67で各変数LINE、ADD、C
ODEを同様に記憶する。 【0063】図14、図15及び図16は第1中間コー
ド解析手段17及び第2中間コード解析手段18と出力
コントロール手段19のフローチャート作成プログラム
「第1フロー」及び「第2フロー」の動作を説明するフ
ローチャートである。ステップS71では行番号の変数
LINEを0に初期化する。ステップS72では変数L
INEが最終行番号LENDに到達したかどうかが判断
され、肯定であれば他の処理に復帰する。否定であれば
ステップS74で変数LINEを+1インクリメントす
る。ステップS75では行番号LINEの第1中間コー
ドが、CODE(LINE,1) =Nであるかどうか
、すなわち行番号LINEの命令がジャンプ命令である
かどうかを判断する。 【0064】この判断が否定であればステップS76で
、行番号LINEの第1中間コードが、CODE(LI
NE,1) =T,G であるかどうか、すなわち行番号LINEの命令がラベ
ルかRET命令であるかどうかを判断する。 【0065】否定であればステップS77において、ス
テップS77のブロック内に図示されている処理記号の
上端部分を出力し、その中に対応する命令を出力する。 【0066】ステップS78では変数Jを1に設定し、
ステップS9で第1中間コードが、CODE(LINE
+J,2) =*であるか否か、すなわち当該行番号の
命令が前行の命令に連続する処理内容を有する命令であ
る継続行であるか否かを判断する。肯定であればステッ
プS80において、ステップS80のブロック内に図示
されている前記処理記号の上端部分に引き続く両側部分
の縦罫線を出力し、その中に対応する命令を出力する。 ステップS81で前記変数Jを+1インクリメントし、
処理をステップS79に移す。前記ステップS79の判
断が否定であれば、処理はステップS82に移り、前記
処理記号の下端部分である横罫線を出力する。ステップ
S83では、行番号LINEについて、 LINE=LINE+J−1        …(11
)の演算を行い、処理をステップS73に戻す。 【0067】前記ステップS76の判断が肯定である場
合、当該命令は他の箇所のジャンプ命令に対応するジャ
ンプ先の命令かまたはサブルーチンプログラムの終端の
命令であるRET命令のいずれかであることになり、ス
テップS84において、ステップS84のブロック内に
図示されている分岐先記号及びラベル名を出力し、ステ
ップS73に戻る。 【0068】次にフローチャート作成プログラムのフロ
ーチャートを出力するプログラム「第2フロー」につい
て図16に基づいて説明する。 【0069】ステップS91では、行番号LINEを0
に設定し、ステップS92では第2中間コードの各デー
タ及びソースプログラムの最終行データLENDを読み
出す。 【0070】ステップS93では、変数である行番号L
INEが最大行番号データLENDに一致するか否かを
判断し、一致するならば処理を終了する。否定であれば
ステップS94に移り、行番号LINEを+1インクリ
メントする。 【0071】ステップS95では、第2中間コードのL
A(LINE,2)が0であるか否か、すなわち行番号
LINEの命令がラベルであるか否かを判断する。肯定
であれば処理はステップS93に戻り、否定であればス
テップS96に移る。ステップS96では、第2中間コ
ードのLA(LINE,3)が0であるか否か、すなわ
ち当該行番号LINEの命令がジャンプ命令である場合
に当該命令に含まれるジャンプ先データが0であるか否
かを判断する。肯定であればステップS93に戻り、否
定であればステップS97に移る。 【0072】ステップS97では、第2中間コードにL
A(LINE,4)が負であるか否か、すなわち当該行
番号LINEの命令がジャンプ命令である場合、ジャン
プ先が当該行番号LINEより小さな行番号であるか否
かを判断する。肯定であればステップS98に移り、ス
テップS98のブロック内に示されているように、小さ
い行番号へ処理がジャンプする経路を示す記号を出力し
、処理をステップS93に戻す。ステップS97の判断
が否定であればステップS99に移り、ステップS99
のブロック内に示されているように、大きい行番号へ処
理がジャンプする経路を示す記号を出力し、処理をステ
ップS93に戻す。 【0073】このようにして図14、図15及び図16
に示される第1中間コード解析手段17、第2中間コー
ド解析手段18及び出力コントロール手段19の動作に
基づいてフローチャートが出力される。 【0074】以上のように、ジャンプ命令を別途ジャン
プ命令記憶手段13に記憶しておくことにより、前記ソ
ースプログラムが第1中間コード及び第2中間コードに
変換され、これらに基づいてフローチャートを自動的に
印字出力することができる。 【0075】これによって一旦フローチャートが出力さ
れた後にソースプログラムの変更が行われても、目視に
よるチェックにより再度フローチャートを書き直す必要
がなく、デバッグ作業の効率化とミスの発生の防止とを
併せて図ることができる。 【0076】また、用いられるマイクロプロセッサが他
の種類に変更され、したがって命令を記述するアセンブ
リ言語が変更される場合であっても、ジャンプ命令記憶
手段13に記憶されるジャンプ命令を変更すれば、前記
実施例で説明した処理手順と同一の処理手順にてフロー
チャートを出力することができる。これによりアセンブ
リ言語の種類を問わない汎用性を有する自動フローチャ
ート作成を行わせることができる。 【0077】 【発明の効果】本発明のマイクロコンピュータ開発支援
装置は、以上のように、インサーキットエミュレータに
よりマイクロコンピュータ応用機器のメインプログラム
と割り込み処理プログラムとを含むプログラムをデバッ
グするマイクロコンピュータ開発支援装置において、前
記プログラム中、実行されたプログラム命令の格納アド
レスを検出するアドレス検出手段と、検出されたアドレ
スを記憶するアドレス記憶手段と、前記プログラムのソ
ースプログラムとこのソースプログラムに対応するプロ
グラム命令の格納アドレスとを記憶するプログラム記憶
手段と、アドレス記憶手段に記憶されているアドレスと
プログラム記憶手段に記憶されているアドレスとを比較
し、一致するアドレスに格納されているソースプログラ
ムをプログラム記憶手段から読み出すと共に、そのソー
スプログラムがメインプログラムであるか割り込み処理
プログラムであるかを判別する比較手段と、比較手段よ
り読み出されたソースプログラムに基づいてフローチャ
ートを作成し表示すると共に、メインプログラム上での
割り込み発生位置を表示する表示手段とを備えたので、
プログラムのテスト時に実行されたメインプログラム及
び割り込み処理プログラムのソースプログラムがフロー
チャートとして表示され、しかも、メインプログラム上
のどの処理を行っていた時点でどの割り込み処理プログ
ラムが動作したかを確認できる。このため、マイクロコ
ンピュータ応用機器の動作が異常であれば、上記フロー
チャートに基づいてデバッグを必要とするプログラム部
分を迅速に見出すことができ、割り込み処理プログラム
を含むプログラムの開発効率が飛躍的に向上する。これ
により、信頼性の高いマイクロコンピュータ応用機器の
制御プログラムが得られるという効果を奏する。
【図面の簡単な説明】
【図1】本実施例のマイクロコンピュータ開発支援装置
の概略構成を示すブロック図である。
【図2】図1のアドレス検出手段により検出された一連
のアドレスの一例を示す説明図である。
【図3】図2の一連のアドレスに対応したメインプログ
ラムのフローチャートである。
【図4】図3に続くメインプログラムのフローチャート
である。
【図5】図2の一連のアドレスに対応した割り込み処理
プログラムのフローチャートである。
【図6】図5に続く割り込み処理プログラムのフローチ
ャートである。
【図7】表示装置の一具体例を示す概略の構成図である
【図8】図7の表示装置の基本的動作を説明するための
フローチャートである。
【図9】第1中間コード及び第2中間コードの作成方法
を説明するためのフローチャートである。
【図10】図9に続く第1中間コード及び第2中間コー
ドの作成方法を説明するためのフローチャートである。
【図11】図9に続く第1中間コード及び第2中間コー
ドの作成方法を説明するためのフローチャートである。
【図12】図9に続く第1中間コード及び第2中間コー
ドの作成方法を説明するためのフローチャートである。
【図13】第2中間コードのLA(*,4) を求める
処理を説明するためのフローチャートである。
【図14】第1中間コード解析手段17及び第2中間コ
ード解析手段18と出力コントロール手段19のフロー
チャート作成プログラム「第1フロー」の動作をそれぞ
れ説明するフローチャートである。
【図15】図14に続く第1中間コード解析手段17及
び第2中間コード解析手段18と出力コントロール手段
19のフローチャート作成プログラム「第1フロー」の
動作をそれぞれ説明するフローチャートである。
【図16】第1中間コード解析手段17及び第2中間コ
ード解析手段18と出力コントロール手段19のフロー
チャート作成プログラム「第2フロー」の動作をそれぞ
れ説明するフローチャートである。
【符号の説明】
1    ICE 2    アドレス検出器(アドレス検出手段)3  
  アドレス記憶器(アドレス記憶手段)4    プ
ログラム記憶器(プログラム記憶手段)5    アド
レス比較器(比較手段)6    表示装置(表示手段

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】インサーキットエミュレータによりマイク
    ロコンピュータ応用機器のメインプログラムと割り込み
    処理プログラムとを含むプログラムをデバッグするマイ
    クロコンピュータ開発支援装置において、前記プログラ
    ム中、実行されたプログラム命令の格納アドレスを検出
    するアドレス検出手段と、検出されたアドレスを記憶す
    るアドレス記憶手段と、前記プログラムのソースプログ
    ラムとこのソースプログラムに対応するプログラム命令
    の格納アドレスとを記憶するプログラム記憶手段と、ア
    ドレス記憶手段に記憶されているアドレスとプログラム
    記憶手段に記憶されているアドレスとを比較して、一致
    するアドレスに格納されているソースプログラムをプロ
    グラム記憶手段から読み出すと共に、そのソースプログ
    ラムがメインプログラムであるか割り込み処理プログラ
    ムであるかを判別する比較手段と、比較手段より読み出
    されたソースプログラムに基づいてフローチャートを作
    成し表示すると共に、メインプログラム上での割り込み
    発生位置を表示する表示手段とが備えられていることを
    特徴とするマイクロコンピュータ開発支援装置。
JP2408372A 1990-12-27 1990-12-27 マイクロコンピュータ開発支援装置 Pending JPH04229336A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2408372A JPH04229336A (ja) 1990-12-27 1990-12-27 マイクロコンピュータ開発支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2408372A JPH04229336A (ja) 1990-12-27 1990-12-27 マイクロコンピュータ開発支援装置

Publications (1)

Publication Number Publication Date
JPH04229336A true JPH04229336A (ja) 1992-08-18

Family

ID=18517831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2408372A Pending JPH04229336A (ja) 1990-12-27 1990-12-27 マイクロコンピュータ開発支援装置

Country Status (1)

Country Link
JP (1) JPH04229336A (ja)

Similar Documents

Publication Publication Date Title
US7178135B2 (en) Scope-based breakpoint selection and operation
US7080360B2 (en) Breakpoint safety net
KR100339697B1 (ko) 반도체 시험장치의 프로그램 작성 시스템
US5021948A (en) Program counter display device
JPH04229336A (ja) マイクロコンピュータ開発支援装置
US20240118994A1 (en) Test method, system, and device based on excel file loading
JPS62113244A (ja) プログラムテスト装置
JPH04286001A (ja) プログラマブルコントローラのプログラミング方法及びその装置
US20060070038A1 (en) Programmable controller
JP2851111B2 (ja) 監視画面試験装置
JPH11224211A (ja) ソフトウェア検査支援装置
EP0801348A1 (en) Method of monitoring the operation of a computer
JP2002362846A (ja) エレベータのラダー回路図面表示システム
JPH04131940A (ja) マイクロコンピュータ開発支援装置
JP2888242B2 (ja) マイクロプロセッサのプログラム開発システム
JPH02275539A (ja) デバッグ処理方式
JPH05250221A (ja) シミュレータ実行方式
JPH07200351A (ja) プログラムデバッグ方法およびプログラムデバッグ支援装置
JP2809048B2 (ja) 対画面デバッグ方式
JPH07219980A (ja) テスト実行方式
JPS6292034A (ja) プログラムデバツグ装置
JPS59128652A (ja) デイスプレイ装置を用いたプログラム検査方式
JP2002222099A (ja) プログラム開発支援装置、記録媒体、及びプログラム
JPH11306042A (ja) ソフトウェア開発支援装置及びデバッグ方法
JPH08211913A (ja) シミュレーション関連データ作成装置、シミュレーション関連データ作成方法およびシミュレーション関連データ作成装置を有するデバッガ