11.11.1 Associated Options
There are several optional controls:
- There is only one reset vector and one set of configuration words.
Only one application can control these locations. The linker command line option
--coresident
, asks the linker not to fill these locations and once they are filled in, it would be a link error to try and define them again. See--coresident
. - There is still a restriction that there be only one constant section
for the const-in-code memory model, which must be shared amongst all linked
applications. It is possible to reserve some space for future growth by using the option
--reserve-const=size
. This option will set aside a set size of total bytes of space to be used for the .const
section in a future link. This option must be used if const memory space is being used in a co-resident application domain. See--reserve-const=size
. - Padding general FLASH areas. There are already methods to add padding
to prelinked, input sections. However, this could be wasteful if all we need to do is
ensure that the contiguous allocation ends on a particular boundary. The option
--pad-flash=size
will ensure that the linked output section is padded to a size byte boundary. See--pad-flash=size
. - The linker option
--no-isr
has been extended to prevent the linker from completing the vector table. With this option specified, the linked executable will contain entries only for vector slots that are used in the application. The others will remain unfilled and can be defined in a future link. It is safer, in a final application, to have all vector slots completely defined. Without the option--no-isr
, the linker will fill unused slots to call the_DefaultInterrupt(void)
handler function, which it will define if none exists. See--no-isr
. - The linker option
--no-ivt
instructs the linker not to generate an IVT unless one is explicitly created in the linker script or by other means. See--no-ivt
. - The command line option
--application-id=name
causes the linker to create alias names for each external symbol. The provided name is prepended to the normal symbol name; name should be C appropriate. See--application-id=name
. - The command line option
--memory-usage
causes the linker to create information about the static memory usage for the linked application space. This information is represented in the executable as a null terminated sequence of pairs of start and end addresses for Flash usage and RAM usage. Flash usage information is placed in a section named.flash_usage
, RAM usage is in.ram_usage
. See--memory-usage
and Linker Resolved Symbols.