SPRU513Y August 2001 – June 2022 SM320F28335-EP
User-named sections are sections that you create. You can use them like the default .text, .data, and .ebss or .bss sections, but each section with a distinct name is kept distinct during assembly.
For example, repeated use of the .text directive builds up a single .text section in the object file. This .text section is allocated in memory as a single unit. Suppose there is a portion of executable code (perhaps an initialization routine) that you want the linker to place in a different location than the rest of .text. If you assemble this segment of code into a user-named section, it is assembled separately from .text, and you can use the linker to allocate it into memory separately. You can also assemble initialized data that is separate from the .data section, and you can reserve space for uninitialized variables that is separate from the .ebss or .bss section.
These directives let you create user-named sections:
The syntaxes for these directives are:
symbol | .usect "section name", size in words[, blocking flag[, alignment flag ] ] |
.sect "section name" |
When using COFF, you can create up to 32,767 distinct named sections. When using EABI, the maximum number of sections is 232-1 (4294967295).
The section name parameter is the name of the section. For the .usect and .sect directives, a section name can refer to a subsection; see Section 3.5.6 for details.
Each time you invoke one of these directives with a new name, you create a new user-named section. Each time you invoke one of these directives with a name that was already used, the assembler resumes assembling code or data (or reserves space) into the section with that name. You cannot use the same names with different directives. That is, you cannot create a section with the .usect directive and then try to use the same section with .sect .