These properties are applicable to C and assembly code source files that are in a Executable, Library or Object File project type.

## Assembler and Compiler Options

Property Name | Type | Save Name | Description
Additional Assembler Options | String List | asm_additional_options | Additional command line options to be supplied to the assembler.
Additional Compiler Options | String List | c_additional_options | Additional command line options to be supplied to the C/C++ compiler.
ARM Architecture | Enumeration | arm_architecture | Specifies the version of the ARM or Thumb instruction set to generate code for. The options are v4T, v5TE and v7M. Use v4T for ARM7TDMI, ARM720T and ARM920T based processors. Use v5TE for XScale and ARM9E based processors. Use v7M for Cortex-M3 based processors.
ARM Core Type | Enumeration | arm_core_type | Specifies the version of the ARM processor core to generate code for. The options are ARM7TDMI, ARM7TDMI-S, ARM720T, ARM920T, ARM926EJ-S, Cortex-M3 and XScale. This option is currently not used for code generation.
ARM Floating Point Format | Enumeration | arm_fp_format | Specifies the ARM floating point format to generate code for. The options are Software VFP and Software FPA. The C libraries supplied with CrossWorks for ARM are compiled for Software VFP.
ARM/Thumb interworking | Boolean | arm_interwork | Specifies that the ARM code generated can be called either from ARM or Thumb code. Setting this property to "No" may result in smaller code sizes when compiling for architecture v4T.
Endian | Enumeration | arm_endian | Specifies the endianness to build for. The options are Little and Big. Note that the value of this property at project level will be used to automatically set the Endian target property when a project is downloaded or attached to.
Enforce ANSI Checking | Boolean | c_enforce_ansi_checking | Enable additional checking to ensure C programs conform to the ISO C99 standard and C++ programs conform to the 1998 ISO C++ standard.
Generate Static call_via_rX | Boolean | arm_module_call_vias | Works around a problem in the C/C++ compiler of the GCC when using long calls from Thumb code.
Instruction Set | Enumeration | arm_instruction_set | Specifies the instruction set the compiler should generate code for. The options are ARM or Thumb.
Keep Assembly | Boolean | arm_keep_assembly | When set the assembly code generated by the C/C++ compiler of the GCC are kept.
Long Calls | Boolean | arm_long_calls | Specifies whether function calls are made using 32-bit absolute addresses. Set this if you get relocation errors from the linker.
Object File Name | String | build_object_file_name | Specifies the name of the object file produced by the compiler/assembler. This property will have macro expansion applied to it.
Optimization Level | Enumeration | gcc_optimization_level | Specifies the optimization level to use for compliation. The options are None, Level x and Optimize For Size. Use None when developing and debugging code. Use Level 1 for release builds. Don't use any of the other options.

## Preprocessor Options

Property | Type | Save Name | Description
Ignore Includes | Boolean | c_ignore_includes | If set to Yes, the System Include Directories and User Include Directories properties are ignored.
Preprocessor Definitions | String List | c_preprocessor_definitions | Specifies one or more preprocessor definitions.
Preprocessor Undefinitions | String List | c_preprocessor_undefinitions | Specifies one or more preprocessor undefinitions.
System Include Directories | String List | c_system_include_directories | Specifies the system include path. This property will have macro expansion applied to it.
Undefine All Preprocessor Definitions | Boolean | c_undefine_all_preprocessor_definitions | If set to Yes, no standard preprocessor definitions will be defined.
User Include Directories | String List | c_user_include_directories | Specifies the user include path. This property will have macro expansion applied to it.

## Section Options

Property | Type | Save Name | Description
Code Section Name | String | default_code_section | Specifies the default section name to use for the program code section.
Constant Section Name | String | default_const_section | Specifies the default section name to use for the read-only constant section.
Data Section Name | String | default_data_section | Specifies the default section name to use for the initialised, writable data section.
Vector Section Name | String | default_vector_section | Specifies the default section name to use for the interrupt vector section.
Zeroed Section Name | String | default_zeroed_section | Specifies the default section name to use for the zero-initialised, writable data section.