s5u1c33000c Epson Electronics America, Inc., s5u1c33000c Datasheet - Page 236

no-image

s5u1c33000c

Manufacturer Part Number
s5u1c33000c
Description
Cmos 32-bit Single Chip Microcomputer S5u1c33000c Manual
Manufacturer
Epson Electronics America, Inc.
Datasheet
CHAPTER 12: LINKER
(Link processing in lk33 Ver. 3.0)
12.6.4 Virtual Blocks and Shared Blocks
Virtual blocks and shared blocks both do not have real data. Virtual blocks do not virtually exist at their locations,
but they can be used to transfer objects during execution. Therefore, virtual blocks are useful when, for example,
executing a program in RAM. Shared blocks provide a means of locating several different objects in parallel, and
they need to be located as virtual blocks. They may be used to transfer objects to the shared area during
execution.
Virtual blocks
Shared blocks
220
In the -addr command, specify a block (defined by the -codeblock, -datablock, or -bssblock command)
whose name includes '@', and that block will be located as a virtual block. Symbols are resolved assuming
the object in the specified block is executed in a virtual block that begins with the specified address.
Symbolic debug information is mapped to virtual addresses, and source-level debug information is mapped
to real addresses. If the source-level debug information also needs to be mapped to a virtual block, add '@#'
at the beginning of the block name when specifying that block.
Example: -addr IN_RAM
In this example, a RAM address labeled IN_RAM is specified, and OBJ1 and then OBJ2 are located
beginning with that address. That way, the symbol information for these objects is generated at addresses in
a virtual block that begins with IN_RAM. Although the actual objects must be located in nonvolatile
memory before they can be used, their addresses need to be specified separately by using the -addr
command, without adding '@' or '@#'. Unless a specific location of the actual objects is specified, the
objects are placed in a default block when processed. The source-level debug information for OBJ1 is
generated at that real address. OBJ2 has addresses in a virtual block assigned to it, because its name
includes '@#'. Therefore, when debugging these objects, the source for OBJ1 is indicated at the real address
position, and the source for OBJ2 is indicated at the mapped RAM address position.
Note, however, that before OBJ1 and OBJ2 can actually be executed, the object codes must be transferred
from the real address location to a virtual address location in a user program.
The objects defined in any shared block definition command (-ucodeblock, -udatablock, or -ubssblock) are
located parallel to each other in a block. Namely, multiple objects are located beginning with the same start
address.
The source-level debug information for the sections that have been combined into a block by any shared
block definition command is effective for only the first file specified. When specifying addresses using the
-addr command, always be sure to add '@' to the beginning of each block name.
Example: -ucodeblock OBJ1
In this example, a shared block named OBJ1 is defined, and this block is located beginning with a RAM
address labeled IN_RAM. Symbol information is generated assuming the CODE sections in sample1.o and
sample2.o both are executed in that area. The source-level debug information is generated only for
sample1.o. Although the actual objects must be located in nonvolatile memory before they can be used,
they must have a real block defined separately by using the -codeblock command, and must have the
address of that block specified by the -addr command. Unless specifically specified, the actual objects are
placed in a default block when processed.
Note, however, that before the object codes in sample1.o and sample2.o can actually be executed, they must
be transferred from the real address location to a shared address location in a user program.
{
}
{
}
-addr IN_RAM
{
}
@OBJ1
@#OBJ2 ... "OBJ2" is located as a virtual block.
sample1.o
sample2.o
@OBJ1
... "OBJ1" is located as a virtual block.
The source-level debug information also is mapped to a virtual block.
... Defines a shared block
... The shared block "OBJ1" is always located as a virtual block.
The CODE sections in sample1.o and sample2.o are set in the
same area (at the same address)
EPSON
(C COMPILER PACKAGE FOR S1C33 FAMILY) (Ver. 4)
S5U1C33000C MANUAL

Related parts for s5u1c33000c