JP5353587B2 - Embedded program development apparatus and embedded program development method - Google Patents

Embedded program development apparatus and embedded program development method Download PDF

Info

Publication number
JP5353587B2
JP5353587B2 JP2009210668A JP2009210668A JP5353587B2 JP 5353587 B2 JP5353587 B2 JP 5353587B2 JP 2009210668 A JP2009210668 A JP 2009210668A JP 2009210668 A JP2009210668 A JP 2009210668A JP 5353587 B2 JP5353587 B2 JP 5353587B2
Authority
JP
Japan
Prior art keywords
program
assembler
embedded
cycles
source
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
JP2009210668A
Other languages
Japanese (ja)
Other versions
JP2011060109A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009210668A priority Critical patent/JP5353587B2/en
Publication of JP2011060109A publication Critical patent/JP2011060109A/en
Application granted granted Critical
Publication of JP5353587B2 publication Critical patent/JP5353587B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a built-in program development device which reduces a program size. <P>SOLUTION: The built-in program development device includes an assembler which translates a source program file written in an assembly language into a machine language of an object processor to generate an object file; and a linker which couples one or more object files to generate an execution format program. The assembler measures a cycle number from a head at a designated position in each source program, and the linker determines a conversion value of the cycle number from the head of the whole program with respect to the designated position in each source program. Furthermore, the assembler uses the conversion value of the cycle number from the head of the whole program to retranslate the source program file written in the assembly language into the machine language of the object processor. <P>COPYRIGHT: (C)2011,JPO&amp;INPIT

Description

本発明は、組み込み用プログラム開発装置、及び組み込み用プログラム開発方法に関する。   The present invention relates to an embedded program development apparatus and an embedded program development method.

コピー機等のマイコン(マイクロコンピュータ)への組み込み用プログラムは、プロセッサとその周辺装置との入出力を行うこと(入出力動作命令)を含んでいることが多い。そのような周辺装置との入出力を行う場合、組み込み用プログラムは、その周辺装置の動作状態を調べ、それ以前のプログラムの指示による動作が完了していることを確認してから、次の入出力を行うことが通常である。   A program for incorporation into a microcomputer (microcomputer) such as a copying machine often includes input / output (input / output operation instructions) between the processor and its peripheral devices. When performing input / output to / from such a peripheral device, the embedded program checks the operating state of the peripheral device and confirms that the previous operation according to the instructions of the program has been completed. It is usual to output.

このような、周辺装置の動作状態を調べるプログラム部分が非常に多い場合、全体のプログラムサイズの増加や、実行サイクル数の増大を招いてしまう。組み込み用プログラムは、プログラム容量が限定されており、許容される実行時間にも制限がある。つまり、組み込み用プログラムにおいては、それらの限定・制約を超えてしまうことは問題を生じることになる。   When there are a large number of program portions for checking the operation state of the peripheral device, the overall program size increases and the number of execution cycles increases. The embedded program has a limited program capacity and an allowable execution time. In other words, in an embedded program, exceeding these limitations and restrictions causes a problem.

ここで、周辺装置の実行時間が予め判明しているならば、その周辺装置が動作開始してから次の動作を開始するまでのプログラムの実行時間が、その周辺装置の実行時間より長ければ、次の動作を開始する際にその周辺装置の動作状態を調べることなく、次の動作の開始を周辺装置に指示することができる。しかしながら、このことを利用して組み込み用プログラムのサイズを削減したり実行サイクル数を低減させたりするような、組み込み用プログラム開発装置は、現在存在しない。   Here, if the execution time of the peripheral device is known in advance, if the execution time of the program from the start of the peripheral device to the start of the next operation is longer than the execution time of the peripheral device, When starting the next operation, the peripheral device can be instructed to start the next operation without checking the operation state of the peripheral device. However, there is currently no embedded program development apparatus that uses this fact to reduce the size of an embedded program or reduce the number of execution cycles.

なお、特許文献1には、アセンブル時にサイクル情報を埋め込んでオブジェクトファイルを生成するアセンブラが開示されている。特許文献1に開示されるアセンブラは、サイクル数情報を生成し、それを使用者に知らしめるに過ぎない。例えば、この情報に基づいて再度アセンブルを実行するというものではない。また、リンカがリンク処理と共にサイクル数情報を生成する、という技術も開示されていない。   Patent Document 1 discloses an assembler that generates an object file by embedding cycle information during assembly. The assembler disclosed in Patent Document 1 merely generates cycle number information and informs the user of it. For example, the assembly is not executed again based on this information. Further, there is no disclosure of a technique in which the linker generates cycle number information together with link processing.

本発明は、アセンブラ及びリンカが計測する実行サイクル数に基づいて、再度のアセンブル時にプログラムのサイズを削減し、実行サイクル数を低減化するような組み込み用プログラム開発装置を提供することを目的とする。   An object of the present invention is to provide a built-in program development apparatus that reduces the size of a program at the time of re-assembling and reduces the number of execution cycles based on the number of execution cycles measured by an assembler and a linker. .

本発明は、上記の目的を達成するために為されたものである。本発明に係る組み込み用プログラム開発装置は、
アセンブラとリンカとを記憶する組み込み用プログラム開発装置であって
上記アセンブラは、上記組み込み用プログラム開発装置に、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳させてオブジェクトファイルを生成させる際に、夫々のソースプログラム内の指定された位置における先頭からのサイクル数を計測させ
上記リンカは、上記組み込み用プログラム開発装置に、一つ以上のオブジェクトファイルを結合させて、実行形式プログラムを生成させる際に、夫々のソースプログラム内の指定された位置に関して、プログラム全体の先頭からのサイクル数の換算値を求めさせ、
更に、上記アセンブラは、上記組み込み用プログラム開発装置に、上記プログラム全体の先頭からのサイクル数の換算値が所定の値以上である場合は、当該場合では不必要となるプログラム部分を省い、再度、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳させる。
The present invention has been made to achieve the above object. An embedded program development device according to the present invention is:
An embedded program development device for storing an assembler and a linker ,
When the assembler causes the embedded program development device to translate the source program file written in assembly language into the machine language of the target processor and generate an object file , the specified position in each source program to measure the number of cycles from the beginning in,
When the linker develops an executable program by combining one or more object files with the embedded program development apparatus, the linker starts from the beginning of the entire program with respect to the designated position in each source program. Let the conversion value of the number of cycles be obtained ,
Furthermore, when the converted value of the number of cycles from the top of the entire program is greater than or equal to a predetermined value in the embedded program development device, the assembler omits a program part that is unnecessary in that case , again, Ru is translated into machine language of the target processor the source program files written in assembly language.

本発明に係るアセンブラは、
リンカを記憶する組み込み用プログラム開発装置が更に記憶するアセンブラであって
上記組み込み用プログラム開発装置に、
アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳させてオブジェクトファイルを生成させる際に、夫々のソースプログラム内の指定された位置における先頭からのサイクル数を計測させ
上記組み込み用プログラム開発装置が、上記リンカを実行することによって、一つ以上のオブジェクトファイルを結合して、実行形式プログラムを生成する際に、夫々のソースプログラム内の指定された位置に関して、プログラム全体の先頭からのサイクル数の換算値を求めた後において、更に、上記プログラム全体の先頭からのサイクル数の換算値が所定の値以上である場合は、当該場合では不必要となるプログラム部分を省いて、再度、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳させる。
The assembler according to the present invention is
An assembler further memorized by an embedded program development device for memorizing a linker ,
In the embedded program development device,
When by translating the source program files written in assembly language of the target processor into machine language to generate an object file, to measure the number of cycles from the beginning of the specified position in the respective source program,
When the embedded program development apparatus executes the linker to combine one or more object files to generate an executable program, the entire program is related to a designated position in each source program. After obtaining the converted value of the cycle number from the beginning of the program , if the converted value of the cycle number from the beginning of the entire program is greater than or equal to a predetermined value, the unnecessary program part in that case is omitted. stomach, again, Ru to translate the source program files written in assembly language into machine language of the target processor.

本発明に係る組み込み用プログラム開発方法は、
アセンブラとリンカとを記憶する組み込み用プログラム開発装置における組み込み用プログラム開発方法であって
上記組み込み用プログラム開発装置は、
上記アセンブラを実行することによって、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳してオブジェクトファイルを生成する際に、夫々のソースプログラム内の指定された位置における先頭からのサイクル数を計測し、
上記リンカを実行することによって、一つ以上のオブジェクトファイルを結合して実行形式プログラムを生成する際に、夫々のソースプログラム内の指定された位置に関して、プログラム全体の先頭からのサイクル数の換算値を求め
更に、上記アセンブラを実行することによって、上記プログラム全体の先頭からのサイクル数の換算値が所定の値以上である場合は、当該場合では不必要となるプログラム部分を省いて、再度、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳する。
An embedded program development method according to the present invention includes:
An embedded program development method in an embedded program development device for storing an assembler and a linker ,
The embedded program development device
By executing the above assembler, when an object file is generated by translating a source program file written in assembly language into the machine language of the target processor, the source program file from the beginning at a specified position in each source program is generated. Measure the number of cycles,
When executing the above linker to combine one or more object files to generate an executable program, the conversion value of the number of cycles from the beginning of the entire program for the specified position in each source program the request,
Further, when the converted value of the number of cycles from the top of the entire program is greater than or equal to a predetermined value by executing the assembler , the unnecessary program portion is omitted in that case, and again the assembly language The source program file written in is translated into the machine language of the target processor.

本発明を利用することにより、プログラムのある地点から別の地点までのサイクル数を、リンカにより複数のソースファイルに跨る場合をも計測しそのサイクル数を基に再度アセンブルを行い、不必要な周辺装置の状態待ちの部分を削除できるから、プログラムサイズや実行サイクル数の低減化を行うことができる。   By using the present invention, the number of cycles from one point of the program to another point is measured even when it spans multiple source files with the linker, and the assembly is performed again based on the number of cycles. Since the part of the apparatus waiting for the state can be deleted, the program size and the number of execution cycles can be reduced.

本発明の好適な実施形態に係る組み込み用プログラム開発装置における組み込み用プログラム開発の処理の流れを示す図である。It is a figure which shows the flow of a processing of the program development for an installation in the program development apparatus for an installation which concerns on suitable embodiment of this invention. アセンブラプログラムの記述例である。It is a description example of an assembler program. 本発明の好適な実施形態に係る組み込み用プログラム開発装置におけるアセンブラの再度の翻訳処理のフローチャートである。It is a flowchart of the assembler's re-translation processing in the program development device for embedding according to a preferred embodiment of the present invention. ソースファイルの例であり、サイクル数用ラベルがソースファイルを跨って用いられている例である。This is an example of a source file, in which a cycle number label is used across source files. ソースファイルの例であり、サイクル数用ラベルがソースファイルを跨って用いられている例である。This is an example of a source file, in which a cycle number label is used across source files. ソースファイルの例であり、サイクル数用ラベルがソースファイルを跨って用いられている例である。This is an example of a source file, in which a cycle number label is used across source files. 図4乃至図6のプログラムにおけるサイクル情報テーブルの構成例である。7 is a configuration example of a cycle information table in the programs of FIGS. 4 to 6. 組み込み用プログラムを開発するときの一般的な処理の流れを示す図である。It is a figure which shows the flow of a general process when developing the program for embedding.

以下、図面を参照して、本発明に係る好適な実施形態を説明する。   Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.

[好適な実施形態]
図8は、組み込み用プログラムを開発するときの一般的な処理の流れを示す図である。ホストコンピュータ上で作成されたソースファイル群Sは、それぞれアセンブラAにより翻訳されて、オブジェクトファイル群Bが作成される。オブジェクトファイル群Bは、リンカLにより結合されて、実行形式プログラムEが生成される。これらの処理は、パーソナルコンピュータやワークステーション等の、ホストコンピュータ上で実行される。
[Preferred embodiment]
FIG. 8 is a diagram showing a general processing flow when an embedded program is developed. The source file group S created on the host computer is translated by the assembler A, and the object file group B is created. The object file group B is combined by the linker L to generate an executable program E. These processes are executed on a host computer such as a personal computer or a workstation.

次に、図1は、本発明の好適な実施形態に係る組み込み用プログラム開発装置における組み込み用プログラム開発の処理の流れを示す図である。図示していないが、これらの処理もホストコンピュータ上で実行される。   Next, FIG. 1 is a diagram showing the flow of processing for developing an embedded program in the embedded program development apparatus according to the preferred embodiment of the present invention. Although not shown, these processes are also executed on the host computer.

ソースファイルを作成する時、プログラム先頭からの実行サイクル数を求めようとする位置に、例えば、図2のプログラムに示すように、シンボル名としてのラベルの付加を指定する。ここでは、“CYCLE1”及び“CYCLE2”が、シンボル名としてのラベルに該当する。更に、そのシンボル名を使って、実行サイクル数を条件とする条件アセンブル用の擬似命令(ifcycle命令)により、周辺装置の状態待ちのプログラム部分のアセンブル条件としておく。   When creating a source file, for example, as shown in the program of FIG. 2, the addition of a label as a symbol name is designated at a position where the number of execution cycles from the beginning of the program is to be obtained. Here, “CYCLE1” and “CYCLE2” correspond to labels as symbol names. Further, using the symbol name, the assembly condition of the program portion waiting for the state of the peripheral device is set by a conditional assembly pseudo-instruction (ifcycle instruction) with the number of execution cycles as a condition.

このとき、使用するシンボルが同じソースファイル内に存在しているかどうかは限定されない。外部参照シンボルでもよい。このような指定が行われたソースファイル群S1は、図1に示すように、それぞれアセンブラA1により翻訳されて、オブジェクトファイル群B1が作成される。このとき、アセンブラA1は、通常の翻訳処理を行うと共に、各シンボル位置のそのソースファイルにおけるプログラム先頭位置からのサイクル数を計測して、その情報を生成するオブジェクトファイル群B1に埋め込む。   At this time, whether or not the symbol to be used exists in the same source file is not limited. It may be an external reference symbol. As shown in FIG. 1, the source file group S1 for which such designation is performed is translated by the assembler A1 to create an object file group B1. At this time, the assembler A1 performs normal translation processing, measures the number of cycles from the program head position in the source file at each symbol position, and embeds it in the object file group B1 that generates the information.

また、最初(1回目)のアセンブルのときは、“ifcycle”擬似命令で示されるサイクル数による条件アセンブル部分の条件判定(及びライン削除)を実施しない。つまり、図2に示すプログラムでは、
“ifcycle (CYCLE2−CYCLE1)<PERI1CYCLE”
の条件判定を実施しない。これに伴い(後で説明する)“ifcycle”から“endif”までの削除も行わない。
Further, in the first (first) assembly, the condition determination (and line deletion) of the conditional assembly part is not performed based on the number of cycles indicated by the “ifcycle” pseudo instruction. That is, in the program shown in FIG.
“Ifcycle (CYCLE2-CYCLE1) <PERI1CYCLE”
The condition judgment of is not performed. Accordingly, deletion from “ifcycle” to “endif” (described later) is not performed.

この条件アセンブル部分の条件判定を(ホストコンピュータが)実施するか否かの判断は、ソースファイルS1の作成時期と、後述するサイクル情報テーブルT1の生成時期との新旧を比較することにより、為されることになる。すなわち、サイクル情報テーブルT1の作成時期がソースファイルS1の作成時期より古ければ、実行サイクル数計測が未完であると判断されるべきであるから、サイクル数による条件判定は実施されない。逆に新しければ、既にサイクル数が計測されたものとみなし得るから、条件判定は実施される。   The determination as to whether or not (the host computer) performs the condition determination of the condition assembly part is made by comparing the generation time of the source file S1 and the generation time of the cycle information table T1 described later. Will be. That is, if the creation time of the cycle information table T1 is older than the creation time of the source file S1, it should be determined that the execution cycle number measurement is incomplete, so the condition determination based on the cycle number is not performed. On the contrary, if it is new, it can be considered that the number of cycles has already been measured, so the condition determination is performed.

図1に戻って、リンカL1は、オブジェクトファイル群B1を結合して、実行形式プログラムP1を生成する。このとき、結合される順番により、オブジェクトファイル群B1内に存在するシンボルにおけるサイクル数を、プログラム全体の先頭からの換算値に置き換えて、サイクル情報テーブルT1に生成する(図7参照)。このサイクル情報テーブルファイルT1の生成は、従来のリンカで行われているプログラムアドレスの生成と、同様の手続きで行うことができる。   Returning to FIG. 1, the linker L1 combines the object file group B1 to generate an executable program P1. At this time, the number of cycles in the symbol existing in the object file group B1 is replaced with the converted value from the top of the entire program according to the order of combination, and the cycle information table T1 is generated (see FIG. 7). The generation of the cycle information table file T1 can be performed by the same procedure as the generation of the program address performed by the conventional linker.

アセンブラA1は、このサイクル情報テーブルT1に基づいて、再度、ソースファイル群S1を翻訳し、オブジェクトファイルB1を生成する。このとき、ifcycle擬似命令内で指示されているシンボル値のサイクル数の値によっては、対象とする周辺装置の状態待ちのプログラム部分を削除して翻訳する、ということが可能となる。   The assembler A1 translates the source file group S1 again based on the cycle information table T1, and generates an object file B1. At this time, depending on the value of the number of cycles of the symbol value specified in the ifcycle pseudo instruction, it is possible to delete and translate the program part waiting for the state of the target peripheral device.

アセンブラA1が再度翻訳を行った後には、リンカLが、削減されたプログラムのオブジェクトファイル群B1を再度結合して、容量の低減された実行形式プログラムP1を生成する。   After the assembler A1 performs the translation again, the linker L again combines the object files B1 of the reduced programs to generate the executable program P1 with a reduced capacity.

図2は、アセンブラプログラムの記述例である。それぞれの記述の意味を、以下の表1に示す。

Figure 0005353587
アセンブラA1による、図2に示すプログラムの再度の翻訳において、計測されるCYCLE1からCYCLE2までのサイクル数の値が、PERI1CYCLEの値以上、即ち50以上であれば、(ifcycle命令とendif命令とに挟まれた)LOOP2部分で記述されている条件アセンブル文が偽となり、そこがアセンブルされない。また、このLOOP2部分は、対象とする周辺装置の状態待ち部分である。従って、不必要な、周辺装置の動作状態を調べるプログラム部分が省かれるので、プログラム容量や実行サイクル数を低減化できることになる。 FIG. 2 is a description example of an assembler program. The meaning of each description is shown in Table 1 below.
Figure 0005353587
In the retranslation of the program shown in FIG. 2 by the assembler A1, if the value of the number of cycles measured from CYCLE1 to CYCLE2 is equal to or greater than the value of PERI1CYCLE, that is, 50 or greater, it is sandwiched between (ifcycle instruction and endif instruction). The conditional assembly statement described in the LOOP2 part is false and is not assembled. The LOOP2 part is a state waiting part of the target peripheral device. Therefore, an unnecessary program portion for checking the operation state of the peripheral device is omitted, so that the program capacity and the number of execution cycles can be reduced.

図3は、本実施形態のアセンブラA1の再度の翻訳処理のフローチャートである。アセンブラA1はソースコードを読み(S02)、ifcycle疑似命令で無ければ(S06・No)、翻訳して(S08)次のソースコードを読む。なお、ここでの翻訳は、通常の翻訳だけでなく、他の疑似命令やラベル等の、ifcycle疑似命令以外の全ての記述の解析も含む。   FIG. 3 is a flowchart of re-translation processing of the assembler A1 according to the present embodiment. The assembler A1 reads the source code (S02), and if it is not an ifcycle pseudo-instruction (S06, No), translates it (S08) and reads the next source code. The translation here includes not only normal translation but also analysis of all descriptions other than ifcycle pseudo-instructions such as other pseudo-instructions and labels.

アセンブラA1が読んだソースコードがifcycle疑似命令であれば(S06・Yes)、ifcycle命令に含まれるサイクル数の実際の値をサイクル情報テーブルから取得し(S10)、ifcycle疑似命令が真か偽かを確認する(S12)。偽であれば(S12・No)、その後のendifまでのソースコードは翻訳しないということであるからそれらソースコードを読み飛ばして(S14)次のソースコードを読む。真であれば(S12・Yes)、その直後のソースコードも翻訳するということであるから、直ぐに次のソースコードを読む。ソースコードを読み終われば(S04・Yes)終了する(S16)。   If the source code read by the assembler A1 is an ifcycle pseudo instruction (S06 / Yes), the actual value of the number of cycles included in the ifcycle instruction is acquired from the cycle information table (S10), and the ifcycle pseudo instruction is true or false. Is confirmed (S12). If it is false (No at S12), it means that the source code up to the subsequent endif is not translated, so those source codes are skipped (S14) and the next source code is read. If true (Yes in S12), the source code immediately after that is also translated, and the next source code is read immediately. When reading of the source code is finished (S04, Yes), the process ends (S16).

次に、図4、図5、図6は、3つのソースファイルを示しており、サイクル数用ラベルがファイルを跨って用いられている例である。ここで、source1とsource2とsource3は、その順番でリンカにより結合されるものとする。図4乃至図6に示すプログラムの記述の意味は、図2の場合と同様に上記の表1に示している。   Next, FIG. 4, FIG. 5, and FIG. 6 show three source files, and are examples in which the cycle number label is used across the files. Here, source1, source2, and source3 are connected by the linker in that order. The meanings of the program descriptions shown in FIGS. 4 to 6 are shown in Table 1 as in the case of FIG.

図4において、PERI1とPERI2との2つの周辺装置への動作の開始を行っている。夫々、動作を開始する位置に“CYCLE1”、“CYCLE2”というラベルを付与している。図5及び図6は、それぞれ図4で開始した位置から、同じ周辺装置への更なる動作の開始(の位置)までのサイクル数により、それぞれの周辺装置の動作終了を待つ部分(周辺装置の状態待ち部分)の条件アセンブルを記述したものである。いずれも、周辺装置の動作が終了していれば(即ち、CYCLE3−CYCLE1≧PERI1CYCLEであり、CYCLE4−CYCLE2≧PERI2CYCLEであるならば)、LOOP3、及びLOOP4で示されるループ部分の削除が可能となる。   In FIG. 4, the operation of two peripheral devices, PERI1 and PERI2, is started. The labels “CYCLE1” and “CYCLE2” are assigned to the positions where the operation is started. FIGS. 5 and 6 each show a portion (peripheral device wait) for the end of the operation of each peripheral device according to the number of cycles from the position started in FIG. 4 to the start (position) of further operation to the same peripheral device. It describes the condition assembly of the (waiting state). In any case, if the operation of the peripheral device is completed (that is, if CYCLE3-CYCLE1 ≧ PERI1CYCLE and CYCLE4-CYCLE2 ≧ PERI2CYCLE), the loop portions indicated by LOOP3 and LOOP4 can be deleted. .

ただし、サイクル数による条件アセンブル部分が複数ある場合、一つの条件アセンブル部分が削除されたことにより、プログラムの実行サイクル数が減少し、そのために、別の条件アセンブル部分の条件が変化してしまうことがある。この場合は、再度アセンブル、及びリンク処理を繰り返すことも可能である。   However, if there are multiple condition-assembled parts depending on the number of cycles, the number of program execution cycles decreases due to the deletion of one condition-assembled part, and as a result, the condition of another condition-assembled part changes. There is. In this case, the assembly and link processing can be repeated again.

なお、図7は、図4乃至図6のプログラムにおけるサイクル情報テーブルの構成例である。   FIG. 7 is a configuration example of the cycle information table in the programs of FIGS.

[その他の実施形態]
また、本発明は、C言語等の高級プログラミング言語のコンパイラと共に、利用することもできる。つまり、高級プログラミング言語のプログラムにおいてサイクル数を用いた条件コンパイルを記述して、本発明に係るアセンブラ及びリンカを用いれば、サイクル数計測を行い、計測したサイクル数に基づいて、不必要な、周辺装置の動作状態を調べるプログラム部分を省くことができる。
[Other Embodiments]
The present invention can also be used together with a compiler of a high-level programming language such as C language. In other words, by describing conditional compilation using the number of cycles in a high-level programming language program and using the assembler and linker according to the present invention, the number of cycles is measured, and based on the measured number of cycles, unnecessary peripheral It is possible to omit the program part for checking the operation state of the apparatus.

このようにして、プログラムのある地点から、別の地点までのサイクル数を、アセンブラのみならず、リンカにより複数のソースファイルに跨る場合をも計測し、そのサイクル数を基に再度アセンブルを行い、不必要な周辺装置の状態待ちの部分を削除して、プログラムサイズや、実行サイクル数の低減化を行うことが可能となる。   In this way, the number of cycles from one point of the program to another point is measured not only in the assembler but also across multiple source files by the linker, and the assembly is performed again based on the number of cycles. It is possible to reduce the program size and the number of execution cycles by deleting unnecessary wait states of peripheral devices.

本発明は、CPU/DSP等のマイコン組み込み機器ソフトウェア開発に用いることができる。   The present invention can be used for software development of microcomputer embedded device such as CPU / DSP.

S1・・・ソースファイル、A1・・・アセンブラ、B1・・・オブジェクトファイル、L1・・・リンカ、T1・・・サイクル情報テーブル、P1・・・実行形式プログラム。 S1 ... Source file, A1 ... Assembler, B1 ... Object file, L1 ... Linker, T1 ... Cycle information table, P1 ... Execution format program.

特開平11−39155号公報JP 11-39155 A

Claims (3)

アセンブラとリンカとを記憶する組み込み用プログラム開発装置であって
上記アセンブラは、上記組み込み用プログラム開発装置に、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳させてオブジェクトファイルを生成させる際に、夫々のソースプログラム内の指定された位置における先頭からのサイクル数を計測させ
上記リンカは、上記組み込み用プログラム開発装置に、一つ以上のオブジェクトファイルを結合させて、実行形式プログラムを生成させる際に、夫々のソースプログラム内の指定された位置に関して、プログラム全体の先頭からのサイクル数の換算値を求めさせ、
更に、上記アセンブラは、上記組み込み用プログラム開発装置に、上記プログラム全体の先頭からのサイクル数の換算値が所定の値以上である場合は、当該場合では不必要となるプログラム部分を省い、再度、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳させ
ことを特徴とする組み込み用プログラム開発装置。
An embedded program development device for storing an assembler and a linker ,
When the assembler causes the embedded program development device to translate the source program file written in assembly language into the machine language of the target processor and generate an object file , the specified position in each source program to measure the number of cycles from the beginning in,
When the linker develops an executable program by combining one or more object files with the embedded program development apparatus, the linker starts from the beginning of the entire program with respect to the designated position in each source program. Let the conversion value of the number of cycles be obtained ,
Furthermore, when the converted value of the number of cycles from the top of the entire program is greater than or equal to a predetermined value in the embedded program development device, the assembler omits a program part that is unnecessary in that case , again, embedded program development apparatus according to claim Rukoto to translate the source program files written in machine language of the target processor in assembly language.
リンカを記憶する組み込み用プログラム開発装置が更に記憶するアセンブラであって
上記組み込み用プログラム開発装置に、
アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳させてオブジェクトファイルを生成させる際に、夫々のソースプログラム内の指定された位置における先頭からのサイクル数を計測させ
上記組み込み用プログラム開発装置が、上記リンカを実行することによって、一つ以上のオブジェクトファイルを結合して、実行形式プログラムを生成する際に、夫々のソースプログラム内の指定された位置に関して、プログラム全体の先頭からのサイクル数の換算値を求めた後において、更に、上記プログラム全体の先頭からのサイクル数の換算値が所定の値以上である場合は、当該場合では不必要となるプログラム部分を省いて、再度、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳させ
ことを特徴とするアセンブラ。
An assembler further memorized by an embedded program development device for memorizing a linker ,
In the embedded program development device,
When by translating the source program files written in assembly language of the target processor into machine language to generate an object file, to measure the number of cycles from the beginning of the specified position in the respective source program,
When the embedded program development apparatus executes the linker to combine one or more object files to generate an executable program, the entire program is related to a designated position in each source program. After obtaining the converted value of the cycle number from the beginning of the program , if the converted value of the cycle number from the beginning of the entire program is greater than or equal to a predetermined value, the unnecessary program part in that case is omitted. stomach, again, assembler characterized by Rukoto to translate the source program files written in assembly language into machine language of the target processor.
アセンブラとリンカとを記憶する組み込み用プログラム開発装置における組み込み用プログラム開発方法であって
上記組み込み用プログラム開発装置は、
上記アセンブラを実行することによって、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳してオブジェクトファイルを生成する際に、夫々のソースプログラム内の指定された位置における先頭からのサイクル数を計測し、
上記リンカを実行することによって、一つ以上のオブジェクトファイルを結合して実行形式プログラムを生成する際に、夫々のソースプログラム内の指定された位置に関して、プログラム全体の先頭からのサイクル数の換算値を求め
更に、上記アセンブラを実行することによって、上記プログラム全体の先頭からのサイクル数の換算値が所定の値以上である場合は、当該場合では不必要となるプログラム部分を省いて、再度、アセンブリ言語で書かれたソースプログラムファイルを対象のプロセッサの機械語に翻訳する
ことを特徴とする組み込み用プログラム開発方法。
An embedded program development method in an embedded program development device for storing an assembler and a linker ,
The embedded program development device
By executing the above assembler, when an object file is generated by translating a source program file written in assembly language into the machine language of the target processor, the source program file from the beginning at a specified position in each source program is generated. Measure the number of cycles,
When executing the above linker to combine one or more object files to generate an executable program, the conversion value of the number of cycles from the beginning of the entire program for the specified position in each source program the request,
Further, when the converted value of the number of cycles from the top of the entire program is greater than or equal to a predetermined value by executing the assembler , the unnecessary program portion is omitted in that case, and again the assembly language A method for developing an embedded program, wherein the source program file written in is translated into a machine language of a target processor.
JP2009210668A 2009-09-11 2009-09-11 Embedded program development apparatus and embedded program development method Expired - Fee Related JP5353587B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009210668A JP5353587B2 (en) 2009-09-11 2009-09-11 Embedded program development apparatus and embedded program development method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009210668A JP5353587B2 (en) 2009-09-11 2009-09-11 Embedded program development apparatus and embedded program development method

Publications (2)

Publication Number Publication Date
JP2011060109A JP2011060109A (en) 2011-03-24
JP5353587B2 true JP5353587B2 (en) 2013-11-27

Family

ID=43947648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009210668A Expired - Fee Related JP5353587B2 (en) 2009-09-11 2009-09-11 Embedded program development apparatus and embedded program development method

Country Status (1)

Country Link
JP (1) JP5353587B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6500626B2 (en) * 2015-06-16 2019-04-17 富士通株式会社 Computer, compiler program, link program and compilation method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04145536A (en) * 1990-10-05 1992-05-19 Pfu Ltd Address rearrangement processing system for program conversion processing system
JPH0756723A (en) * 1993-08-11 1995-03-03 Fujitsu Ltd Compiler device
JPH1139155A (en) * 1997-07-24 1999-02-12 Nec Corp Static analysis method of execution performance via collection of information in compiling mode
JP2001216006A (en) * 2000-02-04 2001-08-10 Meidensha Corp Programming supporting system
JP3758991B2 (en) * 2001-04-24 2006-03-22 Necマイクロシステム株式会社 Method for adjusting the number of execution steps of a target program, adjusting device therefor, and recording medium storing the program
JP2003131889A (en) * 2001-10-25 2003-05-09 Hitachi Ltd Object program generation method
JP2005122452A (en) * 2003-10-16 2005-05-12 Ricoh Co Ltd Assembler for reducing programming capacity, compiler, linker and program development support system
JP4870956B2 (en) * 2005-09-15 2012-02-08 株式会社リコー Embedded program generation method, embedded program development system, and information table section
JP4898365B2 (en) * 2006-09-15 2012-03-14 株式会社リコー Embedded program development apparatus and program automatic generation method

Also Published As

Publication number Publication date
JP2011060109A (en) 2011-03-24

Similar Documents

Publication Publication Date Title
JP2002024029A (en) Compiler, compiling method and computer readable recording medium with compile program recorded thereon
JP2006313422A (en) Calculation processing device and method for executing data transfer processing
JP2004164554A (en) Device and method for executing and monitoring program
JP2007304840A (en) Compilation method, debugging method, compilation program, and debugging program
JP6651977B2 (en) Information processing apparatus, compiling method, and compiling program
JP2009176064A (en) Software refactoring support device and method
JP2008276735A (en) Program code converter and program code conversion method
JP5353587B2 (en) Embedded program development apparatus and embedded program development method
JP4462676B2 (en) Program conversion device, compiler device, and computer-readable recording medium recording program conversion program
JP2010152762A (en) Program conversion apparatus and program conversion method
JP3840149B2 (en) Compiler, arithmetic processing system, and arithmetic processing method
JP6500626B2 (en) Computer, compiler program, link program and compilation method
JP2005190302A (en) Information processing system and code generation method
JP2009258796A (en) Program development device and program development method
JP6011329B2 (en) PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND COMPUTER PROGRAM
JP7333889B2 (en) Software design support system, software design support method and software design support program
US8468511B2 (en) Use of name mangling techniques to encode cross procedure register assignment
KR100345401B1 (en) Method and apparatus for binary program translation
JP2007114934A (en) Compiler system
JP2007265098A (en) Macro definition information acquisition device
JP2008071065A (en) Compile device, method, program and storage medium for performing in-line expansion
JP5910197B2 (en) Embedded program development apparatus, compilation method, and compiler program
JP6326838B2 (en) Program processing apparatus, program processing method, and program processing program
JP2006072584A (en) Device for creating execution program, method for creating execution program, program processing apparatus, program processing method, and program
JP2009181558A (en) Program conversion device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130708

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130812

LAPS Cancellation because of no payment of annual fees