Skip to main content

IAR Embedded Workbench for RX 5.20

Summary of sections

In this section:

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

Section

Description

.data16.bss

Holds zero-initialized __data16 static and global variables.

.data16.data

Holds __data16 static and global initialized variables.

.data16.data_init

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

.data16.noinit

Holds __no_init __data16 static and global variables.

.data16.rodata

Holds __data16 constant data.

.data24.bss

Holds zero-initialized __data24 static and global variables.

.data24.data

Holds __data24 static and global initialized variables.

.data24.data_init

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

.data24.noinit

Holds __no_init __data24 static and global variables.

.data24.rodata

Holds __data1624 constant data.

.data32.bss

Holds zero-initialized __data32 static and global variables.

.data32.data

Holds __data324 static and global initialized variables.

.data32.data_init

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

.data32.noinit

Holds __no_init __data32 static and global variables.

.data32.rodata

Holds __data32 constant data.

DIFUNCT

Holds pointers to code, typically C++ constructors, that should be executed by the system startup code before main is called.

EARLYDIFUNCT

Holds pointers to code objects that require early initialization, typically stream I/O, that should be executed by the system startup code before main is called.

.exceptvect

Holds the exception vectors.

HEAP

Holds the heap used for dynamically allocated data.

.iar.dynexit

Holds the atexit table.

.iar.locale_table

Holds the locale table for the selected locales.

.init_array

Holds a table of dynamic initialization functions.

__iar_tls$$DATA

Holds initial values for TLS variables.

__iar_tls$$INITDATA

Holds initial values for the TLS area.

.inttable

Holds all interrupt vectors except for non-maskable interrupts

ISTACK

Holds the supervisor mode stack.

.preinit_array

Holds a table of dynamic initialization functions.

.resetvect

Holds the reset vectors.

.sbrel.bss

Holds zero-initialized __sbrel static and global variables.

.sbrel.data

Holds __sbrel static and global initialized variables.

.sbrel.data_init

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

.sbrel.noinit

Holds __no_init __sbrel static and global variables.

.switch.rodata

Holds tables for switch statements.

.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 the program code.

.textrw

Holds __ramfunc declared program code.

.textrw_init

Holds initializers for the .textrw declared section.

USTACK

Holds the user mode stack.

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.