IARARM
 
Compiler IARARM
IAR ARM C Compiler
Settings:
(Parameters of the compiler-specific code generation and compilation.)
  • Compiler - Compiler identification.
  • Settings only if CPU component does not generate vector table using InterruptControler component.
    • Unhandled vectors - This property allows you to specify generation of ISR for interrupts unused by Processor expert beans.
      Value 'One handler for all' will generate one ISR for all interrupts not used by PE beans and value 'Own handler for every' allows you to have one ISR for each unused interrupt.
      There are 2 modes:
  • Generate macros - Generate macros to the project modules. If intention and implementation of some beans' methods allow effective representation of methods as macros, these methods will be generated as macros by setting of this property to "yes". Generating methods as macros can reduce code size. Disabling macros can facilitate debugging of the application code.
  • FLASH registers initialization - Generate initialization of registers placed in FLASH memory. It may be necessary to disable this option e.g. when a serial monitor is used.
  • User initialization - In this group user can specify his own initialization code that will be executed after reset (see also the Reset Scenario).
    • User data declarations - In this property user can specify own data declarations. Lines from this list will be generated before function __initialize_hardware located in the CPU module.
    • User code before PE initialization - In this property user can specify own initialization code. Lines from this list will be generated before any code generated by PE to the function __initialize_hardware located in the CPU module.
    • User code after PE initialization - In this property user can specify own initialization code. Lines from this list will be generated after the PE initialization code in the function __initialize_hardware located in the CPU module.
  • Generate ICF file - Rewrite LINKFILE during code generation. If you would like to add some parts to the link file you should set this property to 'no'. In the first time this property should be set to 'yes' to create linker parameter file.
    The following items are available only if the group is enabled (the value is "yes"):
    • Stack size - Size of the system stack in bytes.
    • Heap size - Size of the system heap in bytes.
    • Default memory for interrupts - Default memory location for interrupts. This value is used by property Set memory segments to default only.
    • Default memory for code - Default memory location for code.
    • Default memory for data - Default memory location for data. This value is used by property Set memory segments to default only.
    • Memory segments - This group contains definition of memory segments (areas) on the target board for linker parameter file.
      • Set default memory segments - Click to set default memory segments according to current CPU bean settings (memory mapping and memory model). See CPU memory map window for detail about current memory mapping and available sizes.
      • ROM/RAM segments - List of available memory areas. For each memory area you must specify: Name, Qualifier, Address and Size.
        The following memory areas have to be defined:
        • m_interrupts - area containig the interrupt vector table
        • m_text - area to store the program code
        • m_data - area to store the program data
        If any of the required memory areas is missing an error will be reported. To fix this error, use either Set memory segments to default option or add the memory area manually.
        One Item of the list looks like:
        MemoryArea0 - Memory area group. This property can be collapsed or ellapsed.
        • ROM/RAM Area - ROM/RAM memory section for data or code.
          The following items are available only if the group is enabled (the value is "Enabled"):
          • Name - Memory area name used as an identifier in the linker command file's placement section.
          • Qualifier - This property specifies where this memory section will be allocated.
            R,RW - Data memory
            RX,RWX - Program memory
          • Address - Start address of the area. This address must be in internal or external memory (if an external bus is supported by the selected derivative).
          • Size - Size of the area
  • The following items are visible only in Processor Expert Stand-Alone.
    • PE compiler/linker support - This group contains options for Metrowerks C Compiler, that can be used only in stand-alone version of the Processor Expert. The options are disabled if the Processor Expert is integrated into CodeWarrior IDE.