Program linking apparatus for linking and executing one...

Data processing: software development – installation – and managem – Software program development tool – Linking

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S221000

Reexamination Certificate

active

06457174

ABSTRACT:

This application is based on an application No. 10-302998 filed in Japan, the content of which is hereby incorporated by reference.
BACKGROUND OF THE INVENTION
(1) Field of the Invention
The present invention relates to a program linking apparatus and a program linking method for linking a plurality of programs that are stored in a plurality of read only semiconductor memories and for referring to subroutines and data.
(2) Description of the Related Art
It has been necessary for embedded microcomputer control systems that store program instructions in read only semiconductor memories (referred to “ROMs” in this specification) to add and partially replace software after sale due to the complication of the systems.
In this case, the size of the program to be added or replaced, or the size of the data to be used by the program changes, so that the addresses of subroutines in the program and the data that are to be used by the program also change. As a result, when subroutines and export symbols of the program to be added or replaced and remaining programs are referred to each other, the export symbols need to be linked.
Conventionally, programs recorded in ROMs are linked by indicating the locations of the export symbols in a reference table that has been fixedly allocated in a ROM or a RAM using absolute addresses.
The structure of a conventional apparatus that links programs recorded in ROMs is shown in FIG.
48
. The apparatus in
FIG. 48
includes a ROM-A
101
, a ROM-B
102
, a RAM
103
, a CPU bus
104
, and a CPU
105
. The ROM-A
101
, the ROM-B
102
, the RAM
103
, and the CPU
105
are connected with each other by the CPU bus
104
.
The ROM-A
101
stores a main step
110
and a program A
120
. The ROM-B
102
stores a program B
130
. The RAM
103
stores data A
140
and data B
150
. The CPU
105
executes the programs stored in the ROM-A
101
and the ROM-B
102
.
The memory map and the contents of the program A
120
and the data A
140
that is used by the program A
120
are shown in FIG.
49
. As shown in
FIG. 49
, the program A
120
includes a symbol table A
121
and a program instruction part A
122
. The symbol table A
121
stores absolute addresses
123
,
124
,
125
, and
126
. The absolute addresses
123
and
124
indicate the locations of code export symbols, symbols A
127
and B
128
, respectively. The absolute addresses
125
and
126
indicate the locations of data export symbols, symbols C
141
and
0
142
, respectively. The absolute addresses that indicate the locations of the absolute addressed
123
,
124
,
125
, and
126
are “0X01000”, “0X010004”, “0X010008”, and “0X01000C”, respectively. The program instruction part A
122
stores a program block that is identified by the symbol A
127
and another program block that is identified by the symbol B
128
. The absolute addresses that indicate the locations of the symbols A
127
and B
128
are “0X010010” and “0X010200”, respectively. The data A
140
stores a data block that is identified by the symbol C
141
and another data block that is identified by the symbol D
142
. The absolute address that indicates the location of the leading data of the data A
140
is “0X11000”. The absolute addresses of the locations of the symbols C
141
and D
142
are “0X110500” and “0X110600”, respectively. In this specification, the character string “0X” indicates that the following character string is a hexadecimal numeral.
The memory map and the contents of the program B
130
and the data B
150
that is used by the program B
130
are shown in FIG.
50
. As shown in
FIG. 50
, the program B
130
includes a symbol table B
131
and a program instruction part B
132
. The symbol table B
131
stores absolute addresses
133
,
134
,
135
, and
136
. The program instruction part B
132
stores program blocks that are identified by symbols E
137
and F
138
. The data B
150
stores data blocks that are identified by symbols G
151
and H
152
. Note that the structure of the program B
130
is the same as the program A
120
and the structure of the data B
150
is the same as the data A
140
. More detailed explanation of the program B
130
and the data B
150
will not be given here.
An explanation of operations by the program stored in the main step
110
will be given with reference to the flowchart in FIG.
51
. The principle objective of the main step
110
is to control the program block that is identified by the symbol A
127
and the program block that is identified by the symbol E
137
so that the program blocks are executed in this order.
In the main step
110
, the content of the address “0X010000”, where the absolute address of the symbol A
127
is stored, is extracted and the extracted content is substituted into a variable “ptra” (step s
401
) The content of the address “0X020000”, where the absolute address of the symbol E
137
is stored, is extracted and the extracted content is substituted into a variable “ptre” (step s
402
). Then, the address that the variable “ptra” indicates is called (step s
403
), and the address that the variable “ptre” indicates is called (step s
404
).
FIG. 52
shows a program that is stored in the program block indicated by the symbol A
127
in the C language. The principle objective of this program is to execute the program block that is identified by the symbol F
138
, to substitute a variable “XXXXX” into the data block that is identified by the symbol G
151
, and to substitute a variable “YYYYY” into the data block that is identified by the symbol H
152
.
In
FIG. 52
, the symbol A is defined in a line
501
, the content of the address “0X020004”, where the absolute address of the symbol F is stored, is substituted into a variable “ptrf” in a line
502
, the content of the address “0X020008”, where the absolute address of the symbol G is stored, is substituted into a variable “ptrg” in a line
503
, the content of the address “0X02000C”, where the absolute address of the symbol H is stored, is substituted into a variable “ptrh” in a line
504
, the address that the variable “ptrf” indicates is called in a line
505
, the variable “XXXXX” is substituted into the address that the variable “ptrg” indicates in a line
506
, the variable “YYYYY” is substituted into the address that the variable “ptrh” indicates in a line
507
, and a return is performed in a line
508
.
FIG. 53
shows a program that is stored in the program block indicated by the symbol E
137
in the C language. The principle objective of this program is to execute the program block that is identified by the symbol B
128
, to substitute a variable “ZZZZZ” into the data block that is identified by the symbol C
141
, and to substitute a variable “OOOOO” into the data block that is identified by the symbol D
142
. The structure of the program in
FIG. 53
is the same as the program in FIG.
52
. More detailed explanation will not be given here.
As has been described, the export symbols in programs can be linked to each other by indicating the locations of the export symbols using the absolute addresses in a reference table that has been fixedly allocated in a ROM or a RAM.
According to the aforementioned conventional linking method of programs in a ROM, the export symbols can be statically linked to each other. On the other hand, the locations of the export symbols for mutual reference among programs are indicated using absolute addresses in a reference table that is allocated in a ROM or a RAM, and the absolute addresses of the symbols of a program on the export end are embedded in a program on the import end. As a result, the arrangement of the program on the export end needs to be fixed in the memory space. Meanwhile, the addresses corresponding to symbols are stored using absolute addresses in the reference table, so that the arrangement of the program on the import end needs to be fixed in the memory space. Under the circumstances, a program that is recorded in a ROM is dependent on the memory map of one embedded microcomputer control system, and a program that has been r

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Program linking apparatus for linking and executing one... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Program linking apparatus for linking and executing one..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Program linking apparatus for linking and executing one... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2858963

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.