Commit 671fea1f authored by reinhardkeil's avatar reinhardkeil
Browse files

Pack format 1.7.0 documented

parent 60191923
......@@ -241,16 +241,24 @@
</releases>
<taxonomy>
<description Cclass="Audio">Software components for audio processing</description>
<description Cclass="Board Support">Generic Interfaces for Evaluation and Development Boards</description>
<description Cclass="Board Part">Drivers that support an external component available on an evaluation board</description>
<description Cclass="Compiler">Compiler Software Extensions</description>
<description Cclass="CMSIS" doc="CMSIS/Documentation/General/html/index.html">Cortex Microcontroller Software Interface Components</description>
<description Cclass="Device" doc="CMSIS/Documentation/Core/html/index.html">Startup, System Setup</description>
<description Cclass="CMSIS Driver" doc="CMSIS/Documentation/Driver/html/index.html">Unified Device Drivers compliant to CMSIS-Driver Specifications</description>
<description Cclass="Device" doc="CMSIS/Documentation/Core/html/index.html">Startup, System Setup</description>
<description Cclass="Data Exchange">Data exchange or data formatter</description>
<description Cclass="Extension Board">Drivers that support an extension boards or shield</description>
<description Cclass="File System">File Drive Support and File System</description>
<description Cclass="IoT Client">IoT cloud client connector</description>
<description Cclass="IoT Utility">IoT specific software utility</description>
<description Cclass="Graphics">Graphical User Interface</description>
<description Cclass="Network">Network Stack using Internet Protocols</description>
<description Cclass="USB">Universal Serial Bus Stack</description>
<description Cclass="Compiler">Compiler Software Extensions</description>
<description Cclass="RTOS">Real-time Operating System</description>
<description Cclass="Security">Encryption for secure communication or storage</description>
<description Cclass="USB">Universal Serial Bus Stack</description>
<description Cclass="Utility">Generic software utility components</description>
</taxonomy>
<devices>
......
......@@ -38,7 +38,7 @@ PROJECT_NAME = CMSIS-Pack
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = "Version 1.6.0"
PROJECT_NUMBER = "Version 1.7.0"
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
......
......@@ -74,6 +74,13 @@ Files relevant to CMSIS-Pack are present in the following \b ARM::CMSIS director
<th>Version</th>
<th>Description</th>
</tr>
<tr>
<td>1.7.0</td>
<td>Modifications compared to Version 1.6.0
- added to \ref element_package "package" element the possibility to restrict the usage of the with attributes Dcore, Dname, Dvendor, and Tcompiler.
- added \ref element_dominate "dominate" element to overwrites identical \ref element_devices "devices", \ref element_apis "APIs", or \ref element_components "components".
- added new \ref pack_Cclass : "Audio", "Board Part", "Data Exchange", "Extension Board", "IoT Client", "IoT Utility", "Security", "Utility".
</td>
<tr>
<td>1.6.0</td>
<td>Modifications compared to Version 1.5.0
......
......@@ -76,21 +76,28 @@ If you add a software component in the PDSC file, you have to specify a componen
and the component's version number (Cversion). For more information refer to \ref cp_Components.
If applicable, try to map the \b Cclass of your software component to one of the following predefined or already well
established classes:
- Board Support: Generic interfaces for evaluation and development boards
- CMSIS: <i>Cortex Microcontroller Software Interface Standard</i> components
- CMSIS Driver: Unified device drivers compliant to the CMSIS-Driver specification
- Compiler: Arm Compiler software extensions
- Data Exchange: Software components for data exchange
- Device: Startup and system setup components
- File System*: File drive support and file system
- Graphics*: Graphical libraries for user interfaces
- Network*: Network stack using Internet protocols
- RTOS*: Real-time operating systems
- Safety: Components for testing application software against safety standards
- Security*: Encryption for secure communication or storage
- USB*: Universal Serial Bus stack
- Wireless*: Communication stacks such as Bluetooth, WiFi, and ZigBee
established classes listed below. These \b Cclass names are pre-defined in the CMSIS pack using the \ref element_taxonomy "taxonomy" element.
Cclass | Description
:-----------------|:------------------------------------------------------------------
Audio | Software components for audio processing
Board Support | Generic interfaces for evaluation and development boards
Board Part * | Drivers that support an external component available on an evaluation board
CMSIS | <i>Cortex Microcontroller Software Interface Standard</i> components
CMSIS Driver | Unified device drivers compliant to the CMSIS-Driver specification
Compiler | Arm Compiler software extensions
Data Exchange | Data exchange components or data formatter, for example JSON
Device | Startup and system setup components
Extension Board * | Drivers that support an extension boards or shield
File System* | File drive support and file system
Graphics* | Graphical libraries for user interfaces
IoT Client * | IoT cloud client connectors
IoT Utility * | IoT specific utilities, i.e. a socket interface
Network* | Network stack using Internet protocols
RTOS* | Real-time operating systems
Security* | Encryption for secure communication or storage
USB* | Universal Serial Bus stack
Utility | Generic software utility components
Classes with a * should always be used together with a \ref Component_Bundle "bundle" to avoid conflicts with other software
components.
......
......@@ -62,6 +62,7 @@ The \ref packFormat is structured using grouping elements and contains the follo
- \subpage pdsc_package_pg "<package>": describes package related information like vendor, package name, description, version. Is the root element.
- \subpage element_keywords "<keywords>": lists keywords to search for packages. Can be used for search engines.
- \subpage element_repository "<repository>": specifies the URL and repository type of a public repository where the pack originates from.
- \subpage element_dominate "<dominate>": the pack contains one or more device, API, or component that overrules other packs with identical items.
- \subpage element_releases "<releases>": lists release versions with descriptions.
- \subpage element_requirements_pg "<requirements>": lists required packs, compiler, programming language standards and their version or version range.
- \subpage element_taxonomy "<taxonomy>": lists description elements that define component classes and component group names.
......@@ -164,6 +165,30 @@ assists searching for packages.
<td>xs:string</td>
<td>required</td>
</tr>
<tr>
<td>Dcore</td>
<td>Pack only used for a specific processor core. Use predefined values as listed in the table \ref DcoreEnum "Device Cores". Note: do not apply for packs that define a device</td>
<td>DcoreEnum</td>
<td>optional</td>
</tr>
<tr>
<td>Dvendor</td>
<td>Pack only used for a specific silicon vendor of the device. Use predefined values as listed in the table \ref DeviceVendorEnum "Device Vendor". Note: do not apply for packs that define a device</td>
<td>DeviceVendorEnum</td>
<td>optional</td>
</tr>
<tr>
<td>Dname<b>*</b></td>
<td>Pack only used for a specific name of the device. Note: do not apply for packs that define a device</td>
<td>xs:string</td>
<td>optional</td>
</tr>
<tr>
<td>Tcompiler</td>
<td>Pack only used for a specific compiler toolchain (ARMCC, GCC, IAR, Tasking, ...). Use predefined values as listed in table \ref CompilerEnumType "Compiler Types".</td>
<td>CompilerEnumType</td>
<td>optional</td>
</tr>
<tr>
<th>Child Elements</th>
<th>Description</th>
......@@ -209,6 +234,12 @@ assists searching for packages.
<td>xs:string </td>
<td>0..1 </td>
</tr>
<tr>
<td>\ref element_dominate "dominate"</td>
<td>dominate</td>
<td>A pack that has \ref element_dominate "dominate" attribute overrules other packs that provide devices, APIs, or software components with the same name.</td>
<td>\em empty</td>
</tr>
<tr>
<td>\ref element_requirements "requirements"</td>
<td>Specifies other CMSIS-Packs, programming languages and compiler as well as their respective version
......@@ -295,6 +326,11 @@ assists searching for packages.
</tr>
</table>
<b>*)</b> 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)
<p>&nbsp;</p>
\anchor VersionType <b>Version Type</b>
......@@ -468,6 +504,56 @@ Contributing to a software pack hosted on GitHub:
<hr>
*/
/**************************************************************************************************/
/**
\page element_dominate /package/dominate element
The \ref element_dominate specifies that the Pack contains one or more \ref element_devices "device", \ref element_apis "API", or \ref element_components "component" that overrules
other packs that contain identical named \ref element_devices "device", \ref element_apis "API", or \ref element_components "component".
This attribute is useful for framing packs that:
- Contain \em certified software components which should overrule software components with identical name of other packs.
- Contain new device definitions of devices that were previously defined in different packs.
\b Example:
\code
<package>
...
<dominate info="CMSIS-Core, RTOS2, RTX5, Event Recorder, C Library certified for Cortex-M3"/>
...
</package>
\endcode
<p>&nbsp;</p>
<table class="cmtable" summary="Element: dominate">
<tr>
<th>Parent Element</th>
<th colspan="3">Element Chain</th>
</tr>
<tr>
<td>\ref element_package "package"</td>
<td colspan=3>\ref element_package</td>
</tr>
<tr>
<th>Attributes</th>
<th>Description</th>
<th>Type</th>
<th>Use</th>
</tr>
<tr>
<td>info</td>
<td>Descriptive text that explains the reason for the overwrite using dominate.</td>
<td>xs:string</td>
<td>optional</td>
</tr>
</table>
<hr>
*/
/**************************************************************************************************/
/**
\page element_releases /package/releases element
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment