JP2888242B2 - Microprocessor program development system - Google Patents

Microprocessor program development system

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
Japanese (ja)
Other versions
JPH02146630A (en
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/en
Publication of JPH02146630A publication Critical patent/JPH02146630A/en
Application granted granted Critical
Publication of JP2888242B2 publication Critical patent/JP2888242B2/en
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命令毎に当該プログラムの実
行情報をエミュレータににて読みとり,該比較検出手段
において当該実行情報と該割り込みテーブルの情報とを
比較し,両者が一致した場合にはエミュレータは該被開
発装置のマイクロプロセッサのプログラムの実行停止を
指示すると共に,当該標準入出力に関する関数情報を該
標準入出力シンボルテーブルから選択して該開発マシン
へ送り,該標準入出力関数情報に該当する標準入出力サ
ブルーチンを該開発マシンに実行させるように構成す
る。
DETAILED DESCRIPTION OF THE INVENTION [Outline] Regarding a program development system for a microprocessor in a device to be developed, a program using standard input / output functions generally performed in a cross development environment and also in a self development environment. The purpose is to enable the evaluation to be carried out even in the system evaluation of the microprocessor in the device under development. At least a system for controlling the operating system and the emulator is built in, and the development of the microprocessor program in the device under development is executed. Of a development target device in a cross development environment comprising a development machine to be developed, an emulator controlled by the development machine, and a development device connected to the emulator and having a microprocessor whose program is controlled by the emulator. Microprocessor processor Means for previously including information for controlling the microprocessor of the device under development and standard input / output information for executing the standard input / output function in an object file output by a compiler loaded in the development machine, Means for storing the control information of the microprocessor of the developed device in the memory of the emulator when the object file is loaded into the system, and storing the standard input / output information including a subroutine for executing the standard input / output function. Means for storing in the memory of the development machine, and means for storing the standard input / output symbol table and the standard input / output interrupt table relating to the standard input / output information in either the memory of the development machine or the memory of the emulator; At the same time, the microprocessor A means for comparing and detecting the execution information of the ram and the information of the standard input / output interrupt table is provided in the emulator, and when the emulator controls and executes the program of the microprocessor of the developed device, the emulator executes the program for each instruction. The execution information of the program is read by the emulator, and the comparison and detection means compares the execution information with the information of the interrupt table. If the two match, the emulator executes the program of the microprocessor of the developing device. A stop instruction is given, function information relating to the standard input / output is selected from the standard input / output symbol table and sent to the development machine, and the standard input / output subroutine corresponding to the standard input / output function information is executed by the development machine. The configuration is as follows.

〔産業上の利用分野〕[Industrial applications]

本発明はマイクロコンピュータの制御ソフトウェアを
開発する際の例えば高級言語を用いたクロスコンパイラ
の利用をより容易にするためのマンマシンインターフェ
ースを向上するためのもので、マイクロコンピュータの
制御プログラム開発の分野で利用されるものである。
The present invention is directed to improving a man-machine interface for making it easier to use a cross-compiler using, for example, a high-level language when developing control software for a microcomputer. It is used.

又より具体的には、被開発装置に於けるマイクロプロ
セッサのプログラムの開発を実行する為にマイクロプロ
セッサを内蔵している開発マシン(以下開発マシンと言
う)を使用して,該開発マシンのマイクロプロセッサと
被開発装置に於けるマイクロプロセッサとが互換性のな
い異なる機械語で動作するクロス開発環境下(以下単に
クロス開発環境下と言う)において被開発装置のマイク
ロプロセッサ等のマイクロコンピュータのプログラムを
開発及び評価する場合においても高級言語のようなクロ
スコンパイラを用いてセルフ開発環境下におけると同様
の手法でその開発評価が出来るシステムに関するもので
ある。
More specifically, a development machine incorporating a microprocessor (hereinafter referred to as a development machine) is used to execute development of a microprocessor program in a device to be developed. In a cross development environment where the processor and the microprocessor in the device under development operate in different machine languages that are incompatible (hereinafter simply referred to as a cross development environment), the program of the microcomputer such as the microprocessor of the device under development is executed. The present invention also relates to a system capable of performing development and evaluation using a cross-compiler such as a high-level language in the same manner as in a self-development environment when developing and evaluating.

〔従来の技術〕[Conventional technology]

マイクロコンピュータを内蔵した被開発装置,例えば
温風ヒータとかエアコン等はこれ等の製品が出荷される
以前に、組み込まれたマイクロプロセッサのコンピュー
タプログラムが正常に作動するかどうかを検査し評価す
ることが一般的に行われている。
Developed devices with built-in microcomputers, such as hot air heaters and air conditioners, can test and evaluate whether the built-in microprocessor computer program works properly before these products are shipped. Generally done.

従来、このようなマイクロコンピュータの制御ソフト
ウェア開発環境はアセンブラ一辺倒であったが、近年高
級言語、それもC言語を使用するプログラマが増加し、
それに伴い高級言語デバッグをサポートするソフトウェ
アシュミレータが出現している。
In the past, the control software development environment for such microcomputers was all about assemblers. However, in recent years, the number of programmers using high-level languages, also C language, has increased.
Along with this, software simulators that support high-level language debugging have emerged.

処で従来においてこの様な被開発装置のマイクロプロ
セッサのプログラムを開発するに際しては通常セルフ開
発環境の下で実行されている。セルフ開発環境とは被開
発装置のマイクロプロセッサと開発マシン例えばパソコ
ンのマイクロプロセッサとが同一種類の機械語で動作す
る場合を云い、一般的にはパソコンのマイクロプロセッ
サが被開発装置のマイクロプロセッサを制御しながら評
価が行われるものであり、アセンブラにより機械語と1
対1に対応して実行されていた。然しながら実際の作業
としては、マイクロプロセッサにおけるプログラムが正
しく動作しているかをみるには該マイクロプロセッサの
動作をいちいちブレークしてそのたびに調べたい値につ
いての変数をメモリをのぞいてその値をみる必要があ
る。かかるやり方はかなり辛抱強さがいる。つまりこの
システムでは変数変化が予想されるアドレスを予め指定
してそこで実行を停めて別のコマンドを用いてメモリの
中を見ることにより確認しそれから別の実行に移るとい
う繁雑さが要求されていた。
Conventionally, such a program of the microprocessor of the device under development is conventionally executed under a self-development environment. The self-development environment refers to the case where the microprocessor of the device to be developed and the development machine, for example, the microprocessor of a personal computer, operate in the same type of machine language. Generally, the microprocessor of the personal computer controls the microprocessor of the device to be developed. The evaluation is performed while the machine language and 1
It was executed in a one-to-one correspondence. However, as an actual task, in order to check whether the program in the microprocessor is operating correctly, it is necessary to break the operation of the microprocessor one by one and check the value of the variable for the value to be checked each time except for the memory. There is. Such an approach is quite patient. In other words, in this system, it was required to specify the address where the change of the variable is expected in advance, stop the execution there, check it by using another command in the memory, and then proceed to another execution. .

かかる繁雑さを解消する方法としてコンパイラつまり
高級言語例えばC言語を用いてデバックすることが盛ん
になりアセンブラを知らなくても被開発装置に於けるマ
イクロプロセッサのプログラム開発が出来るようになっ
て来た。そして更に,パソコン側のマイクロプロセッサ
に被開発装置のマイクロプロセッサの制御を代行させ,
例えばC言語のコンパイラで上記の開発を行う場合に
は、プログラムの実行において高級言語が正しいか否か
を調べるのにプログラムの途中に標準入出力関数例えば
“printf"文を挿入しておき、その“printf"文により要
求された変数をパソコンのCRT画面に表示させて確認す
るというような方法で実行されており、手軽な方法とし
てよく使用されている。この方法ではセルフ開発である
ため動作する被開発装置のマイクロプロセッサと開発マ
シンのマイクロプロセッサとが同一種類の機械語で動作
するものであり、従って該被開発装置のマイロプロセッ
サの動作をパソコンのマイクロプロセッサで代行するこ
とが可能となるのである。
As a method of solving such complexity, debugging using a compiler, that is, a high-level language such as C language, has become popular, and it has become possible to develop a microprocessor program in a device to be developed without knowing an assembler. . Further, the microprocessor of the personal computer is made to control the microprocessor of the developed device,
For example, when the above development is performed using a C language compiler, a standard input / output function, for example, a “printf” statement is inserted in the middle of the program to check whether the high-level language is correct in executing the program. This is done by displaying the variables requested by the “printf” statement on the CRT screen of the personal computer and checking them, and is often used as a simple method. In this method, the microprocessor of the device to be developed and the microprocessor of the development machine that operate because the device is self-developed operate in the same type of machine language. Therefore, the operation of the microprocessor of the device to be developed is controlled by the microprocessor of the personal computer. It is possible for the processor to do it for you.

又このような高級言語を扱っている人はいちいちプロ
グラムの実行を停めずに調べたい変動データや情報をCR
Tに表示して確認する方法に慣れているのが一般的であ
る。
In addition, those who deal with such high-level languages can use CR and
It is common to be used to the method of displaying and confirming on the T.

一方かかる評価システムにおいてセルフ開発環境とは
異なりデバッグするプログラムを調べるパソコン用のマ
イクロプロセッサと該被開発装置のマイクロプロセッサ
とが異なる種類の機械語で動作する場合のプログラム開
発を行う即ちクロス開発環境の場合には、パソコンのマ
イクロプロセッサで代行する事が出来ない。
On the other hand, in such an evaluation system, unlike the self-development environment, a microprocessor for a personal computer for examining a program to be debugged and a microprocessor of the device under development operate in different types of machine language to develop a program. In such a case, it cannot be performed by the microprocessor of the personal computer.

従って,前述したように被開発装置のシステムの制御
は直接には該被開発装置のマイクロプロセッサが行い,
パソコン側のマイクロプロセッサがこの被開発装置のマ
イクロプロセッサをエミュレータを介して止めたり,走
らせたりすることによって間接的に被開発装置のシステ
ムの制御を行う方式を取らざるを得なくなる。
Therefore, as described above, the control of the system of the developed device is directly performed by the microprocessor of the developed device.
The microprocessor on the personal computer side must indirectly control the system of the developing device by stopping or running the microprocessor of the developing device via the emulator.

その場合において,プログラムの途中に例えば“prin
tf"文を挿入して実行させたとしてもマイクロプロセッ
サに通常表示機能がないため直ちにその結果を表示する
ことは出来ない。
In that case, for example, "prin
Even if a tf "statement is inserted and executed, the result cannot be displayed immediately because the microprocessor does not have a normal display function.

然しながら前述のように高級言語による評価に慣れて
いる人の要望もあり、クロス開発環境下でもセルフ開発
環境と同じような評価システムが確立されることが望ま
れていた。
However, as described above, there is also a request from a person who is accustomed to evaluation in a high-level language, and it has been desired that an evaluation system similar to a self-development environment be established under a cross development environment.

〔発明が解決しようとする課題〕[Problems to be solved by the invention]

従って本発明の目的はクロス開発環境下においてもセ
ルフ開発環境において一般的に行われている標準入出力
関数を用いて被開発装置のマイクロプロセッサのプログ
ラム開発を行うことの出来る方法を提供しようとするも
のである。
Accordingly, an object of the present invention is to provide a method capable of developing a microprocessor program of a device under development using a standard input / output function generally performed in a self-development environment even in a cross development environment. Things.

〔課題を解決するための手段〕[Means for solving the problem]

上記の目的を達成するため、現物のマイクロプロセッ
サのシステムを評価するにはエミュレータを用いて評価
する必要があり、高級言語をサポートしているクロスコ
ンパイラ及びそれに対応したエミュレータを用意してプ
ログラム開発や評価にセルフ開発環境と同一のデバッグ
手法をとることを可能にする必要があり、かかる技術的
課題を実現するために次のような技術的後生を採用した
ものである。即ち、 少なくともオペレーティングシステムとエミュレータ
を制御するシステムを内蔵し,被開発装置に於けるマイ
クロプロセッサのプログラムの開発を実行する開発マシ
ン(以下単に開発マシンと言う),該開発マシンにより
制御されるエミュレータ及び該エミュレータに接続さ
れ,該エミュレータによりそのプログラムが制御される
マイクロプロセッサを有する被開発装置とから構成さ
れ,且つ該開発マシンのマイクロプロセッサと該被開発
装置に於けるマイクロプロセッサとが異なる機械語で動
作するクロス開発環境下(以下単にクロス開発環境下と
云う)での被開発装置におけるマイクロプロセッサのプ
ログラム開発システムにおいて,該開発マシンにロード
されるコンパイラが出力するオブジェクトファイル内に
予め該被開発装置のマイクロプロセッサ制御用情報及び
標準入出力機能を実行させる標準入出力情報とを含ませ
ておく手段,該オブジェクトファイルが当該システムに
ロードされた時に該被開発装置のマイクロプロセッサの
制御情報をエミュレータのメモリにストアしておく手
段,該標準入出力機能を実行するためサブルーチンを含
む標準入出力情報を該開発マシンのメモリにストアする
手段,及び該標準入出力情報に関する情報入出力シンボ
ルテーブルと標準入出力割り込みテーブルとを該開発マ
シンのメモリか該エミュレータのメモリの何れかにスト
アする手段とをそれぞれ設けるとともに,該被開発装置
のマイクロプロセッサのプログラムの実行情報と該標準
入出力割り込みテーブルの情報とを比較検出する手段を
該エミュレータに設けておき,該エミュレータが該被開
発装置のマイクロプロセッサのプログラムを制御し実行
させるに際し1命令毎に当該プログラムの実行情報をエ
ミュレータにて読みとり,該比較検出手段において当該
実行情報と該割り込みテーブルの情報とを比較し,両者
が一致した場合にはエミュレータは該被開発装置のマイ
クロプロセッサのプログラムの実行停止を指示すると共
に,当該標準入出力に関する関数情報を該標準入出力シ
ンボルテーブルから選択して該開発マシンへ送り,該標
準入出力関数情報に該当する標準入出力サブルーチンを
該開発マシンに実行させる被開発装置のマイクロプロセ
ッサのプログラム開発システムである。
In order to achieve the above objectives, it is necessary to use an emulator to evaluate the actual microprocessor system, and to prepare a cross-compiler that supports high-level languages and an emulator corresponding to it, It is necessary to make it possible to use the same debugging technique as that of the self-development environment for the evaluation. In order to realize such a technical problem, the following technical posterity is adopted. That is, a development machine (hereinafter, simply referred to as a development machine) that at least includes a system for controlling an operating system and an emulator and executes the development of a microprocessor program in a device to be developed, an emulator controlled by the development machine, A development device connected to the emulator and having a microprocessor whose program is controlled by the emulator, wherein the microprocessor of the development machine and the microprocessor of the development device are in different machine languages. In a program development system of a microprocessor in a device under development in an operating cross development environment (hereinafter simply referred to as a cross development environment), the device under development is previously stored in an object file output by a compiler loaded on the development machine. Means for including the microprocessor control information and the standard input / output information for executing the standard input / output function. When the object file is loaded into the system, the control information of the microprocessor of the developed device is stored in the emulator. Means for storing the standard input / output information including a subroutine for executing the standard input / output function in the memory of the development machine; and an information input / output symbol table and a standard input / output symbol table relating to the standard input / output information. Means for storing the output interrupt table in either the memory of the development machine or the memory of the emulator; and execution information of a program of a microprocessor of the device under development and information of the standard input / output interrupt table. The emulator is provided with means for comparing and detecting When the emulator controls and executes the program of the microprocessor of the developed device, the execution information of the program is read by the emulator for each instruction, and the comparison and detection means compares the execution information with the information of the interrupt table. If they match, the emulator instructs the microprocessor of the developed device to stop executing the program, and selects the function information related to the standard input / output from the standard input / output symbol table and sends it to the development machine. , A program development system for a microprocessor of a device under development for causing the development machine to execute a standard input / output subroutine corresponding to the standard input / output function information.

つまり,本発明の基本的技術思想は開発マシンと被開
発装置のマイクロプロセッサ及びエミュレータとからな
るクロス開発環境下でのマイクロプロセッサのプログラ
ム開発において、該開発マシンにおけるコンパイラが出
力するオブジェクトファイル内に該被開発装置のマイク
ロプロセッサのネイティブなコードとセルフ開発環境下
で一般に用意されている標準入出力機能を実行させるた
めの情報とを含ませ、該情報の出力をエミュレータが識
別して該開発マシンの入出力機能に当該標準入出力機能
を代行させるように構成されている被開発装置のマイク
ロプロセッサのプログラム開発及び評価システムであ
る。
In other words, the basic technical idea of the present invention is that when developing a microprocessor program in a cross development environment consisting of a development machine, a microprocessor and an emulator of a device to be developed, the object file output by the compiler in the development machine is The emulator includes the native code of the microprocessor of the device to be developed and information for executing the standard input / output function generally prepared in the self-developing environment, and the emulator identifies the output of the information to identify the output of the development machine. This is a system for developing and evaluating a microprocessor of a device under development, which is configured to substitute the standard input / output function for the input / output function.

ここで,上記の開発マシンとは被開発装置に於けるマ
イクロプロセッサのプログラムの開発を実行する為にマ
イクロプロセッサを主体としキーボード,表示装置等を
含んで構成されている機器を指すものである。
Here, the above-mentioned development machine refers to a device mainly composed of a microprocessor and configured to include a keyboard, a display device, and the like in order to execute development of a microprocessor program in a device to be developed.

〔作用〕[Action]

本発明にあっては,開発マシンとマイクロプロセッサ
を有する被開発装置及びエミュレータとからなるクロス
開発環境下での被開発装置のマイクロプロセッサのプロ
グラム開発システムにおいて,コンパイラが出力する開
発マシンにロードされるオブジェクトファイル内に該被
開発装置のマイクロプロセッサのネイティブな制御情報
と標準入出力機能を実行させるための標準入出力情報と
を含ませておき,該被開発装置のマイクロプロセッサの
ネイティブな制御情報に基きエミュレータを介して該被
開発装置のマイクロプロセッサのプログラムを実行させ
ると共にその実行情報をエミュレータにおいて該標準入
出力情報と比較,識別させ,該両情報が一致した時にエ
ミュレータが該被開発装置のマイクロプロセッサのプロ
グラムの実行を停止すると同時に,当該標準入出力に関
する情報を開発マシンへ送り該標準入出力機能の実行を
該開発マシンの標準入出力機能に代行させるものである
からクロス開発環境下においてもセルフ開発環境下にお
けると同様にパソコンのCRTを見ながら被開発装置のマ
イクロプロセッサのプログラムにおけるデバッグを実行
することが出来る。
According to the present invention, in a program development system for a microprocessor of a device under development in a cross development environment comprising a device to be developed having a development machine, a microprocessor, and an emulator, the program is loaded into a development machine output by a compiler. In the object file, native control information of the microprocessor of the device under development and standard input / output information for executing the standard input / output function are included, and the native control information of the microprocessor of the device under development is included in the object file. The emulator executes the program of the microprocessor of the device under development via the base emulator, compares the execution information with the standard input / output information in the emulator, and when the information matches, the emulator activates the microprocessor of the device under development. Stop execution of processor program At the same time, the information about the standard input / output is sent to the development machine to execute the standard input / output function on behalf of the standard input / output function of the development machine. Similarly, it is possible to execute debugging on the program of the microprocessor of the developed device while looking at the CRT of the personal computer.

〔実施例〕〔Example〕

以下に本発明を実施例の形で詳しく説明する。 Hereinafter, the present invention will be described in detail with reference to examples.

まず本発明におけるようなクロス開発環境下におい
て、セルフ開発環境におけると同じ標準入出力関数を用
いて被開発装置のマイクロプロセッサのプログラムを開
発,評価する場合には例えば第2図に示すように000番
地からFFF番地まで構成されたクロス開発用プログラム
が実行されている間にaaa番地であるデータ(“Var")
がどう変化しているかを見たい場合“printf"以下の文
を挿入し(例えば“printf"(“a=%d",Var)として
変数Varの値を“a=1234"の形式で10進表示するよう指
示)これを実行するに当たっては、該被開発装置のマイ
クロプロセッサではこれを表示出来ないため開発マシン
のパソコンのマイクロプロセッサを使ってこの情報を画
面に出すことにしたものである。従って被開発装置のシ
ステム上のマイクロプロセッサは本来ずっと動いている
が“printf"文が挿入されていた箇所に出合うとパソコ
ン上のマイクロプロセッサがそれを検知し,画面表示の
ため“Var"のデータをエミュレータを通じて見に行きそ
のデータをパソコンの方で例えば“a=1234"というよ
うな表示をCRTにさせることになる。
First, in a cross development environment as in the present invention, when developing and evaluating a microprocessor program of a device under development using the same standard input / output functions as in the self development environment, for example, as shown in FIG. Data (“Var”) that is aaa while the cross-development program configured from address to FFF is being executed
If you want to see how has changed, insert a statement below “printf” (eg, “printf” (“a =% d”, Var) and set the value of the variable Var in decimal as “a = 1234”. (Instruction to display) In executing this, the microprocessor of the development target device cannot display this information, so that the information is displayed on the screen using the microprocessor of the personal computer of the development machine. Therefore, the microprocessor on the system of the developed device is always running, but when it encounters the place where the “printf” statement is inserted, the microprocessor on the personal computer detects it and displays the “Var” data for screen display. Through an emulator, and the data is displayed on a CRT by a personal computer, for example, "a = 1234".

かかるシステムを実行するための基本構成図が第1図
に示されており,開発マシン1と温風ヒータ、エアコン
等の被開発装置3との間にエミュレータ2を介在させる
ものであり、開発マシン1には当然オペレーティングシ
ステム4、及びエミュレータ制御ソフト6等が含まれて
いる。又,かかる本発明のシステムにおいて開発マシン
に関する基本ソフトを含むコンパイラ5が出力するオブ
ジェクトファイル7内に被開発装置3のマイクロプロセ
ッサ13のネイティブな情報コードとコンパイラのソース
プログラムにおいて記述された標準入出力情報,例えば
C言語であれば、getc,putc,printf,fprintf,scanf2,f
scanf等の標準入出力関数データをデバッグ情報として
含ませるものである。
FIG. 1 shows a basic configuration diagram for executing such a system. An emulator 2 is interposed between a development machine 1 and a development target device 3 such as a hot air heater or an air conditioner. 1 includes the operating system 4 and the emulator control software 6 as a matter of course. In the system of the present invention, the native information code of the microprocessor 13 of the device under development 3 and the standard input / output described in the source program of the compiler are stored in the object file 7 output by the compiler 5 including the basic software related to the development machine. Information, for example, in the case of the C language, getc, putc, printf, fprintf, scanf 2 , f
Standard input / output function data such as scanf is included as debug information.

この場合両者は互いに異なるオブジェクトレコードタ
イプを用いて含ませることが出来る。
In this case, both can be included using different object record types.

その他,該オブジェクトファイル7にはネイティブ情
報のシンボル情報と標準入出力情報のシンボル情報とを
含ませておくことも出来る。
In addition, the object file 7 can include symbol information of native information and symbol information of standard input / output information.

その後、本発明においては第1図に示されるようにエ
ミュレータを介して該プログラムを開発評価するに当た
り,ローダブルオブジェクトファイル7内に含まれるネ
イティブ情報,標準入出力情報,ネイティブ情報のシン
ボル情報及び標準入出力情報のシンボル情報の内,ネイ
ティブコードはエミュレータのメモリ12にロードし、そ
の他は後述する種々の形式で開発マシンのメモリ8又は
エミュレータのメモリ9にロードしておく。
Thereafter, in the present invention, when developing and evaluating the program via an emulator as shown in FIG. 1, the native information, standard input / output information, symbol information of native information, and standard information included in the loadable object file 7 are included. Of the symbol information of the input / output information, the native code is loaded into the memory 12 of the emulator, and the others are loaded into the memory 8 of the development machine or the memory 9 of the emulator in various formats described later.

そしてプログラムの実行に当たってはブレークポイン
トで指定されたシンボルの種別によりエミュレーション
メモリの実行か標準入出力の代行かを判断してその実行
を切り分ける機能をエミュレータ2に持たせておくもの
である。第1図において7はローダブルオブジェクトの
ファイル,7′はクロスコンパイラが出力する絶対形式オ
ブジェクトプログラムのレコード形式である。又8はホ
ストマシンメモリで9及び12はエミュレータのメモリで
ありそれぞれその内にロードされるデータの種類を示し
ている。
When the program is executed, the emulator 2 is provided with a function of determining whether to execute the emulation memory or substitute for the standard input / output based on the type of the symbol specified by the breakpoint, and separating the execution. In FIG. 1, reference numeral 7 denotes a loadable object file, and reference numeral 7 'denotes a record format of an absolute format object program output by the cross compiler. Reference numeral 8 denotes a host machine memory, and reference numerals 9 and 12 denote emulator memories, each of which indicates a type of data to be loaded therein.

尚,該エミュレータメモリ内のデータは開発マシンの
メモリ8に含ませておくこともできる。
Incidentally, the data in the emulator memory can be included in the memory 8 of the development machine.

本発明において使用されるエミュレータは被開発装置
のマイクロプロセッサのプログラムを制御する機能を有
しており該マイクロプロセッサとその周辺リソースを必
要な時点でエミュレータのハードを用いて代行する機能
を有するものであればよい。
The emulator used in the present invention has a function of controlling a program of a microprocessor of a device under development, and has a function of substituting the microprocessor and its peripheral resources when necessary by using the hardware of the emulator. I just need.

通常被開発装置のマイクロプロセッサのプログラムは
いったん走り出したら被開発装置内で実行されるから好
きな番地では止められないためエミュレータが該被開発
装置のマイクロプロセッサの動作を止めたり進めたりす
る。具体的には、一般にプローブと称するエミュレータ
本体(ハード)から引き出されたリード線の先端に取り
付けられているソケットを被開発装置からマイクロプロ
セッサを取り外した跡にさし込んでエミュレータのマイ
クロプロセッサにより被開発装置のプログラムを制御す
る(つまりプログラムを走らせる、停める、どの番地ま
で実行するか等)ものであってハードそのものはそれほ
ど複雑なものでなくてもよい。次に本発明にあっては,
本システムを作動される為の基本ソフトを含むクロスコ
ンパイラを準備する必要がある。
Usually, once the program of the microprocessor of the device under development starts, it is executed in the device under development and cannot be stopped at a desired address. Therefore, the emulator stops or advances the operation of the microprocessor of the device under development. Specifically, a socket attached to the end of a lead wire drawn out of an emulator main body (hardware), which is generally called a probe, is inserted into a trace where the microprocessor has been removed from the device to be developed, and the microcontroller of the emulator receives the socket. It controls the program of the development device (that is, runs or stops the program, to which address it is executed, etc.), and the hardware itself does not have to be so complicated. Next, in the present invention,
It is necessary to prepare a cross compiler including the basic software for operating this system.

係るクロスコンパイラは例えば,MS−DOS(マイクロソ
フト社のオペレーティングシステム )環境の下で制御
用マイクロコントローラのクロスコンパイラを作成す
る。このクロスコンパイラはprint f2 scan f等のC言
語の標準入出力関数がソースプログラムに記述されてい
ると標準入出力レコードを出力する。又、本発明では,
該標準入出力レコードから,標準入出力関数に対応する
ホストマシンコードを開発マシン1のマイクロプロセッ
サ(ホストコンピュータ)側でサブルーチンの形でメモ
リ8中にロードしておく。
 Such a cross compiler is, for example, MS-DOS (Microsoft
Ft operating system ) Control under the environment
A microcontroller cross compiler
You. This cross compiler uses print fTwo C words such as scan f
If the standard input / output function of the word is described in the source program,
Output standard input / output records. In the present invention,
Corresponding to the standard input / output function from the standard input / output record
Transfer the host machine code to the microprocessor
Memo in the form of a subroutine at the host computer
Load it during Re8.

一方エミュレータ2は該プログラムのロード時に標準
入出力レコードに対応した標準入出力割り込みテーブル
11と標準入出力シンボルテーブル10とを作成しメモリ9
にストアしておく。
On the other hand, the emulator 2 has a standard input / output interrupt table corresponding to the standard input / output record when the program is loaded.
11 and a standard input / output symbol table 10
Store in.

尚,前記したように,該標準入出力割り込みテーブル
11と標準入出力シンボルテーブル10とは開発マシンのメ
モリ8にストアしておくこともできるがデーター処理の
スピードが低下するため該テーブルを開発マシン側に設
けることは得策ではない。
As described above, the standard input / output interrupt table
Although the data 11 and the standard input / output symbol table 10 can be stored in the memory 8 of the development machine, it is not advisable to provide the table on the development machine because the speed of data processing is reduced.

以下に本発明に於けるシステムの実行手順を第3図の
フローチャートに従って説明すると,エミュレータが被
開発装置のプログラムの実行中(step a)にその実行ア
ドレスをエミュレータに転送し(step b),該アドレス
がエミュレータ(ハード)上のメモリ(RAM)に作成さ
れた該標準入出力割り込みテーブルの割り込みアドレス
と一致するかを一命令毎に比較し(step c)、そのテー
ブルのアドレスの1つと一致したら例えば現行アドレス
と該テーブル中のアドレス200h(“printf"文)と一致
したらその情報にもとづきエミュレータが被開発装置の
プログラム実行を中止する(step d)と共に関数情報を
選択し(step e)、これを開発マシンのマイクロプロセ
ッサに送り(step f)標準入出力関数(プリント或いは
CRT表示等)の処理を割り込み実行させる(step g)も
のである。
The execution procedure of the system according to the present invention will be described below with reference to the flowchart of FIG. 3. The emulator transfers the execution address to the emulator during the execution of the program of the device under development (step a) (step b). Whether the address matches the interrupt address of the standard input / output interrupt table created in the memory (RAM) on the emulator (hardware) is compared for each instruction (step c), and if it matches one of the addresses in the table For example, if the current address matches the address 200h (“printf” statement) in the table, the emulator stops the program execution of the developed device based on the information (step d) and selects function information (step e). Is sent to the microprocessor of the development machine (step f) and the standard input / output function (print or
(CRT display etc.) is interrupted (step g).

プログラム実行時に該標準入出力割り込みアドレスを
ソフトウェアのブレークポイントと考え、割り込みをか
け、その時点でエミュレータは被開発装置のマイクロプ
ロセッサをホールドさせ、標準入出力割り込みテーブル
の情報を参照することによりどの標準入出力関数部分を
実行するかを判断して制御をホストマシンに移す。ホス
トマシンは標準入出力処理を実行し終了したら制御をエ
ミュレータに戻すのである。
When the program is executed, the standard I / O interrupt address is considered as a software breakpoint, and an interrupt is generated. At that point, the emulator holds the microprocessor of the device under development, and refers to the information in the standard I / O interrupt table to determine the standard I / O interrupt table. Judge whether to execute the input / output function part and transfer control to the host machine. The host machine executes standard input / output processing and returns control to the emulator when finished.

この処理が終了後エミュレータは被開発装置のシステ
ムの実行を再開する(step h)。
After this processing is completed, the emulator resumes the execution of the system of the developed device (step h).

又他の具体例としては、上記標準入出力割り込みテー
ブルを開発マシンのマイクロプロセッサに作成してお
き、被開発装置のシステムの実行中にその実行状態をエ
ミュレータを介して開発マシンのマイクロプロセッサに
送りそこで前記と同じ比較処理を行わせ実行アドレスが
該テーブル上の割り込みアドレスの1つと一致した場合
にはその情報をエミュレータに戻し上記と同じ処理を行
うようにしても良い。本発明では,ホストマシンのマイ
クロプロセッサのプログラムでエミュレータを制御しつ
つエミュレータのハードに指示を送りエミュレータに被
開発装置のマイクロプロセッサの情報を読み込ませそれ
を開発マシンに転送させるか,又エミュレータ自身で該
情報を読みとり比較してデータがどう変わったかを確認
する。
As another specific example, the standard input / output interrupt table is created in the microprocessor of the development machine, and the execution state is transmitted to the microprocessor of the development machine via the emulator during execution of the system of the development target device. Therefore, the same comparison processing as described above may be performed, and if the execution address matches one of the interrupt addresses on the table, the information may be returned to the emulator and the same processing as described above may be performed. According to the present invention, while controlling the emulator with the program of the microprocessor of the host machine, an instruction is sent to the hardware of the emulator, the information of the microprocessor of the device to be developed is read by the emulator, and the information is transferred to the development machine. The information is read and compared to confirm how the data has changed.

次に本発明において使用されるローダブルオブジェク
トファイルのデーター構造及び標準入出力関数、同シン
ボルテーブル、或いは同割り込みテーブル等のデーター
構造について説明する。
Next, the data structure of the loadable object file and the data structure of the standard input / output function, the same symbol table or the same interrupt table used in the present invention will be described.

第4図に示すようにこのオブジェクトファイルはレコ
ードと呼ばれる形の単位(a)から作成されるのであ
り、従ってこのファイルはこのデータブロック(a)の
集まりから構成されたものである。
As shown in FIG. 4, this object file is created from a unit (a) in the form of a record, so that this file is composed of a collection of this data block (a).

以下該データブロックについて簡単な例を用いて説明
すると、その構成はレコード識別番号、レコード長
及びレコードの内容から出来ている。このレコードに
は大別してデータレコードとデバック情報レコードとが
ありそのについての詳細を次に説明するが上記、と
の部分については省略する。
The data block will be described below using a simple example. The configuration is made up of a record identification number, a record length, and the contents of a record. This record is roughly classified into a data record and a debug information record, and details thereof will be described below, but the above description is omitted.

まずデータレコードの中味は第5図に示すような単位
構成(b)となっていて、どこのアドレスからロードさ
せるかを示すプログラムロードアドレス、以下に続く
の部分のデータのバイト長を示すデータ長及びメモ
リにロードするデータの内容とから構成されており、
のアドレスによりのデータをメモリにロードするも
のである。
First, the contents of the data record have a unit configuration (b) as shown in FIG. 5, a program load address indicating from which address the data is to be loaded, and a data length indicating the byte length of the data of the following part. And the content of the data to be loaded into the memory.
Is loaded into the memory.

このデータレコードをエミュレータが読み込んでエミ
ュレーションメモリにロードするとそのロード結果は第
6図に示すようになる。例えばのアドレスが200h、デ
ータ長が16バイト、データの内容が=010203…で
あったとするとこれがエミュレーションメモリ15の斜線
の部分にロードされる。
When this data record is read by the emulator and loaded into the emulation memory, the loading result is as shown in FIG. For example, if the address is 200h, the data length is 16 bytes, and the content of the data is 010203..., This is loaded into the hatched portion of the emulation memory 15.

一方デバック情報レコードについてみると、デバック
情報とはエミュレーションを円滑に行うために用意され
た主にシンボル情報であり、例えば数値、変数、ジャン
プ先の記号からなるもので、コンパイラやアセンブラが
出力するものである。
Looking at the debug information record, on the other hand, debug information is mainly symbol information prepared for smooth emulation, for example, consisting of numerical values, variables, and jump destination symbols, which are output by a compiler or assembler. It is.

このレコードの単位構成(c)は第7図に示すように
シンボルタイプとシンボルデータ及びシンボル定義
番号から構成されている。
The unit configuration (c) of this record is composed of a symbol type, symbol data and a symbol definition number as shown in FIG.

ここでシンボルタイプは一般的なものとして数値シ
ンボル、変数、分岐先ラベル(ジャンプ先のラベル)が
含まれる。
Here, the symbol type generally includes a numerical symbol, a variable, and a branch destination label (a jump destination label).

又シンボルデータはシンボルが持っているデータで
数値シンボルであれば数値そのもの、変数、か更にはラ
ベルであればそこにアドレスが格納される。
The symbol data is the data held by the symbol. If it is a numerical symbol, the numerical value itself, a variable, or, if it is a label, the address is stored therein.

又シンボル定義番号はシンボルがコンパイラやアセ
ンブラで定義された順に付けられるシリアル番号であ
る。
The symbol definition number is a serial number assigned to the symbol in the order defined by the compiler or assembler.

このレコードをエミュレータが開発マシンのマイクロ
プロセッサのメモリに又はエミュレータ上のメモリ(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)も同様であ
る。
The emulator stores this record in the memory of the microprocessor of the development machine or in the memory (RA
M), the symbol table 16 shown in FIG. 8 is stored in the memory (host machine memory) of the microprocessor.
8 or on a memory 9 (RAM) of the emulator. If the label 1 (16-1) in FIG. 8 is "Var" (variable), for example, Sym1- (1) (corresponding to the symbol type) is 1, and Sym1- (2) is equivalent to the symbol data.
200h, Sym1- (3) (corresponding to the symbol definition number) is formed as 1. Sym at label n (16-3)
The same applies to n- (1), Sym n- (2), and Sym n- (3).

次に本発明に使用される標準入出力レコードの構成に
ついて述べる。高級言語を用いた標準入出力関数である
例えばprintf,fputc2fgetc,fprintf,fscanf等は一般に
はコンソール入出力関数と考えてよく入力はキーボード
によるインプット、出力はテレビ等に表示することを示
している。そこで該標準入出力関数がソースプログラム
内に記述されるとコンパイラは第9図に示すような標準
入出力レコード(d)を出力する。
Next, the configuration of the standard input / output record used in the present invention will be described. For example, printf, fputc 2 fgetc, fprintf, fscanf, etc., which are standard input / output functions using high-level languages, can be generally considered as console input / output functions.Input indicates input by keyboard, output indicates display on TV etc. I have. Then, when the standard input / output function is described in the source program, the compiler outputs a standard input / output record (d) as shown in FIG.

該レコード(d)の構成は標準入出力関数識別番号を
番号付けする部分、該標準入出力関数が記述されたア
ドレスを格納する標準入出力関数割込アドレス部分と
標準入出力の関数情報を格納する部分とから成ってお
り、前記標準入出力関数識別番号を予め例えば 1:printf 2:fputc 3:fgetc 4:fprintf 5:fscanf のように割りつけておき,このいずれかをの部分に格
納する。又上記標準入出力関係割り込みアドレスには例
えば当該関数である。“printf"が200h番地であるとす
るとこの部分には200hとなり、このアドレスの処をプ
ログラムが実行しようとすると割り込みが入り“print
f"の処理をするよう命令が出る。更に関数情報の部分
には組み込み関数特有の情報が入るものであり、このフ
ィールドは各関数によって異なる。このデータの構成は
膨大であるのでここでは“print f"を使用する場合を一
例として説明する。
The configuration of the record (d) includes a part for numbering a standard input / output function identification number, a standard input / output function interrupt address part for storing an address where the standard input / output function is described, and standard input / output function information. The standard input / output function identification number is assigned in advance as, for example, 1: printf 2: fputc 3: fgetc 4: fprintf 5: fscanf, and any one of these is stored in this part. . The standard input / output-related interrupt address is, for example, the function. If “printf” is at address 200h, this portion will be 200h, and if the program tries to execute the processing at this address, an interrupt will occur and “printf”
An instruction is issued to perform the processing of "f". Further, the function information part contains information specific to the built-in function, and this field differs depending on each function. Since the structure of this data is enormous, "print The case where f "is used will be described as an example.

今C言語で“print f"の書式は次のように表される。 Now, the format of "print f" is expressed as follows in C language.

print f(format,arg1,arg2,…arg n) ここでarg1…arg nは表示したいデータであり、そのデ
ータ構成は第10図に示すようになっている。
print f (format, arg1, arg2,... argn) where arg1... argn is data to be displayed, and the data configuration is as shown in FIG.

同図中は文字列でformatの内容が入る。即ち、どう
いう形で表示したらよいかの指示文を入れるものであ
る。例えばprint f(“AB=%d",Var)としておくとVar
の変数の値を10進で表示せよという指示となり今Varの
値が12であればCRT上にはAB=12と表示される。
In the figure, the content of format is entered as a character string. That is, an instruction sentence indicating what form should be displayed is inserted. For example, if you set print f (“AB =% d”, Var), Var
Indicates that the value of this variable is to be displayed in decimal, and if the value of Var is now 12, AB = 12 is displayed on the CRT.

次にパラメーター−12−2〜〜nには前記した
シンボル情報で定義したシンボル定義番号を入れる。こ
れはそれぞれarg1,arg2,…arg nに対応する。シンボル
定義番号が判ればその値が格納されている実際のアドレ
スがテーブルを参照することで判る。つまり第8図にお
けるラベル16−1のsym−1−(3)の1、或いはラベ
ル16−3のsym n−(3)のNがシンボル定義番号であ
り開発マシン又はエミュレータのマイクロプロセッサ上
のメモリに作った該シンボルテーブルを参照すればその
値は格納されている実アドレスが判る。
Then the parameter -1 2 -2 add symbol definition number defined in the symbol information described above. This corresponds to arg1, arg2, ... argn, respectively. If the symbol definition number is known, the actual address where the value is stored can be found by referring to the table. That is, 1 of the symbol 1- (3) of the label 16-1 or N of the symbol n- (3) of the label 16-3 in FIG. 8 is a symbol definition number, and is a memory on the microprocessor of the development machine or the emulator. By referring to the symbol table created in (1), the stored value can be determined from the stored real address.

このレコードをエミュレータがロードすると第11図に
示すような標準入出力割り込みテーブル17が開発マシン
のマイクロプロセッサのメモリ上もしくはエミュレータ
のRAM上にロードする毎に1回作成される。
When this record is loaded by the emulator, a standard input / output interrupt table 17 as shown in FIG. 11 is created once each time it is loaded on the memory of the microprocessor of the development machine or on the RAM of the emulator.

このテーブルは第11図のとおり,標準入出力割り込み
アドレス、標準入出力関数識別番号及び関数情報格
納アドレスから構成されている。
As shown in FIG. 11, this table includes a standard input / output interrupt address, a standard input / output function identification number, and a function information storage address.

該標準入出力割り込みアドレスは、例えば前述のデ
ータレコードの2番目に当たるアドレス200hに相当する
もので、つまりプログラムのどこに来たら標準入出力を
割り込ませ実行させるかを示す。又標準入出力関数識別
番号としては、例えば“print f"であれば1がここに
入る。更に関数情報格納アドレスには、前記の第9図
に示す関数情報が入ることになるが、これを全部格納す
ることは繁雑であるのでこの情報を別のテーブルに作
っておきそのアドレスのみをに格納するようにしても
よい。尚かかる標準入出力割り込みテーブル17は開発マ
シンのマイクロプロセッサ(所謂パソコン)上に設けて
もよいがエミュレータにメモリを増設しておいてそのテ
ーブルを設けることによって処理スピードを上げること
が出来る。
The standard input / output interrupt address corresponds to, for example, the address 200h corresponding to the second data record, that is, indicates where in the program the standard input / output is to be interrupted and executed. Also, as the standard input / output function identification number, for example, 1 is entered in the case of "print f". Further, the function information storage address contains the function information shown in FIG. 9 described above. However, since it is complicated to store all the function information, this information is created in another table, and only the address is stored. It may be stored. The standard input / output interrupt table 17 may be provided on the microprocessor (so-called personal computer) of the development machine. However, the processing speed can be increased by adding a memory to the emulator and providing the table.

この標準入出力割り込みテーブル17の標準入出力割り
込みアドレスがいくつか出来るが、これ等全てをソフト
ウェアブレークポイントと考え、1命令の実行毎にコン
パレート即ち、該ブレークポイントと現行アドレスとが
一致するかどうかを調べ、一致した場合にはそれぞれの
標準入出力処理の実行をエミュレータが開発マシンのホ
ストコンピュータ(パソコン)に指示する。その処理が
終了した場合にはその制御を本来のプログラムに戻すの
である。従来このようなプログラムの評価にはリアルタ
イムで実行しマイクロプロセッサのスピードをいかに落
とさないで調べて行くかが重要な問題となるためハード
ウェアブレークポイントを通常設けハードウェアでプロ
グラムを比較していくがプログラムのスピードを落とさ
ないためハードウェアブレークポイントはせいぜい4つ
くらいしか設けられない。一方ソフトウェアブレークポ
イントによりプログラムを調べる方法では1命令毎にあ
るかどうかを調べるためエミュレータのスピードが落ち
るのでリアルタイム処理には適していない。然しながら
本発明においては標準入出力関数を利用して処理するこ
とは画面に表示するものであってその間プログラムの実
行をストップさせるものであるからリアルタイム処理の
問題はなくなり、論理チェックだけであるためソフトウ
ェアブレークポイントを援用しえるのである。
There are several standard input / output interrupt addresses in the standard input / output interrupt table 17, all of which are considered software breakpoints, and each execution of one instruction is compared, that is, whether the breakpoint matches the current address. The emulator instructs the host computer (personal computer) of the development machine to execute the standard input / output processing if they match. When the processing is completed, the control is returned to the original program. Conventionally, it is important to evaluate such a program in real time and check it without slowing down the microprocessor speed.Therefore, hardware breakpoints are usually provided and programs are compared by hardware. At most four hardware breakpoints are provided to keep the program from slowing down. On the other hand, the method of examining a program by a software breakpoint is not suitable for real-time processing because the speed of the emulator is reduced because it is examined for each instruction. However, in the present invention, processing using the standard input / output function is to display on the screen and to stop the execution of the program during that time, so that the problem of real-time processing is eliminated, and software is only used for logic check. You can use breakpoints.

そこで、開発マシンのマイクロプロセッサ又はエミュ
レータ上のコンパレータではソフトウェアのブレークポ
イントとしての割り込みアドレスと現行アドレスとを全
て比較し、割り込みアドレスと一致したらエミュレータ
がそれを認識し、どういう標準入出力割り込み関数を使
用するかを関数情報をみて決定しそれを開発マシンのマ
イクロプロセッサに指示する。又該マイクロプロセッサ
には予め用意された例えば標準入出力の処理のためのサ
ブルーチン群を用いていったんその処理結果をCRTに画
面表示する。
Therefore, the comparator on the microprocessor or emulator of the development machine compares the interrupt address as a software breakpoint with the current address, and if the interrupt address matches, the emulator recognizes it and what standard I / O interrupt function is used The function information is determined by referring to the function information, and is instructed to the microprocessor of the development machine. Also, for example, a subroutine group for standard input / output processing prepared in advance is used for the microprocessor, and the processing result is displayed on a CRT screen.

表示が終了したらエミュレータは本来の被開発装置の
システムの制御にもどって次のプログラムを実行する。
エミュレータは被開発装置のマイクロプロセッサのプロ
グラムをみているのでその時の実行されている処理のア
ドレスは確認出来るからそのアドレス情報を開発マシン
のマイクロプロセッサに伝達する。この通信時間はかな
りかかるので前記のように当該テーブルをエミュリェー
タに設けることが好ましい。このアドレスが標準入出力
割り込みテーブルの各フレームのアドレスと比較し全部
比較して一致しなければ次のステップに移るし又一致す
るのがあれば上記した処理を実行する。
When the display is completed, the emulator returns to the original control of the system of the developed device and executes the next program.
Since the emulator looks at the program of the microprocessor of the development target device, the address of the process being executed at that time can be confirmed, and the address information is transmitted to the microprocessor of the development machine. Since this communication time is considerably long, it is preferable to provide the table in the emulator as described above. This address is compared with the address of each frame in the standard input / output interrupt table. If all the addresses do not match, the process proceeds to the next step. If there is a match, the above processing is executed.

本発明においてはハードブレークポイントを必ずしも
設ける必要はないが、リアルタイム的な処理をする場合
には当然設ける必要がある。
In the present invention, it is not always necessary to provide a hard breakpoint, but it is necessary to provide a hard breakpoint for real-time processing.

〔発明の効果〕〔The invention's effect〕

以上説明したように、本発明によれば、エミュレータ
を用いたクロス開発環境においても、セルフ開発環境と
変わらない高級言語特有のデバッグが可能となり、スタ
ブと呼ばれるprintf文をソースプログラムの途中に多数
置くことによるデバッグ手法が使用可能となる。
As described above, according to the present invention, even in a cross development environment using an emulator, high-level language-specific debugging that is the same as in a self-development environment can be performed, and a large number of printf statements called stubs are placed in the middle of a source program. Debugging techniques can be used.

また、大型汎用のプログラミング環境に慣れた人間で
もマイコン制御用のプログラムに異和感なく入ることが
できる。
In addition, even a person who is accustomed to a large-scale general-purpose programming environment can enter a microcomputer control program without any discomfort.

【図面の簡単な説明】[Brief description of the drawings]

第1図は本発明に係るマイクロプロセッサのプログラム
開発システムの基本構成図である。 第2図は本発明に使用されるプログラムの例を示す図で
ある。 第3図は本発明に係るシステムの実行フローチャートで
ある。 第4図は本発明で使用されるオブジェクトファイルのデ
ーター構成を示す図である。 第5図は本発明で使用されるデータレコードの構成を示
す図である。 第6図はデータレコードがエミュレータのメモリにロー
ドされた場合のファイル状態を示す図である。 第7図は本発明で使用されるデバッグ情報レコードの構
成を示す図である。 第8図は本発明で使用されるシンボルテーブルの例を示
す図である。 第9図は本発明で使用される標準入出力レコードの構成
を示す図である。 第10図は第9図の標準入出力レコードのうちの関数情報
に関するフィールドの構成を示す図である。 第11図は標準入出力割り込みテーブルの例を示す図であ
る。 1……開発マシン、2……エミュレータ、 3……被開発装置 7……クロスコンパイラ 7′……クロスコンパイラが出力する絶対形式のオブジ
ェクトプログラムのレコード形式 8……開発マシンのメモリ 9,12……エミュレータのメモリ 10……標準入出力データシンボルテーブル 11……標準入出力割り込みテーブル 13……マイクロプロセッサ
FIG. 1 is a basic configuration diagram of a microprocessor program development system according to the present invention. FIG. 2 is a diagram showing an example of a program used in the present invention. FIG. 3 is an execution flowchart of the system according to the present invention. FIG. 4 is a diagram showing a data structure of an object file used in the present invention. FIG. 5 is a diagram showing the structure of a data record used in the present invention. FIG. 6 is a diagram showing a file state when a data record is loaded into the memory of the emulator. FIG. 7 is a diagram showing a configuration of a debug information record used in the present invention. FIG. 8 is a diagram showing an example of a symbol table used in the present invention. FIG. 9 is a diagram showing the structure of a standard input / output record used in the present invention. FIG. 10 is a diagram showing the structure of fields relating to function information in the standard input / output record of FIG. FIG. 11 is a diagram showing an example of a standard input / output interrupt table. 1 Development machine 2 Emulator 3 Developed device 7 Cross compiler 7 'Record format of object program in absolute format output by cross compiler 8 Memory of development machine 9, 12 ... Emulator memory 10 ... Standard input / output data symbol table 11 ... Standard input / output interrupt table 13 ... Microprocessor

───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 9/44,9/45 G06F 11/28 ──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int.Cl. 6 , DB name) G06F 9 / 44,9 / 45 G06F 11/28

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】少なくともオペレーティングシステムとエ
ミュレータを制御するシステムを内蔵し、被開発装置に
於けるマイクロプロセッサのプログラムの開発を実行す
る開発マシン、該開発マシンにより制御されるエミュレ
ータ及び該エミュレータに接続され、該エミュレータに
よりそのプログラムが制御されるマイクロプロセッサを
有する被開発装置とから構成され、且つ該開発マシンの
マイクロプロセッサと該被開発装置に於けるマイクロプ
ロセッサとが異なる機械語で動作するクロス開発環境下
での被開発装置におけるマイクロプロセッサのプログラ
ム開発システムにおいて、該開発マシンにロードされる
コンパイラが出力するオブジェクトファイル内に予め該
被開発装置のマイクロプロセッサ制御用情報及びプログ
ラム開発のためにのみ必要な標準入出力機能を実行させ
る標準入出力情報とを含ませておく手段、第オブジェク
トファイルが当該システムにロードされた時に該被開発
装置のマイクロプロセッサの制御情報をエミュレータの
メモリにストアしておく手段、該標準入出力機能を実行
するためサブルーチンを含む標準入出力情報を該開発マ
シンのメモリにストアする手段、及び該標準入出力情報
に関する標準入出力シンボルテーブルと標準入出力割り
込みテーブルとを該開発マシンのメモリが該エミュレー
タのメモリの何れかにストアする手段とをそれぞれ設け
るとともに、該被開発装置のマイクロプロセッサのプロ
グラムの実行情報と該標準入出力割り込みテーブルの情
報とを比較検出する手段を該エミュレータに設けてお
き、該エミュレータが該被開発装置のマイクロプロセッ
サのプログラムを制御し実行させるに際し1命令毎に当
該プログラムの実行情報をエミュレータにて読みとり、
該比較検出手段において当該実行情報と該割り込みテー
ブルの情報とを比較し、両者が一致した場合にはエミュ
レータは該被開発装置のマイクロプロセッサのプログラ
ムの実行停止を指示すると共に、当該標準入出力に関す
る関数情報を該標準入出力シンボルテーブルから選択し
て該開発マシンへ送り、該標準入出力関数情報に該当す
る標準入出力サブルーチンを該開発マシンに実行させる
ことを特徴とする被開発装置のマイクロプロセッサのプ
ログラム開発システム。
1. A development machine which incorporates at least an operating system and a system for controlling an emulator and executes development of a microprocessor program in a device under development, an emulator controlled by the development machine, and an emulator connected to the emulator. A cross-development environment comprising a development device having a microprocessor whose program is controlled by the emulator, wherein the microprocessor of the development machine and the microprocessor of the development device operate in different machine languages In a system for developing a program of a microprocessor in a device under development, the object file output by the compiler loaded on the development machine contains information for controlling the microprocessor of the device under development and program development in advance. Means for storing the standard input / output information for executing the required standard input / output function, storing the control information of the microprocessor of the developed device in the memory of the emulator when the object file is loaded into the system. Means for storing standard input / output information including a subroutine for executing the standard input / output function in a memory of the development machine; and a standard input / output symbol table and a standard input / output interrupt table for the standard input / output information. And a means for storing in the memory of the development machine in any of the memories of the emulator, and comparing and detecting execution information of a microprocessor program of the development target device and information of the standard input / output interrupt table. Means are provided in the emulator, and the emulator is Reads the execution information of the program at emulator 1 each instruction upon to perform controls Lee black processor program,
The comparison and detection means compares the execution information with the information in the interrupt table. If the two match, the emulator instructs to halt the execution of the program of the microprocessor of the device under development, A microprocessor for a device under development, wherein function information is selected from the standard input / output symbol table and sent to the development machine, and the standard input / output subroutine corresponding to the standard input / output function information is executed by the development machine. Program development system.
JP63299668A 1988-11-29 1988-11-29 Microprocessor program development system Expired - Fee Related JP2888242B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63299668A JP2888242B2 (en) 1988-11-29 1988-11-29 Microprocessor program development system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63299668A JP2888242B2 (en) 1988-11-29 1988-11-29 Microprocessor program development system

Publications (2)

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

Family

ID=17875529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63299668A Expired - Fee Related JP2888242B2 (en) 1988-11-29 1988-11-29 Microprocessor program development system

Country Status (1)

Country Link
JP (1) JP2888242B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX9200935A (en) * 1991-03-07 1993-03-01 Digital Equipment Corp SYSTEM AND METHOD FOR DETECTING CROSS-DOMAINED INSTRUCTION CALLS IN A COMPUTER SYSTEM
JP4009517B2 (en) * 2002-10-18 2007-11-14 株式会社アドバンテスト Program development support apparatus and compiling method
JP2006350676A (en) * 2005-06-16 2006-12-28 Hitachi Software Eng Co Ltd Program debugging method of built-in system
JP2007004516A (en) * 2005-06-24 2007-01-11 Hitachi Software Eng Co Ltd Program debugging method of built-in system
JP2011048625A (en) * 2009-08-27 2011-03-10 Oki Data Corp Simulator program and simulator apparatus

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 (en) 1990-06-05

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
EP0327195B1 (en) Processor simulation
JPH0689200A (en) Debug system and method
US6467082B1 (en) Methods and apparatus for simulating external linkage points and control transfers in source translation systems
JP2888242B2 (en) Microprocessor program development system
JP2886191B2 (en) Instruction analysis apparatus and method
JP2001034497A (en) Method for acquiring binary code of inverse assembler
US20020129336A1 (en) Automatic symbol table selection in a multi-cell environment
CN116089316B (en) Kernel driving data debugging method based on dynamic breakpoint
JP2659366B2 (en) Debugging method and device
JP3270729B2 (en) Extended instruction set simulator
Studio Getting Started Guide
JP2788353B2 (en) Task trace method
JP3085309B2 (en) Debug system
Goldberg et al. The PRIM System: An alternative architecture for emulator development and use
JPS5856051A (en) Address comparison system by access interruption
JPH0465729A (en) Symbolic debugger
Gladstone Comparing Microcomputer Development System Capabilities
JPS62214444A (en) Simulation method
JPS6113615B2 (en)
JPS61180342A (en) Step execution system for high level language
JP3398178B2 (en) Simulator
JPS5894041A (en) Debug backup device for high-class language
JP2540605B2 (en) Data flow computer execution detection method
JPS61163445A (en) Computer development support system

Legal Events

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