4.8 ld
and MSP430
For the MSP430 it is possible to select the MPU architecture. The flag ‘-m [mpu type]’
will select an appropriate linker script for selected MPU type. (To get a list of known MPUs
just pass ‘-m help’ option to the linker).
The linker will recognize some extra sections which are MSP430 specific:
‘
.vectors’
- Defines a portion of ROM where interrupt vectors located.
‘
.bootloader’
- Defines the bootloader portion of the ROM (if applicable). Any code
in this section will be uploaded to the MPU.
‘
.infomem’
- Defines an information memory section (if applicable). Any code in
this section will be uploaded to the MPU.
‘
.infomemnobits’
- This is the same as the ‘.infomem’ section except that any code
in this section will not be uploaded to the MPU.
‘
.noinit’
- Denotes a portion of RAM located above ‘.bss’ section.
The last two sections are used by gcc.
- --code-region=[either,lower,upper,none]
- This will transform .text* sections to [either,lower,upper].text* sections. The
argument passed to GCC for -mcode-region is propagated to the linker
using this option.
- --data-region=[either,lower,upper,none]
- This will transform .data*, .bss* and .rodata* sections to
[either,lower,upper].[data,bss,rodata]* sections. The argument passed to GCC
for -mdata-region is propagated to the linker using this option.
- --disable-sec-transformation
- Prevent the transformation of sections as specified by the
--code-region
and --data-region
options.
This is useful if you are compiling and linking using a single call to the GCC
wrapper, and want to compile the source files using -m[code,data]-region but
not transform the sections for prebuilt libraries and objects.