CMSIS-Build: /cprj/target

| CMSIS-Build Version 0.9.0 (beta) Tools, software frameworks, and work flows for productivity with CMSIS based projects

- Main Page
- Usage and Description

All Pages
/cprj/target

This element describes the hardware target, build output and command line options for a specific compiler tool-chain. These settings are applied to all modules of the project. The C/C++ and assembler flags can be refined for components, files. The following elements are available:

- output : Build output options
- cflags : C compiler options applied to C modules (category="sourceC").
- cxxflags : C++ compiler options applied to C++ modules (category="sourceCpp").
- asflags : Assembler options applied to Assembler modules (category="sourceAsm").
- ldflags : Linker options applied when output attribute type="exe".
- arflags : Archiver options applied to Librarian when output attribute type="lib".

Note: The compiler referenced by the above command line flags is required to be listed in the <compilers> section.

Example target section:

<cprj xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CPRJ.xsd"/>
...
<compilers>
<compiler name="AC5" version="5.6.0"
</compilers>
...
<target Dname="ARMCM0" Dvendor="ARM:82" Dendian="Little-endian">
<output name="Blinky" type="exe" obj="./Objects list="./Listings"/>
<cflags compiler="AC5" add="-Osize"/>
...
<ldflags compiler="AC5" file="./RTE/Device/ARMCM0/gcc_arm.ld"/>
</target>
...
</cprj>

Parents | Element Chain
--- | ---
cprj | /cprj
Attributes | Description | Type | Use
Bvendor | Board vendor name. Either a board vendor and board name with optional board revision, or a device vendor and a device name. | xs:string | optional
Bname | SPecify the board name. Either a board vendor and board name with optional board revision, or a device vendor and a device name. | xs:string | optional
Bversion | Board version. Either a board vendor and board name with optional board revision, or a device vendor and a device name. | xs:string | optional
Dvendor | Device vendor name. Either a board vendor and board name with optional board revision, or a device vendor and a device name. | xs:string | optional
Dname | Device name. Either a board vendor and board name with optional board revision, or a device vendor and a device name. | xs:string | optional
Pname | Processor instance name. In case of multi-processor devices, this processor ID is required. | xs:string | optional
Dfpu | Selects the floating point unit option that is active for the project. Note, even if the device implements an FPU, setting Dfpu=0 here, will disable FPU code generation. Use predefined values from the table Device FPU. | DfpuEnum | optional
Dendian | Selects the endianness to be used for the project. Note that selecting an endianness that is not supported by the device, will result in a build that will not run on the device. Use predefined values from the table DendianEnum. | DendianEnum | optional
Dmpu | Selects the memory protection unit to be enabled or disabled for the project. Use predefined values from the table Device MPU. | DmpuEnum | optional
Dsecure | Selects the software model for code generation on arm TrustZone-M enabled devices. Use predefined values from the table Dsecure | DsecureEnum | optional
Dmve | Selects the code generation to utilize the Corex-M Vector Extensions (MVE) on devices with this features Use predefined values from the table Dmve | DmveEnum | optional
Child Elements | Description | Type | Occurrence
output | Configure the build output name and type, and specify whether to include debug information. Required if type="exe". | OutputType | 1..1
ldflags | Linker flags used for constructing the effective linker command line | LinkerFlagsType | 0..1
arflags | Archiver command line flags for the toolchain selected by 'compiler' attribute. | ArchiverFlagsType | 0..1
cflags | Compiler flags for C-modules used for constructing the effective compiler command line | ToolOptionType | 0..1
cxxflags | Compiler flags for C++ modules used for constructing the effective compiler command line | ToolOptionType | 0..1
asflags | Assembler flags for assembler modules used for constructing the effective assembler command line | ToolOptionType | 0..1
arflags | Archiver flags for the archiver which creates library files. Constructing the effective assembler command line | ToolOptionType | 0..1

# /cprj/target/output

Specify the build output directories, output file and type (executable vs. library).

Example output element

<cprj ...>
...
<target Dname="ARMCM0" Dvendor="ARM:83">
<output compiler="AC5" name="MyProject" type="exe" list="Listings" obj="Objects"/>
...
</target>
...
</cprj>

Parents | Element Chain
--- | ---
/cprj/target target | /cprj/target
Attributes | Description | Type | Use
name | Name of the build output file to be generated. | xs:string | required
type | Select the build target to be lib - library or exe - executable | CompilerOutputType | required
obj | Relative path of the output folder | xs:string | optional
listing | Relative path of the listings folder | xs:string | optional

# /cprj/target/ldflags

This element specifies strings of commandline options for the linker of the tool-chain selected by the attribute 'compiler'. A linker script file shall be specified using the attribute 'file'. Note that this option only takes effect if the type specified in the output tag is set to "exe".

Example ldflags element

<cprj ...>
...
<target Ddsp="NO_DSP" Dendian="Little-endian" Dfpu="NO_FPU" Dmve="NO_MVE" Dname="LPC4357" Dtz="NO_TZ" Dvendor="NXP:11" Pname="Cortex-M4">
<output list="./Debug/" name="BSD_Client" obj="./Debug/" type="exe"/>
<ldflags compiler="AC5" add="--entry=Reset_Handler --load_addr_map_info --map --strict " file="BSD_Client.sct"/>
</target>
...
</cprj>

Parents | Element Chain
--- | ---
target | /cprj/target
Attributes | Description | Type | Use
compiler | selects the compiler the contained information is targeted at. Choose from available list: GCC, AC5, AC6, IAR, Tasking, GHS, Cosmic, G++ | CompilerEnumType | required
add | commandline options to be added to the command line of the respective tool. | xs:string | optional

# /cprj/target/arflags

This element specifies a string of commandline options for the archiver of the tool-chain selected by the attribute 'compiler'. Note that this option only takes effect if the type specified in the output tag is set to "lib".

Example arflags element

<cprj ...>
...
<target Ddsp="NO_DSP" Dendian="Little-endian" Dfpu="NO_FPU" Dmve="NO_MVE" Dname="LPC4357" Dtz="NO_TZ" Dvendor="NXP:11" Pname="Cortex-M4">
<output list="./Debug/" name="BSD_Client" obj="./Debug/" type="lib"/>
<arflags compiler="AC5" add="--debug_symbols "/>
</target>
...
</cprj>

Parents | Element Chain
--- | ---
target | /cprj/target
Attributes | Description | Type | Use
compiler | selects the compiler the command line option string is targeted at. Choose from available list: GCC, AC5, AC6, IAR, Tasking, GHS, Cosmic, G++ | CompilerEnumType | required
add | commandline string to be added to the command line of the archiver of the selected compiler tool-chain. | xs:string | required

# /cprj/target/cflags

These additional compiler options affect all C modules contained in the project description unless particular settings are 'removed' on a lower level (component, group, file).

Example cflags element

<cprj ...>
...
<target Ddsp="NO_DSP" Dendian="Little-endian" Dfpu="NO_FPU" Dmve="NO_MVE" Dname="LPC4357" Dtz="NO_TZ" Dvendor="NXP:11" Pname="Cortex-M4">
<output list="./Debug/" name="BSD_Client" obj="./Debug/" type="lib"/>
<cflags add="-O1 -fno-function-sections -fno-rtti -fshort-enums -fshort-wchar -funsigned-char"/>
<arflags compiler="AC5" add="--debug_symbols "/>
</target>
...
</cprj>

Parents | Element Chain
--- | ---
target | /cprj/target
Attributes | Description | Type | Use
compiler | selects the compiler the command line option string is targeted at. Choose from available list: GCC, AC5, AC6, IAR, Tasking, GHS, Cosmic, G++ | CompilerEnumType | required
add | commandline string to be added to the command line of the compiler invoked for C-modules specific the selected compiler tool-chain. | xs:string | required

# /cprj/target/cxxflags

These additional compiler options affect all C++ modules contained in the project description unless particular settings are 'removed' on a lower level (component, group, file).

Example cxxflags element

<cprj ...>
...
<target Ddsp="NO_DSP" Dendian="Little-endian" Dfpu="NO_FPU" Dmve="NO_MVE" Dname="LPC4357" Dtz="NO_TZ" Dvendor="NXP:11" Pname="Cortex-M4">
<output list="./Debug/" name="BSD_Client" obj="./Debug/" type="lib"/>
<cflags add="-O1 -fno-function-sections -fno-rtti -fshort-enums -fshort-wchar -funsigned-char"/>
<cxxflags add="-O1 -fno-function-sections -fno-rtti -fshort-enums -fshort-wchar -funsigned-char"/>
<arflags compiler="AC5" add="--debug_symbols "/>
</target>
...
</cprj>

Parents | Element Chain
--- | ---
target | /cprj/target
Attributes | Description | Type | Use
compiler | selects the compiler the command line option string is targeted at. Choose from available list: GCC, AC5, AC6, IAR, Tasking, GHS, Cosmic, G++ | CompilerEnumType | required
add | commandline string to be added to the command line of the compiler invoked for C++-modules specific the selected compiler tool-chain. | xs:string | required

# /cprj/target/asflags

These additional assembler options affect all Assembler modules contained in the project description unless particular settings are 'removed' on a lower level (component, group, file).

Example asflags element

<cprj ...>
...
<target Ddsp="NO_DSP" Dendian="Little-endian" Dfpu="NO_FPU" Dmve="NO_MVE" Dname="LPC4357" Dtz="NO_TZ" Dvendor="NXP:11" Pname="Cortex-M4">
<output list="./Debug/" name="BSD_Client" obj="./Debug/" type="lib"/>
<asflags add="--xref --split_ldm"/>
<arflags compiler="AC5" add="--debug_symbols "/>
</target>
...
</cprj>

Parents | Element Chain
--- | ---
target | /cprj/target
Attributes | Description | Type | Use
compiler | selects the compiler the command line option string is targeted at. Choose from available list: GCC, AC5, AC6, IAR, Tasking, GHS, Cosmic, G++ | CompilerEnumType | required
add | commandline string to be added to the command line of the assembler invoked for Assembler-modules specific the selected compiler tool-chain. | xs:string | required