Chapter 6 Using Linker
Command Options 99
Figure: 6-2 Memory Space Layout
Default specification
When there are no address specifications whatsoever, the first section in the first file is assigned to
address 0. The remaining sections are assigned using the rule 2 mentioned above.
NOTE: If a section has been divided into two or more parts (sections), a starting address
of the lowest section is referred to the section name.
Operation example
The following are examples of section layout for two files, main.rf and sub.rf, in the current directory.
Both files contain multiple CODE and DATA sections.
ld103 main.rf sub.rf
The linker merges the CODE sections in the order that they appear in the input files, starting at address
0. It merges the DATA sections in the order in which they appear, starting at address 0. It merges the
DATA sections in the order in which they appear.
ld103 -T @CODE=80000000 -T@DATA=0 main.rf sub.rf
The linker merges the DATA sections in the order that they appear in the input files, starting at address
0. It merges the CODE sections in the order in which they appear, starting at address 80000000(hex).
ld103 -T @CODE = 80000000 main.rf -T@DATA=0 sub.rf
0
x00000000
0xffffffff
_TEXT@CODE
( b.rf )
_CONST@CODE
( b.rf )
Section layout with
-T option specification Fixed layout
_TEXT@CODE
( c.rf )
_GCONST@CODE
( c.rf )
_TEXT@CODE
( b.rf )
_CONST@CODE
( b.rf )
_TEXT@CODE
( c.rf, a.rf )
_GCONST@CODE
( c.rf )
_ROM@CODE
( b.rf )
_DATA@DATA
( b.rf )
0xffffffff
0
x20000000 0x20000000
0x00000000
Sections without ...
_TEXT@CODE ( a.rf )
_ROM@CODE( b.rf )
_DATA@DATA( b.rf )
ld103 a.rf -T_TEST, _CONST-0 b.rf -T_TEST, _GCONST=20000000 c.rf