A condition describes dependencies on device, processor, and tool attributes as well as the presence of other components. The conditions are used to define AND and OR rules used to make components conditional and therefore only available under certain circumstances, e.g. for specific devices or processors. The conditions are also used to express dependencies between components.
Each condition has an id that is unique within the scope of a the description. An id can be referenced in the condition attribute of components, apis, examples, files and other conditions to become conditional. If a condition resolves to false during the processing of the description, the respective element will be ignored.
This element groups all conditions used in the Software Pack.
|condition||Define the individual dependency condition.||xs:string||1..*|
Conditions are dependency rules that can apply to elements such as a component or file. Other elements can refer to a rule using their attribute condition, which links to the attribute id of a condition. If a condition resolves to false, then the component or file description is ignored.
|id||Condition identifier which is unique within a Software Pack. The condition identifier is referenced by other elements with the attribute condition.||xs:string||required|
|description||Descriptive (comment) text that explains the condition in an human readable way.||xs:string||0..1|
|accept1||At least one accept must be true to signal a true for the complete condition (OR-Rule)||FilterType||0..*|
|require1||All require must be true to signal a true for the complete condition (AND-Rule).||FilterType||0..*|
|deny1||If one deny is true the complete condition becomes false. This element overrules require and accept (AND-NOT-Rule).||FilterType||0..*|
- 1: At least one of these elements must be present in any condition.
- At least one accept element is true, AND
- all require elements are true, AND
- no deny element is true.
|Dfamily*||Specifies the device family name (for example: STM32F2 Series).||xs:string||optional|
|DsubFamily*||Specifies the device sub-family name (for example: STM32F205 Series).||xs:string||optional|
|Dvariant*||Specifies the variant name of a device (for example: Step A).||xs:string||optional|
|Dvendor||Specifies the silicon vendor of the device. Use predefined values as listed in the table Device Vendor.||DeviceVendorEnum||optional|
|Dname*||Specifies the name of the device.||xs:string||optional|
|Pname||Specifies the processor instance in case of multi processor devices. This allows to describe distinct conditions for a specific processor.||xs:string||optional|
|Dcore||Specifies a processor core. Use predefined values as listed in the table Device Cores.||DcoreEnum||optional|
|Dfpu||Specifies whether a Floating Point Unit (FPU) must be present or not. Predefined values can be used as listed in the table Device FPU.||DfpuEnum||optional|
|Dmpu||Specifies whether a Memory Protection Unit (MPU) must be present or not. Predefined values can be used as listed in the table Device MPU.||DmpuEnum||optional|
|Dtz||Specifies whether TrustZone (TZ) must be supported by the device or not. Predefined values can be used as listed in the table Device TrustZone.||DtzEnum||optional|
|Dsecure||Specifies whether Digital Signal Processing (DSP) instruction set must be supported by the device or not. Predefined values can be uses as listed in the table Device DSP.||DsecureEnum||optional|
|Ddsp||Specifies whether Digital Signal Processing (DSP) instruction set must be supported by the device or not. Predefined values can be uses as listed in the table Device DSP.||DdspEnum||optional|
|Dendian||Specifies the endianess of a device. Use predefined values as listed in the table Endianess.||DendianEnum||optional|
|Cvendor*||Specifies a component vendor name.||xs:string||optional|
|Cbundle*||Specifies a component class bundle name.||xs:string||optional|
|Cclass*||Specifies a component class name. Predefined values can be used as listed in the table Component Classes.||CclassType||optional|
|Cgroup*||Specifies a software Component Group. Predefined values can be used as listed in the table Component Groups.||CgroupType||optional|
|Csub*||Specifies a software component subgroup. The type is described in Component Subgroups.||CsubType||optional|
|Cvariant*||Specifies a software component variant.||xs:string||optional|
|Cversion||Specifies a software component version.||VersionType||optional|
|Capiversion||Specifies an API version.||VersionType||optional|
|Tcompiler||Specifies a compiler toolchain (ARMCC, GCC, IAR, Tasking, ...). Use predefined values as listed in table Compiler Types.||CompilerEnumType||optional|
Specifies compiler specific options being active. For Tcompiler="ARMCC" available Toptions are:
This attribute can be used to select compatible libraries for the selected compiler version or optimization mode.
|condition||Refers to another condition identified through the attribute id.||xs:string||optional|
*) Wild-cards can be used to match names with the following definitions:
- '*' matches any substring
- '?' matches any single character
- [abc] matches any character in the set (a,b,c)
The tale list values representing a C/C++ compiler toolchains from a specific tool vendor. The tokens can be used in the elements:
|GCC||GNU Tools for Arm Embedded Processors. Refer to Arm GCC.|
|G++||Code Sourcery GCC compiler for C and C++ (is now Mentor Graphics CodeBench).|
|ARMCC||Arm Compiler for C and C++. Refer to Arm Compiler.|
|IAR||IAR compiler for C and C++.|
|Tasking||TASKING compiler for C and C++.|
|GHS||Green Hills Software compiler for C, C++, and EC++.|