Keil Logo

Options for Component

The Options for Component dialog defines properties, memory assignments, compiler, and assembler related parameters specific to a Software Component.

Open the dialog with the menu Project - Options for Component, or the context menu of the Project window.

Options for Component dialog

Software Component

List of Software Components for which you can specify options. Components marked with an asterisk have option values that differ from the default settings. Select a Software Component to set specific options.

General information about the Software Component is displayed on top of the right page. Where applicable, you get an link to the Software Component documentation.


The Properties dialog allows you to set options about the usage of the component.

Software pack details

Shows information about the source of the Software Component such as the name of the Software Pack that contains the component, the Internet address from where the Software Pack was downloaded, and the vendor name of the Software Pack.


Use for all project targets
Enable this flag to apply the special settings to all targets. Disable this option to set individual options for each target.
Set a Software Component variant. For example to support files with long names (LFN) or short names (SFN). Software Component variants can be selected also in the Manage Run-Time Environment.
Select a specific Software Component version. The version number of a component might differ from the version number of the Software Pack. The field is not selectable when Use latest installed version is enabled.
Select a project layer to be assigned to the component. Default is Not Assigned. Layers can be added to the project using the Project Info/Layers dialog.
Use latest installed version
Disable the option to select a specific Software Component version. This flag has an impact when Software Components are updated. Refer to Update Software Component Files for details.

Enable this option to update the project when a new version of the Software Component gets installed. Files local to a project are not affected by Software Pack updates. Files referenced from the /ARM/PACK folder get changed (for example, header files).

Include in target build
Disable this option to exclude the Software Component from the build process. The files belonging to this component are not translated and not linked into the application object file.
Include in library
By default all source files and libraries used in Software Components are excluded from the build when the project output is a library. Refer to Create a Library File. Enable this option to include source files and libraries of Software Components to the generated library output.


The Memory dialog allows you to specify memory layout options.

Options for Component dialog - Memory Tab

The drop-downs offer a list of memory areas that have been defined in the dialog Options for Target - Target.

Code / Const
Read-Only (RO) section that keeps program code and constants. Typically located in ROM.
Zero Initialized Data
Zero-Initialized (ZI) data section. Variables in this section are set to 0 on program launch.
Other Data
Read-Write (RW) data section for variables that get initialized to a specific value at startup.

C/C++ and C/C++(AC6)

The dialog allows you to set compiler options.

The C/C++ dialog is available when Arm Compiler 5 is used in the project, and C/C++(AC6) dialog appears if Arm Compiler 6 is used.

Options for Component dialog - C/C++ Tab

Preprocessor Symbols

Set preprocessor symbols, which can be checked with #if, #ifdef and #ifndef. The defined names are copied exactly as they are entered (case-sensitive). Optionally, each name may get a value. Define: Check, NoExtRam, X1=1+5 is identical to the following C preprocessor #define statements:
   #define Check
   #define NoExtRam
   #define X1 1+5
Clears Define assignments entered in the options dialog of a higher level.


Control compiler code optimization. Sets the compiler command-line option -Onum:

Description Arm Compiler 5 Arm Compiler 6
Optimization levels for performance. -Otime -O0
-Otime -O1
-Otime -O2
-Otime -O3
Optimization levels for code size. -Ospace -O0
-Ospace -O1
-Ospace -O2
-Ospace -O3
Default -Ospace -O2 -O0
Best trade-off between image size, performance, and debug. -Ospace -O2 -O1
Highest optimization for performance -Otime -O3 -Omax
Highest optimization for code size -Ospace -O3 -Oz


  • The Arm Compiler 5 -O0 option is more similar to the Arm Compiler 6 -O1 option than the Arm Compiler 6 -O0 option.

Misc Controls

Specify any directive for which there is no individual dialog control.

Show Compiler Control String

This button opens a window with the complete directives at the compiler command line applied to the selected component:

Compiler Control String Window


The Asm dialog allows you to set assembler options.

Options for Component dialog - Asm Tab

Conditional Assembly Control Symbols

Sets symbols using assembler specific directives, e.g. SETA for Arm Compiler 5. The defined names are copied exactly as they are entered (case-sensitive). Each name may get optionally a value, for example: Check, NoExtRam, X1=1+5. Also see Assembler Options described in Arm assembler.
Undefine symbols that were defined on a higher level.

Misc Controls

Specify any directive not covered in a dialog.

Assembler Option

Specify the assembler option for the component. Refer to the options described in Arm assembler. Default is <inherit> from parent.

Show Assembler Control String

This button opens a window with the complete directives at the assembler command line applied to the selected component:

Assembler Control String Window


Removes the selected Software Component from the project (all targets). This action is independent of the flag Use for all targets.
Save changes and close the window.
Do not save changes and close the window. This action also applies to the button Remove.
Opens this help.

See also:

Related Knowledgebase Articles

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.