JPS6398045A - Simulation system - Google Patents

Simulation system

Info

Publication number
JPS6398045A
JPS6398045A JP61242907A JP24290786A JPS6398045A JP S6398045 A JPS6398045 A JP S6398045A JP 61242907 A JP61242907 A JP 61242907A JP 24290786 A JP24290786 A JP 24290786A JP S6398045 A JPS6398045 A JP S6398045A
Authority
JP
Japan
Prior art keywords
memory
simulation
simulator
module
address
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
JP61242907A
Other languages
Japanese (ja)
Inventor
Hideo Watanabe
英夫 渡辺
Nobuhiro Yasue
安江 伸浩
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61242907A priority Critical patent/JPS6398045A/en
Publication of JPS6398045A publication Critical patent/JPS6398045A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To omit a work after linkage, and to reduce the number of processes, by providing an object memory part and a control memory part in one to one, in a cross type simulator. CONSTITUTION:Plural sets of the object memory parts 12 corresponding to the control memory parts 13 in one to one, are provided. In this way, it is possible to perform simulation by the level of a high-level language, loading and coupling the plural modules of compiled object level individually, on the object memory part 12. Therefore, it is possible to execute the simulation by the simulator 5 immediately after compilation. Thus, the work after the linkage can be omitted, and the number of processes of test debugging can be reduced.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は計算機でのソフトウェアのシミュレーション方
式に係り、特に高級言語で作成したソフトウェアをコン
パイルプリンケージノロケータなどロードモジエール作
成までの手順が複雑な場合に好適なシミエレーシ諺ン方
式に関する。
[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to a software simulation method using a computer, and in particular, the present invention relates to a software simulation method using a computer. This article relates to a simieresi proverb system suitable for such cases.

〔従来の技術〕[Conventional technology]

従来、例えばマイクロプログラムを大型計算機上でテス
トクデパフグするようなりロス型シミエレータとしては
、コンパイラなどにより実機上でのメモリアドレスつま
り相対アドレスから絶対アドレスに割当て後の機械語を
入力としてシミエレーシ厘ンするものが良く知られてい
る。
Conventionally, loss-type simulators, such as testing and puffing microprograms on large-scale computers, have used machine language as input, which has been assigned from a memory address, that is, a relative address, to an absolute address on the actual machine using a compiler. well known.

即ち、次のような手順でシミニレ−シランが行われる。That is, the similation silane is performed according to the following procedure.

(1)コンパイル(アセンブル) プログラム単位に命令語やレジスタ使用などをオブジェ
クト・コードとして生成するが、メモリ・アドレスは仮
のアドレスとして割当てる。
(1) Compilation (Assembling) Instruction words and register usage are generated as object code for each program, but memory addresses are assigned as temporary addresses.

なおこれは解決済の名称についてで、別プログ−ラムに
ある名称(未解決の名称)は不明のままとなる。
Note that this applies to resolved names, and names in other programs (unresolved names) remain unknown.

(2)  リンケージ 個々のプログラムを集合し、未解決の名称について仮の
アドレスを割当てる。オブジェクトを統合する。
(2) Collect linkage individual programs and assign temporary addresses to unresolved names. Integrate objects.

(3)  ロケータ 統合されたオブジェクトの先頭絶対アドレスを割当てて
もらい(ロケータのパラメータ)、各アドレスを絶対ア
ドレスとして決定する。
(3) Have the first absolute address of the locator-integrated object assigned (locator parameter), and determine each address as an absolute address.

(4)  コード変換 ロードモジュールが16進数となるよう変換する。(4) Code conversion Convert the load module to hexadecimal.

(5)シミユレーシヨン ロードモジエールをシミユレーシヨン・メモリにロード
しておきオペレータによる開始コマンドなどによってプ
ログラムカウンタを決め、シミユレーシヨンしていく。
(5) Simulation Load The module is loaded into the simulation memory, the program counter is determined by a start command from the operator, and the simulation is started.

しかし、最近は高級言語による開発、マルチタスク処理
の増加などにより実機上の絶対アドレスを意識せず開発
することが多く、クロス型のテストノブバッグにおいて
も同様に絶対アドレスを意識せずテストノブバッグが行
えることが重要となる。
However, recently, due to the development using high-level languages and the increase in multitasking processing, development is often done without being aware of the absolute addresses on the actual machine, and in the same way, cross-type test knob bags are developed without being aware of the absolute addresses. It is important to be able to do this.

ここで、マルチタスク処理では、各タスク要求によりプ
ログラムのロード(メモリ配置)や制御移行などを行う
ため、各タスクプログラムはメモリ上のどこに割当てら
れても良いように作成されており、絶対アドレスを意識
していない。
In multitasking processing, each task request performs program loading (memory allocation) and control transfer, so each task program is created so that it can be allocated anywhere in memory, and absolute addresses cannot be assigned. I'm not conscious of it.

なお、本技術は例えば特開昭57−157357号公報
−特開昭56−90347号公報に記載される。
Note that this technique is described in, for example, Japanese Patent Application Laid-Open Nos. 57-157357 to 56-90347.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

上記従来技術は、アセンブラ言語や高級言語のPL/M
で書かれたプログラムをクロスジミニレージ璽ンするに
はアセンブル又はコンパイルによるオブジェクトコード
な出力後、リンケージノロケータ、コード変換などを行
う必要がある。このためバグ対策での作業手順が多く工
数を要する、またデバッグ時コンパイルリストが相対ア
ドレス出力なのに対してシミエレーシ■ン時は絶対アド
レスであり、ロケータリストなどによる人手変換するケ
ースが多く工数を要するなどの問題がある。
The above conventional technology is based on PL/M of assembler language and high-level language.
To create a cross-minimized program written in , it is necessary to assemble or compile it to output object code, then use a linkage locator, code conversion, etc. For this reason, there are many work steps required to counter bugs, and it takes a lot of man-hours.Also, while the compile list during debugging outputs relative addresses, during simulation it outputs absolute addresses, and there are many cases where manual conversion using locator lists etc. is required, which requires man-hours. There is a problem.

ここで、シミュレーシ■ンを絶対アドレスで行う理由は
、次の通りである。
The reason why the simulation is performed using absolute addresses is as follows.

即チ、ソース・レベルで行うには擬似コート化技術など
あるがその技術が未確立であり、不明部分も多い。また
、オブジェクト・レベルで、かつメモリ・アドレスが確
定していればマイコンH/W機能をプログラム化すれば
良(容易で、またロード・モジュール化は必ず行われる
。したがって、シミュレータそのものは絶対アドレスで
行うようにし、シミュレータを操作するコマンド群で絶
対アドレスを意識させないようにして、シミュレータを
開発するのが効率的である。
Although there are pseudo-coating techniques that can be used at the source level, these techniques have not yet been established and there are many unknowns. Also, if the memory address is determined at the object level, it is sufficient to program the microcomputer H/W function (it is easy, and load modularization is always performed. Therefore, the simulator itself uses absolute addresses). It is efficient to develop a simulator in such a way that absolute addresses are not considered in the commands that operate the simulator.

而して、本発明の目的はコンパイル後のリンケージなど
を不要とした相対アドレスでのシミュレーションにより
、バブ対策(ソース修正、確認)等を早急に行いマイコ
ンソフトのテストヌデバッグ工数を低減させるシミュレ
ーシ厘ン方式を提供することにある。
Therefore, the purpose of the present invention is to provide a simulation system that reduces the number of man-hours required for testing and debugging microcontroller software by quickly taking measures against bugs (source correction, confirmation), etc., using a simulation using relative addresses that does not require linkage after compilation. The goal is to provide a simple method.

〔問題点を解決するための手段〕[Means for solving problems]

上記目的は、クロス型シミエレータにおいて、操作者と
の入出力インタフェース及びマイコン機能の実現を制御
するシミュレータ部と、コンパイラが出力する相対アド
レスレベルの命令コードなどを格納するオブジェクトメ
モリ部と、オブジェクトメモリ部と1対1に対応したシ
ミエレーシ理ン制御用の制御メモリ部と、コンパイラが
出力する各種情報を解析しシンボル情報などを作成する
コンパイル情報解析部とから成り、オブジェクトメモリ
部と制御メモリ部を複数個持ち、個々にコンパイルした
オブジェクトコードレベルの複数モジュールをそれぞれ
のオブジェクトメモリ部にロードして結合しながら高級
言語レベルでシミユレーシヨンにより達成される。
The above purpose is to provide a cross-type simulator with a simulator section that controls the input/output interface with the operator and the realization of microcomputer functions, an object memory section that stores relative address level instruction codes output by the compiler, and an object memory section. It consists of a control memory section for simulation control, which has a one-to-one correspondence with the computer, and a compile information analysis section that analyzes various information output by the compiler and creates symbol information, etc., and has multiple object memory sections and control memory sections. This is achieved by simulation at a high-level language level by loading and combining a plurality of individually compiled object code level modules into respective object memory sections.

〔作用〕 クロス型シミエレータにおい【、オブジェクトメモリ部
と制御メモリ部を複数個持ち、個々にコンパイルしたオ
ブジェクトコードレベルの複数モジュールをそれぞれの
オブジェクトメモリ部にロー−ドして結合しながら高級
言語レベルでシミュレーションすることができるので、
コンパイル後に即゛座にシミエレーシ厘ンを実行するこ
とができる。
[Operation] A cross-type simulator has multiple object memory sections and control memory sections, and loads multiple modules at the object code level that have been compiled individually into each object memory section and combines them at the high-level language level. Since it is possible to simulate
Simulation can be executed immediately after compilation.

〔実施例〕〔Example〕

以下、本発明の一実施例を図面により詳細に説明する。 Hereinafter, one embodiment of the present invention will be described in detail with reference to the drawings.

なお、本実施例は高級言語のPL/Mによるプログラム
を前提として説明する。第1図はマイコンソフトを大型
計算機1でシミュレーションするための全体構成例を示
すブロック図である。
Note that this embodiment will be explained on the assumption that a program is written in the high-level language PL/M. FIG. 1 is a block diagram showing an example of the overall configuration for simulating microcomputer software on a large computer 1. As shown in FIG.

大型計算機1にあるオペレーティングシステム2下にコ
ンパイラ又はアセンブラ3.オブジェクト解析4.シミ
ュレータ5の各プログラムがあり、以下の手順で実行さ
れる。なおりロスシミニレ−タロはオブジェクト解析4
とシミュレータ5を含んだものである。
A compiler or assembler 3. under the operating system 2 in the large computer 1. Object analysis 4. There are various programs of the simulator 5, which are executed according to the following steps. Naori Rossimini Retalo is object analysis 4
and a simulator 5.

ステップ1:ソースプログラム7をコンパイラ/アセン
ブラ3によりオブジェクトファイル8を作成する。
Step 1: Create an object file 8 from the source program 7 using the compiler/assembler 3.

ステップ2:オブジェクトファイル8をオブジェクト解
析4にて、高級言語レベルでテストクデバツグするため
のシンボル情報などを加えたテストプログラムファイル
9を作成する。
Step 2: A test program file 9 is created by adding symbol information, etc. for test debugging at a high-level language level using the object file 8 using the object analysis 4.

ステップ3:テストプログラムファイル9とTSS端末
10又はテス°トファイル11からのコマンドを入力し
【シミ晶し−ジ震ンを行い、結果なTSS端末10ヤテ
ストファイル11へ出力する。
Step 3: Input the test program file 9 and commands from the TSS terminal 10 or test file 11 to perform stain crystallization and shaking, and output the results to the TSS terminal 10 or test file 11.

このテスト・ファイル11はシミエレータ操作コマンド
群(テスト開始、中断設定、参照など)やテスト入力及
び出力データの格納ファイルである。
This test file 11 is a storage file for a group of simulator operation commands (test start, interrupt setting, reference, etc.) and test input and output data.

シミニレーシ璽ンを行わない場合は、図示しないがコン
パイラ/アセンブラ3と同様のレベルでリンク、ロケー
タ、コード変換の各プログラムを経て作成される。
If no synchronization is performed, it is created through link, locator, and code conversion programs at the same level as the compiler/assembler 3, although not shown.

第2図はオブジェクト解析4の概略を示す。コンパイラ
3は以下の情報をオブジェクトファイル8へ出力する。
FIG. 2 shows an outline of object analysis 4. The compiler 3 outputs the following information to the object file 8.

(イ) ソース・リスト:プログラマがコーディングし
たソースプログラム7に文番号、構造上のネストレペル
などを付加したリスト。
(b) Source list: A list in which statement numbers, structural nesting labels, etc. are added to the source program 7 coded by the programmer.

(ロ) ソース展開リスト;最適化を行った後の文番号
(ソース)対応にアセンブラ言語で展開されたリストと
そのアセンブリ言語を相対アドレス割当てで機械語コー
ドに変換した命令コードがある。なお相対アドレスの割
当ては命令コード部、定数部、変数部と分けられ、それ
ぞれの先頭から行われる。
(b) Source expansion list: There is a list expanded in assembler language corresponding to the statement number (source) after optimization, and an instruction code converted from the assembly language into machine language code using relative address assignment. Note that the relative address assignment is divided into the instruction code part, constant part, and variable part, and is performed from the beginning of each part.

(ハ) クロスリファレンスリスト;ソースプログラム
7で使用しているすべての手続き名、変数名。
(c) Cross-reference list: All procedure names and variable names used in source program 7.

ラベル名のシンボル情報一覧と、各シンボル情報対応に
相対アドレス、型(バイト、ワード。
List of symbol information for label name, relative address, type (byte, word) for each symbol information.

配列など)、属性(EXTERNALなど)、参照・更
新しイしくふ文審尋うして4#麿クーζ゛輔、Y0都、
置数?1FIllO賃域愛などがあ金@これらオブジェ
クトファイル8の情報よりオブジェクト解析4は次の各
レコードをテストプログラムファイル9に作成する。
Arrays, etc.), attributes (EXTERNAL, etc.), reference/update functions, etc.
Placement number? 1FIllO Renai Ai et al.@From the information in these object files 8, the object analysis 4 creates the following records in the test program file 9.

(イ)オブジェクト;相対アドレスで割当てられた機械
語の命令コードと定数コードをセットする。
(b) Object: Sets machine language instruction code and constant code assigned by relative address.

(ロ)モジエール;コンパイル単位のプログラムをモジ
ュールと称し、モジエールを構成している手続きに関す
る情報レコード。モジュール名。
(b)Mosier: A compilation unit program is called a module, and an information record regarding the procedures that make up the module. Module name.

命令コード部・定数部・変数部の相対開始・終了アドレ
ス、モジエール中の手続き数、以下に示す各レコードへ
のエントリなどをセットする。
Set the relative start and end addresses of the instruction code section, constant section, and variable section, the number of procedures in the module, and the entries for each record shown below.

(ハ)手続き;個々の手続きに関する情報レコードを手
続き名、相対開始・終了アドレス、型、属性などをセッ
トする。
(c) Procedure: Set information records regarding individual procedures including procedure name, relative start/end address, type, attributes, etc.

に)変数名;個々の変数に関する情報レコード。) Variable names; information records about individual variables.

変数名、相対開始アドレス、型、属性、構造体情報など
をセットする。
Set variable names, relative starting addresses, types, attributes, structure information, etc.

(ホ)文番号;文番号と、文番号に対応したアセンブラ
71aEmWNtlU”JHJnmljJ7 i−1/
fi ?1−1ff 71”す金◎ (へ)未解決外部参照名;該モジュールの外部で定義さ
れている個々のシンボルに関する情報レコード。即ち、
コンパイル時、相対アドレスを割当てできなかった外部
変数名、外部手続き名、これらシンボルを参照している
命令コードの相対アドレスなどをセットする。
(E) Statement number; statement number and assembler 71aEmWNtlU"JHJnmljJ7 i-1/
Fi? 1-1ff 71” Sumane◎ (to) Unresolved external reference name; information record regarding each symbol defined outside the module. That is,
Sets external variable names, external procedure names, and relative addresses of instruction codes that refer to these symbols to which relative addresses could not be assigned during compilation.

以上の情報に基づいてシミjLレータ5は大型計算機1
上に第3図で示すようにロードする。
Based on the above information, SimijLator 5 is large computer 1.
Load as shown in Figure 3 above.

第3図において各部は以下の機能を持つ。In FIG. 3, each part has the following functions.

ff、シミュレータ5はシミュレーション全体の制御を
行うが、特にマイコンの命令語を含む機能全体の制御を
行う。オブジェクトメモリ12はシミュレーシ叢ンする
モジュールの数に対応して複数個あり、オブジェクトレ
コードの情報をロードする。制御メモリ13はオブジェ
クトメモリ12と1対1に対応したシミュレーシ冒ン制
御用情報メモリで、トレース、中断、オブジェクトメモ
リ12間のプログラム移行時の制御などに使用する。制
御テーブルメモリ14はオブジェクト解析4が出力の各
レコード情報をモジュール対応にテーブルとして展開す
る。各テーブル間の接続はテーブル展開時に先頭アドレ
スをセットして行う。共通メモリ15はマイコン用共通
メモリで、割込みベクタテーブル、スタック用メモリな
どでシミュレータ5が使用する。なお、モジエールが複
数ありても本メモリは1個である。プログラムテーブル
16はシミュレーションする各モジュールのディレクト
リ的テーブルで、モジュールのロード時に生成する。こ
こで、制御メモリ13は、オブジェクト・メモリと1対
1に対応したメモリで、シミュレータ専用として使用さ
れる。例えば、プログラムがあるステップXまでランし
たら中断させたい場合、シミュレータに“中断X′とコ
マンドを与える。Xは文番号である。シミュレータは文
番号テーブルよりXのアドレスを検出し対応する制御メ
モリの中断制御ビットを 1 とする。その後、プログ
ラムが開始されるとシミュレータは必ず制御メモリ内容
な参1〃 照し、中断制御ビットが 1 なら中断する。したがっ
て、制御メモリ13には例のような文番号による中断制
御の他に、メモリ参照や更新時の中断制御、エリア初期
化の未/済なとの制御ビットをもつO また、共通メモリ15は、マイコンがもつ共有メモリで
、H/W機能としてリザーブされているメモリである。
ff, the simulator 5 controls the entire simulation, and in particular controls the entire function including the command words of the microcomputer. There are a plurality of object memories 12 corresponding to the number of modules to be simulated, and object record information is loaded therein. The control memory 13 is a simulation control information memory that has a one-to-one correspondence with the object memory 12, and is used for tracing, interruption, control during program migration between the object memories 12, and the like. The control table memory 14 develops each record information output by the object analysis 4 as a table corresponding to each module. Connections between each table are made by setting the start address during table expansion. The common memory 15 is a common memory for the microcomputer, and is used by the simulator 5 as interrupt vector table, stack memory, etc. Note that even if there are multiple modules, there is only one main memory. The program table 16 is a directory-like table for each module to be simulated, and is generated when a module is loaded. Here, the control memory 13 is a memory that has a one-to-one correspondence with the object memory, and is used exclusively for the simulator. For example, if you want to interrupt a program after it has run up to a certain step The interrupt control bit is set to 1. After that, when the program is started, the simulator always refers to the contents of the control memory 1 and interrupts if the interrupt control bit is 1. Therefore, the control memory 13 contains a statement like the one in the example. In addition to interrupt control by number, it also has a control bit for interrupting memory references and updates, and for indicating whether or not area initialization has been completed. This is memory reserved as

例えば、0〜256(1o)番地の割込みベクタ・テー
ブル(H/W機能用)と、システム共通のスタック・メ
モリである。これらは複数プログラムを統合してもシス
テムとして1個であり、複数には分けられない。なお、
割込みベクタ・テーブルは0番地より割込みレベル(0
〜63)1o対応の処理分岐先アドレスを格納するエリ
アであり、スタック・メモリは割込み時やCALL命令
時の戻りアドレスなどを格納するメモリである。したが
って、ロートシたモジュール数、各モジュール名、各モ
ジネールテーブルのエントリアドレス、各モジュールを
ロードしたオブジェクトメモリ12上の命令コード部・
定数部・変数部に分けたアドレス、共通メモリ15.制
御メモリ13のアドレスなどをセットする。
For example, an interrupt vector table (for H/W functions) with addresses 0 to 256 (1o) and a stack memory common to the system. Even if multiple programs are integrated, these systems remain one system and cannot be divided into multiple systems. In addition,
The interrupt vector table starts from address 0 and starts at the interrupt level (0
~63) This is an area for storing the processing branch destination address corresponding to 1o, and the stack memory is a memory for storing the return address at the time of an interrupt or a CALL instruction. Therefore, the number of loaded modules, the name of each module, the entry address of each module table, the instruction code section and
Addresses divided into constant part and variable part, common memory 15. Set the address of the control memory 13, etc.

次に第4図、第5図でシミュレーションの動作例を説明
する。
Next, an example of simulation operation will be explained with reference to FIGS. 4 and 5.

第4図はモジュールPXX17の手続き名AAでモジエ
ールPYY18で定義している外部変数名XYZを更新
している例で、第5図は第4図の例について各メモリ関
連を示したものである。
FIG. 4 shows an example in which external variable name XYZ defined in module PYY18 is updated with procedure name AA of module PXX17, and FIG. 5 shows each memory relationship in the example of FIG.

tf、シミュレータ5はロード済として手続き名AAよ
りシミュレーシ目ンを開始する場合を例にとって説明す
る。
tf, the simulator 5 is already loaded and the simulation is started from the procedure name AA.

オペレータはモジュールPXX17.I’YY18をロ
ードする(LOADコマンド)。シミュレータ5はテス
トプログラムファイル9より各レコード情報をリードし
第5図のように大型計算機1上にロードする。ロード後
は制御メモリ13のクリア、マイコン機能の初期化(プ
ログラムカウンタ、レジスタなど)などを行い次のオペ
レータ入力コマンド待ちとなる。
The operator uses module PXX17. Load I'YY18 (LOAD command). The simulator 5 reads each record information from the test program file 9 and loads it onto the large computer 1 as shown in FIG. After loading, the control memory 13 is cleared, microcomputer functions are initialized (program counter, registers, etc.), and the process waits for the next operator input command.

次ニ、オペレータはモジュールPXX17の手続キ名人
Aをコールスルコマンドでシミュレーションを開始させ
る。
Next, the operator causes the procedure master A of module PXX17 to start the simulation with a call through command.

シミュレータ5は以下の処理を行うものとする。It is assumed that the simulator 5 performs the following processing.

(イ)モジュールPXX17.手続き名AAのアドレッ
シング ・プログラムテーブル16を参照しモジュールPXX1
7より定数部・命令コード部・変数部のロードアドレス
とモジニールテーブルのアドレスを得る。
(a) Module PXX17. Refer to addressing program table 16 of procedure name AA and select module PXX1.
7, obtain the load addresses of the constant part, instruction code part, and variable part and the address of the module table.

・モジュールテーブルより手続きテーブルをボインドし
、コマンド入力の手続き名AAを手続きテーブルより検
出する。手続きテーブルには手続き名AAの相対アドレ
スがある。したがって前述の(命令コード部ロードアド
レス)+(手続き名AAの相対アドレス)がオブジェク
トメモリ12を7ドレツシングする。なお、この手続き
名AAの相対アドレスがマイコン上のプログラムカウン
タとなる。
- Bind the procedure table from the module table and detect the procedure name AA of the command input from the procedure table. The procedure table has a relative address of procedure name AA. Therefore, the above-mentioned (instruction code part load address) + (relative address of procedure name AA) dresses the object memory 12 seven times. Note that the relative address of this procedure name AA becomes the program counter on the microcomputer.

(口l  命令語のシミュレータIll/プログラムカ
ウンタが前述のように決定されるので、以後シミュレー
タ5は命令コードのフェッチ→デコード→実行→プログ
ラムカウンタのアップを繰り返し実行してい(。
(Since the instruction word simulator Ill/program counter is determined as described above, the simulator 5 thereafter repeatedly executes instruction code fetch → decode → execution → increment of the program counter ().

次に外部参照に関する制御について、モジュールPXX
17の°XYZ = 1234°の文を例に説明する6
゜(イ)外部参照名の抽出 マイコンでレジスタとメモリ間の移動命令をフェッチし
た場合、未解決外部参照テーブルを参照し、フェッチし
たプログラムカウンタと未解決外部参照名を更新又は参
照している命令コードの相対アドレスと比較し、未解決
外部参照名を得る。第4図の例ではXYZの変数名がモ
ジュールPXX17では外部参照名、かつ未解決となっ
ており未解決外部参照テーブルに登録されている。
Next, regarding control regarding external references, module PXX
Explain using the sentence 17°XYZ = 1234° as an example 6
(b) Extracting external reference names When a microcontroller fetches a move instruction between registers and memory, the instruction refers to the unresolved external reference table and updates or references the fetched program counter and unresolved external reference name. Compare with code relative address to get unresolved external reference name. In the example of FIG. 4, the variable name XYZ is an external reference name in module PXX17 and is unresolved, and is registered in the unresolved external reference table.

したがって変数名XYZは他そジェールに在るだろうこ
とを認識できる。
Therefore, it can be recognized that the variable name XYZ may exist elsewhere.

(ロ)外部参照名のアドレッシング 他モジュール、つまり第4図の例ではモジュールPYY
18であり、プログラムテーブル16→モジx−ルア”
 −フル→変数名テーブルとモジエールPYY18の各
テーブルを参照し変数名XYZの相対アドレスを得る。
(b) Addressing external reference names Other modules, that is, module PYY in the example in Figure 4
18, program table 16 → Moji x Lua”
-Full→Refer to the variable name table and each table of Mosier PYY18 to obtain the relative address of variable name XYZ.

なおアドレッシングは動作中のモジュールPXX17の
変数部ロードアドレスでなく、プログラムテーブル16
を参照時に一時的に抽出した(モジエールPYY18の
変数部ロードアドレス)+(変数名XYZの相対アドレ
ス)となる。
Note that the addressing is not the load address of the variable part of the module PXX17 in operation, but the address of the program table 16.
When referenced, the result is (variable part load address of Mosier PYY18) + (relative address of variable name XYZ).

(ハ)命令語のシミュレーシ曽ン 前述の変数部アドレスを利用し書き込みを行う。以後は
モジエールPXX17のシミュレーシ目ンを続行する。
(c) Simulation of instruction word Writing is performed using the variable part address mentioned above. After that, I will continue with the simulation of Mosier PXX17.

本実施例における動作例を説明したがモジーールPXX
17のC’AI、L命令でモジュールPYY18の手続
き名をコールするなどプログラム制御がオブジェクトメ
モリ12間を移行する場合は、参照テーブルがコールテ
ーブル−プログラムテーブル16→モジユールテーブル
→手続きテーブル→未解決外部参照テーブルとなる点と
、プログラム制御が変わるため各ロードアドレスがモジ
ュールPXX17からモジニールPYY18の定数部・
命令コード部・変数部のロードアドレスにチェンジされ
る点が異なる。
Although an example of operation in this embodiment was explained, the module PXX
When program control is transferred between object memories 12, such as by calling the procedure name of module PYY18 using the C'AI and L instructions of 17, the reference table is the call table - program table 16 -> module table -> procedure table -> unresolved. Since it becomes an external reference table and program control changes, each load address is changed from module PXX17 to the constant part of module PYY18.
The difference is that it is changed to the load address of the instruction code section/variable section.

なお、本実施例では大型計算機上でシミユレーシヨンを
実行する場合を説明したが、通常の計算機や 。
Although this embodiment describes the case where the simulation is executed on a large-scale computer, it can also be executed on a normal computer or the like.

ワークステーション、パソコン等のプロセッサ等を用い
てシミユレーシヨンする場合も同様に実行することがで
きる。
Simulations can be similarly executed using a processor such as a workstation or a personal computer.

本実施例によればオブジェクトメモリ12を複数115
1持ちコンパイル後の各モジュールをそれぞれにロード
し、制御テーブルメモリ14すどによりシミユレーシヨ
ンできることによってリンケージなどの作業を省略して
テスト1デバツグでき、最終的にテスト・デバッグ工数
を低減できる。
According to this embodiment, a plurality of object memories 12 115
Since each module after compiling can be loaded individually and simulation can be performed using the control table memory 14, it is possible to debug a test by omitting work such as linkage, and ultimately reduces the number of man-hours for testing and debugging.

また、エラー解析のときのコンパイルリストにおいて、
°メモリ配置上のアドレスがモジュールのアドレスと一
致するため対応がとりやすい。
Also, in the compile list when analyzing errors,
°The address on the memory layout matches the module address, so it is easy to deal with it.

〔発明の効果〕〔Effect of the invention〕

以上の説明から明らかなように、本発明によればコンパ
イル後のオブジェクトレベルで複数のプログラムを結合
してシミユレーシヨンすることができるので、リンケー
ジ以降の作業を省略でき、バグ修正から確認までのサイ
クルが速くなりテスト・デバッグ効率が向上するという
効果がある。
As is clear from the above explanation, according to the present invention, multiple programs can be combined and simulated at the object level after compilation, so work after linkage can be omitted, and the cycle from bug fixing to confirmation can be shortened. This has the effect of increasing speed and improving testing and debugging efficiency.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明のクロスジミニレージコンの全体構成を
示す図、第2図は第1図において高級言語レベルのシミ
ユレーシヨンを行うために必要ナオプジ工りト解析の概
略を説明するための図、第3図はシミュレーフ1フ時の
メモリ配置を主とした構成を説明するための図、第4図
はP L /M言語の例を示す図、第5図は動作説明を
するためのテープル関連を示す図である。 1・・・大型計算機、 3・・・コンパイラ/アセンブラ、 4・・・オブジェクト解析、 5・・・シミュレータ、 8・・・オブジェクトファイル、 9・・・テストプログラムファイル、 12・・・オブジェクトメモリ、 13・・・制御メモリ、   14・・・制御テーブル
メモリ、15・・・共有メモリ、16・・・プログラム
テーブルd第2月 第 3閉
FIG. 1 is a diagram showing the overall configuration of the cross-miniature radio controller of the present invention, and FIG. 2 is a diagram for explaining the outline of the naopji construction analysis required to perform high-level language level simulation in FIG. 1. , Fig. 3 is a diagram for explaining the configuration mainly including memory arrangement during the first simulation run, Fig. 4 is a diagram showing an example of the P L /M language, and Fig. 5 is a diagram for explaining the operation. FIG. 3 is a diagram showing table relationships. 1... Large computer, 3... Compiler/assembler, 4... Object analysis, 5... Simulator, 8... Object file, 9... Test program file, 12... Object memory, 13...Control memory, 14...Control table memory, 15...Shared memory, 16...Program table d 2nd month 3rd close

Claims (1)

【特許請求の範囲】[Claims] 1、計算機でのソフトウェアのシミュレーション方式に
おいて入出力インタフェース及びソフトウェアの実現を
制御するシミュレータ部と、コンパイラが出力する相対
アドレスレベルの命令コードなどを格納するオブジェク
トメモリ部と、前記オブジェクトメモリ部に対応したシ
ミュレーション制御用の制御メモリ部と、コンパイラが
出力する各種情報に応じた情報を作成するコンパイル情
報解析部とから構成され、少なくとも1個の前記オブジ
ェクトメモリ部と前記制御メモリ部を有し、個々にコン
パイルしたオブジェクトコードレベルの複数モジュール
を前記オブジェクトメモリ部の各々にロードして結合し
ながらシミュレーションすることを特徴としたシミュレ
ーション方式。
1. In a software simulation method using a computer, a simulator section that controls input/output interfaces and software realization, an object memory section that stores relative address level instruction codes output by the compiler, and a simulator section that corresponds to the object memory section. It is composed of a control memory section for simulation control, and a compile information analysis section that creates information according to various information output by the compiler, and has at least one object memory section and one control memory section, and has at least one object memory section and one control memory section. A simulation method characterized in that a plurality of compiled object code level modules are loaded into each of the object memory sections and simulated while being combined.
JP61242907A 1986-10-15 1986-10-15 Simulation system Pending JPS6398045A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61242907A JPS6398045A (en) 1986-10-15 1986-10-15 Simulation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61242907A JPS6398045A (en) 1986-10-15 1986-10-15 Simulation system

Publications (1)

Publication Number Publication Date
JPS6398045A true JPS6398045A (en) 1988-04-28

Family

ID=17095988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61242907A Pending JPS6398045A (en) 1986-10-15 1986-10-15 Simulation system

Country Status (1)

Country Link
JP (1) JPS6398045A (en)

Similar Documents

Publication Publication Date Title
JP2666847B2 (en) Heterogeneous language communication method
KR20050028465A (en) Mcu application program verification system providing source code level debugging using debugging information files in different versions and method thereof
US6086622A (en) Method and apparatus for converting an architecture of a program and method, and apparatus for debugging a program by using them
JPH0766342B2 (en) Program test equipment
JPS6398045A (en) Simulation system
Ditzel Reflections on the high-level language symbol computer system
JP2009515243A (en) Method for generating a simulation program executable on a host computer
US6934892B2 (en) Computing system construction method under execution environment to be dependent on OS
JPS6022373B2 (en) Program conversion mechanism for programmable control equipment
Gyllstrom et al. The universal compiling system
JP2827724B2 (en) Program debug processing method
GUIDE intJ
JPH0695890A (en) Name replacement system in compiler
Calderbank et al. A portable language for system development
JPH0371229A (en) Program controller
JPH0196735A (en) Link connection system for object module having symbolic information
JPH0695921A (en) Simulation method and program debugging system
JP2000081984A (en) Compiling processor and its method
JPS58169637A (en) Compile processing system
JPH0196741A (en) Common section system in debugger
JPH10289109A (en) Compiling control method, compiling device and recording medium
JPH05127945A (en) Program execution situation analysis system
JPH02245934A (en) Data processor
Chang et al. Design methodologies for simulation translators (with a case study)
JPS63223930A (en) Simulation system for program of exclusive processor