Open-CMSIS-Pack
Version 1.7.45
Delivery Mechanism for Software Packs
|
The grouping element /package/conditions contains all conditions defined for the software pack.
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.
Example:
This element groups all conditions used in the software pack.
Parent | Chain | ||
---|---|---|---|
package | /package | ||
Child Elements | Description | Type | Occurrence |
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.
Parent | Chain | ||
---|---|---|---|
conditions | /package/conditions | ||
Attributes | Description | Type | Use |
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 |
Child Elements | Description | Type | Occurrence |
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..* |
All attributes set in an accept, require, or deny must resolve to true for the element to become true. A condition becomes true when:
Parent | Chain | ||
---|---|---|---|
condition | /package/conditions/condition | ||
Attributes | Description | Type | Use |
Dvendor | Specifies the silicon vendor of the device. Use predefined values as listed in the table Device Vendor. | DeviceVendorEnum | optional |
Dfamily* | DEPRECATED** Specifies the device family name (for example: STM32F2 Series). | xs:string | optional |
DsubFamily* | DEPRECATED**Specifies the device sub-family name (for example: STM32F205 Series). | xs:string | optional |
Dname* | Specifies the name of the device. | xs:string | optional |
Dvariant* | DEPRECATED**Specifies the variant name of a device (for example: Step A). | 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 the application is configured to run in secure or non-secure mode. Predefined values can be used as listed in the table Software Model Secure. | 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 |
Dmve | Specifies whether the M-Profile Vector instruction set extension must be supported by the device or not. Predefined values can be used as listed in the table Device MVE. | DmveEnum | optional |
Dcdecp | Specifies whether Custom Datapath Extension Coprocessors and which coprocessor interfaces must be supported by the device. Possible values are explained in Custom Datapath Extensions. | DcdecpEnum | optional |
Dpacbti | Specifies whether a device implements Pointer Authentication/Branch Target Identification (PAC/BTI) instructions. Possible values are explained in Device PAC/BTI. | DpacbtiEnum | required for ARMv8.1-M based devices with PAC/BTI support |
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. Requires that Cclass is also specified. | 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. Requires that Cclass is also specified. | CgroupType | optional |
Csub* | Specifies a software component subgroup. The type is described in Component Subgroups. Requires that Cclass and Cgroup is also specified. | CsubType | optional |
Cvariant* | Specifies a software component variant. Requires that Cclass, Cgroup, and Csub (if part of the component definition) is also specified. | xs:string | optional |
Cversion | Specifies a software component's version. Requires that Cclass, Cgroup, and Csub (if part of the component definition) is also specified.
| VersionType | optional |
Capiversion | Specifies an API version.
| VersionType | optional |
Bvendor* | Specifies a board vendor name that refers to a <board> element in a PDSC file. | xs:string | optional |
Bname* | Specifies a board name that refers to a <board> element in a PDSC file. | xs:string | optional |
Brevision* | Specifies a board revision that refers to a <board> element in a PDSC file. | xs:string | optional |
Hvendor | Specifies a part vendor name that refers to a <part> element in a PDSC file. | xs:string | optional |
Hname* | Specifies a part name that refers to a <part> element in a PDSC file. | xs:string | optional |
Tcompiler | Specifies a compiler toolchain (ARMCC, GCC, IAR, Tasking, ...). Use predefined values as listed in table Compiler Types. | CompilerEnumType | optional |
Toptions | 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. | CompilerEnumType | optional |
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:
**) These attributes must not be used in conditions because
The tale list values representing a C/C++ compiler toolchains from a specific tool vendor. The tokens can be used in the elements:
Tcompiler= | Description |
---|---|
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 for Embedded. |
IAR | IAR compiler for C and C++. |
Tasking | TASKING compiler for C and C++. |
GHS | Green Hills Software compiler for C, C++, and EC++. |
XC | Microchip MPLAB XC32 Compiler. |
CLANG | CLANG: a C language family frontend for LLVM for 32-bit Arm embedded targets. Refer to CLANG |