Skip to main content

IAR Embedded Workbench for RL78 5.20

Summary of sections

In this section:

The compiler places code and data into sections. Based on a configuration specified in the linker configuration file, ILINK places sections in memory.

This table lists the ELF sections and blocks that are used by the IAR build tools:

Section

Description

.bss

Holds zero-initialized __near static and global variables.

.bss.noinit

Holds __no_init __near static and global variables.

.bssf

Holds zero-initialized __far static and global variables.

.bssf.noinit

Holds __no_init __far static and global variables.

.bss_unit64kp

This section is used internally by the linker.

.callt0

Holds the call table vectors generated by use of the __callt extended keyword.

.const

Holds __near constant data.

.constf

Holds __far constant data.

.consth

Holds __huge constant data.

CSTACK

Holds the stack used by C or C++ programs.

.data

Holds __nears tatic and global initialized variables.

.data_init

Holds initial values for .data sections when the linker directive initialize is used.

.dataf

Holds __far static and global initialized variables.

.dataf_init

Holds initial values for .dataf sections when the linker directive initialize is used.

.data_unit64kp

This section is used internally by the linker.

FAR_HEAP

Holds the heap used for dynamically allocated __far data.

.hbss

Holds zero-initialized __huge static and global variables.

.hbss.noinit

Holds __no_init __huge static and global variables.

.hdata

Holds __huge static and global initialized variables.

.hdata_init

Holds initial values for .hdata sections when the linker directive initialize is used.

HUGE_HEAP

Holds the heap used for dynamically allocated __huge data.

.iar.dynexit

Holds the atexit table.

.iar.locale_table

Holds the locale table for the selected locales.

__iar_tls.$$DATA

Holds the TLS area for the primary thread.

__iar_tls.$$INITDATA

Holds initial values for the TLS area.

.init_array

Holds a table of dynamic initialization functions.

.intvec

Holds the interrupt vector table

NEAR_HEAP

Holds the heap used for dynamically allocated __near data.

.option_byte

Holds the OCD option bytes for configuring the on-chip debugging interface.

.preinit_array

Holds a table of dynamic initialization functions.

.sbss

Holds zero-initialized static and global variables.

.sbss.noinit

Holds __no_init __saddr static and global variables.

.sdata

Holds __saddr static and global initialized variables.

.sdata_init

Holds initial values for .sdata sections when the linker directive initialize is used.

.security_id

Holds the Security ID that allows an authentication check before a debug session is started.

.switch

Holds switch tables for __near_func functions.

.switchf

Holds switch tables for __far_func functions.

.tbss

Holds thread-local zero-initialized static and global variables for the primary thread.

.tdata

Holds thread-local initialized static and global variables for the primary thread.

.text

Holds __near_func functions, interrupts and __callt functions.

.textf

Holds __far_func functions.

.text_unit64kp

This section is used internally by the linker.

.wrkseg

Holds the short address working area—an extra register variable area.

.vector

This section is used internally by the linker.

Table 90. Section summary  


Other sections

In addition to the ELF sections used for your application, the tools use a number of other ELF sections for a variety of purposes:

  • Sections starting with .debug generally contain debug information in the DWARF format

  • Sections starting with .iar.debug contain supplemental debug information in an IAR format

  • The section .comment contains the tools and command lines used for building the file

  • Sections starting with .rel or .rela contain ELF relocation information

  • The section .symtab contains the symbol table for a file

  • The section .strtab contains the names of the symbol in the symbol table

  • The section .shstrtab contains the names of the sections.