|
|||||||||||
|
Technical Support On-Line Manuals Linker User Guide |
Linker User GuideScatter file to ELF mapping
For simple images, ELF executable files contain segments:
For example, you might have a scatter file similar to the following: Example 40. Scatter file
LOAD 0x8000
{
EXEC_ROM +0
{
*(+RO)
}
RAM +0
{
*(+RW,+ZI)
}
HEAP +0x100 EMPTY 0x100
{
}
STACK +0 EMPTY 0x400
{
}
}
This scatter file creates a single Program Segment with type
PT_LOAD for the load region with address A single Output Section with type SHT_PROGBITS is created to represent the contents of EXEC_ROM. Two Output Sections are created to represent RAM. The first has a type SHT_PROGBITS and contains the initialized read/write data. The second has a type of SHT_NOBITS and describes the zero-initialized data. The heap and stack are described in the ELF file by SHT_NOBITS sections. Enter the following fromelf command to see the scatter-loaded sections in the image: fromelf --text -v my_image.axf To display the symbol table, enter the command: fromelf --text -s -v my_image.axf The following is an example of the fromelf output
showing the Example 41. Scatter-loaded sections in the ELF image
...
========================================================================
** Program header #0
Type : PT_LOAD (1)
File Offset : 52 (0x34)
Virtual Addr : 0x00008000
Physical Addr : 0x00008000
Size in file : 764 bytes (0x2fc)
Size in memory: 2140 bytes (0x85c)
Flags : PF_X + PF_W + PF_R + PF_ARM_ENTRY (0x80000007)
Alignment : 4
========================================================================
** Section #1
Name : EXEC_ROM
...
Addr : 0x00008000
File Offset : 52 (0x34)
Size : 740 bytes (0x2e4)
...
====================================
** Section #2
Name : RAM
...
Addr : 0x000082e4
File Offset : 792 (0x318)
Size : 20 bytes (0x14)
...
====================================
** Section #3
Name : RAM
...
Addr : 0x000082f8
File Offset : 812 (0x32c)
Size : 96 bytes (0x60)
...
====================================
** Section #4
Name : HEAP
...
Addr : 0x00008458
File Offset : 812 (0x32c)
Size : 256 bytes (0x100)
...
====================================
** Section #5
Name : STACK
...
Addr : 0x00008558
File Offset : 812 (0x32c)
Size : 1024 bytes (0x400)
...
| ||||||||||
|
|||||||||||