ElfSection
PythonOne section of the linked image, address included.
ElfSection( name: str, address: int, size: int, nobits: bool, allocated: bool, index: int = -1, linker_reserved: bool = False,) -> Nonedataclass
One section of the linked image, address included.
index is the ELF section-header index — the section’s IDENTITY.
Section NAMES are not unique: armlink emits one section per execution
region per content class all named after the region (a real NSX AP510
scatter link yields two MCU_TCM sections, PROGBITS + NOBITS), and
NSX’s own gcc scripts declare .text twice. Never key a collection
of these on name alone — bytes vanish (#176).
linker_reserved marks the NOBITS+allocated regions the linker
manufactures rather than the program needing them (today: fill-to-end
heaps, armlink’s ARM_LIB_HEAP — the #24/#131 rule, same predicate
as the BinarySections.reserved split). .stack/ARM_LIB_STACK
are deliberately NOT reserved: the stack is live memory the firmware
needs — but note it usually sits OUTSIDE the per-family app window
(LinkedRegionWindow.app_window), which is how the free-space math
stays consistent.
API tier: experimental
name
Pythonname: straddress
Pythonaddress: intsize
Pythonsize: intnobits
Pythonnobits: boolallocated
Pythonallocated: boolindex
Pythonindex: int = -1linker_reserved
Pythonlinker_reserved: bool = False