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.