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.