CMSIS-Pack
Version 1.4.1
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 | ||
---|---|---|---|
accept | /package/conditions/condition/accept | ||
require | /package/conditions/condition/require | ||
deny | /package/conditions/condition/deny | ||
Attributes | Description | Type | Use |
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 uses 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 uses as listed in the table Device MPU. | DmpuEnum | 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 |
condition | Refers to another condition identified through the attribute id. | xs:string | optional |
*) Wild-cards can be used to match names with the following defintions:
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 from ARM. |
IAR | IAR compiler for C and C++. |
Tasking | TASKING compiler for C and C++. |
GHS | Green Hills Software compiler for C, C++, and EC++. |