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

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)
-addr command
Format 1:
Format 2:
Sample description: -addr 0x100000 {DEFAULT_CODE MAIN_OBJ}
Explanation:
214
-addr <Address> {<Block name> ... <Block name>}
-addr <Symbol> {<Block name> ... <Block name>}
-addr EXT_ROM {DEFAULT_CODE MAIN_OBJ}
If any file name specified in { } does not match the link file (including the path), a
warning is given and the file is processed as being not specified. If this results in no
valid files being specified in { }, an error results. However, this does not apply when
library objects are specified (i.e., "xxx.lib:xxx.o" is specified).
No errors occur even when the block name definition is not referenced by the -addr
command.
No default block names (DEFAULT_CODE, DEFAULT_DATA, or DEFAULT_BSS)
can be used for the block name defined here. However, these default block names can be
used unless they consist entirely of uppercase letters. (Example: Default_Bss can be
used.)
This command locates a specified block at a specified address. In format 1, the address
is specified directly. Also, as in format 2, the symbol defined by the -defaddr command
can be used for the address.
The address can be specified in the range 0x0 to 0xfffffff.
If the block name is preceded by '@', it is handled as a virtual block when located.
Virtual blocks are mapped to RAM and when executing a program, assumed to be
located at the address defined here. For example, a virtual block may be specified when
executing a program after transferring it from ROM into RAM.
In standard settings, symbolic debug information on virtual blocks is mapped to virtual
addresses, and source-level debug information is mapped to the real address (if the block
name is preceded by only '@').
If the block name is preceded by '@#', source-level debug information is mapped to
virtual blocks. The source-level debug information on sections mapped to a shared block
by the -uXXXblock command is effective for only the first file specified. However, if
the block contains an absolute file, such absolute files will not have any debug
information attached. In the example below, the file abs.o (assuming it is an absolute
file) cannot be a virtual block. The files rel1.o and rel2.o are virtual blocks.
Example) -codeblock BLK001 { rel1.o abs.o rel2.o }
Also, if the first file of a shared block is an absolute file, it will be the first relocatable
file that has debug information attached. In the example below, the files abs1.o, abs2.o,
and rel2.o cannot be virtual blocks. The file rel1.o is a virtual block.
Example) -ucodeblock BLK001 { abs1.o abs2,o rel1.o rel2.o}
To use the symbols '@#', add to the block name defined by -codeblock or -ucodeblock or
DEFAULT_CODE. This is because the statements in the source debug information are
associated with code sections.
For DATA and BSS blocks, the symbols '@#' and the symbol '@' have the same effect.
Example) -datablock BLOCK1 { boot.o main.o }
The block definition, either (1) or (2), has the same effect.
If any virtual block other than virtual default blocks is defined in the -addr command, the
object files in that virtual block are excluded from virtual default blocks.
Example) -codeblock OBJ1 { boot.o }
In this case, DEFAULT_CODE includes boot.o, main.o, and sub.o. The block @OBJ1
includes boot.o, and @DEFAULT_CODE includes main.o and sub.o.
At least one space or tab is required between -addr and <address> or <symbol>.
-addr 0x1000 { @#BLK001 }
-addr 0x1000 { @#BLK001 }
-addr 0x80000 { @BLOCK1 }
-addr 0x80000 { @#BLOCK1 }
-addr 0x100000 { @OBJ1 @DEFAULT_CODE }
boot.o
main.o
sub.o
EPSON
(C COMPILER PACKAGE FOR S1C33 FAMILY) (Ver. 4)
... (1)
... (2)
S5U1C33000C MANUAL

Related parts for s5u1c33000c