Doc:Linker:Symbols

From GNU 68HC11/HC12
Jump to: navigation, search

The Linker uses and provides some symbols that you can use in your program.

Symbol Description
_start This symbol represents the entry point of the program.

It is provided by the GCC startup file and it is used by the linker to know the entry point of the program. The linker script is configured to try to put this symbol at beginning of the ROM area.

_stack This symbol represents the top of the stack. It is computed by

the linker to refer to the top of the data memory bank. The GCC startup file sets the stack pointer to this value at beginning.

etext This symbol represents the end address of the .text

section.

edata This symbol represents the end address of the .data

section.

__data_image This symbol represents the starting address of the ROM area

which contains the copy of initialized data. These data must be copied from ROM to RAM during initialization. This is done by the GCC startup file.

__data_image_end This symbol is: __data_image + __data_section_size.
__data_section_start This symbol represents the starting address of the data

section in RAM. This symbol should rather be named: __data_start.

__data_section_size This symbol represents the size in bytes of the data section

that must be copied from ROM to RAM. This symbol should rather be named: __data_size.

__bss_start This symbol represents the starting address of the BSS section

in RAM. This is also the end of the data section.

__bss_size This symbol represents the size in bytes of the BSS section.

Together with __bss_start it is used to initialize the BSS section at startup time.

_end This symbol represents the ending address of the BSS section

in RAM.

_vectors_addr This symbol represents the starting address of the 68HC11 vector's

table. The default value is 0xffc0. If you have provided a -defsym vectors_addr=addr option to the linker, this symbol will have the value you have specified.

Note: If you provide a vectors_addr symbol, there will be two symbols: one with _ and one without. </TD> </TR> </TABLE>

Personal tools