| CMSIS-Pack Version 1.3.1 Delivery Mechanism for Software Packs

- CMSIS
- CORE
- Driver
- DSP
- RTOS API
- Pack
- SVD

- Main Page
- Usage and Description

All Pages
Pack Description (*.PDSC) Format

The Pack Description (*.PDSC) Format uses standard XML annotations and is defined in the schema file PACK.xsd. Software components are distributed through Software Packs. A Software Pack is a zip file containing a single Pack Description file that describes dependencies to devices, processors, tool chains, or other software components.

A descriptive text of the Software Packalong the text information for devices, components, and examples is part of each a Pack Description (*.PDSC) file. In addition, information is provided which facilitates downloading, updating, and versioning of of a Software Pack. The *.PDSC file contains also the complete version history of the Software Pack with a brief list of the most significant changes.

# Filename Conventions

A Software Pack must have a unique filename which uses the following format: <vendor>.<name>.<version>.pack.

Where:

- <vendor>: name of the supplier or vendor of the Software Pack.
- <name>: name of the Software Pack. It is the vendor's responsibility to ensure unique package names.
- <version>: version number of the Software Pack.
- .pack: file extension identifying a Software Pack.

The Pack Description (*.PDSC) file belonging to such a Software Pack file (<vendor>.<name>.<version>.pack) is version independent and has the format: <vendor>.<name>.pdsc.

Where:

- <vendor>: name of the supplier or vendor of the Software Pack.
- <name>: name of the Software Pack that is described by this *.PDSC file.
- .pack: file extension identifying a Software Pack.

Example filenames for software packs:

Software Pack for CMSIS Version 4.0 released by ARM.

- ARM.CMSIS.4.0.0.pack: filename of the Software Pack.
- ARM.CMSIS.pdsc: filename of the Pack Description (*.PDSC) file.

Device Family Pack for STM32F4 Version 1.0.0 released by ST Microelectronics.

- ST.STM32F4xx_DFP.1.0.0.pack: filename of the Software Pack.
- ST.STM32F4xx.pdsc: filename of the Pack Description (*.PDSC) file.

# Pack Schema

The XML schema file PACK.xsd defines the sections used in a *.PDSC file. The current PACK.xsd can be found under the ARM.CMSIS.*.Pack in the .\CMSIS\Utilities-directory.

The Pack Description (*.PDSC) Format is structured using grouping elements and contains the following top level elements:

- <package>: describes package related information like vendor, package name, description, version. Is the root element.
- <keywords>: lists keywords to search for packages. Can be used for search engines.
- <releases>: lists releas versions with descriptions.
- <taxonomy>: lists description elements that define component classes and component group names.
- <apis>: describes Application Programming Interfaces (API) Specifications contained in the Software Pack.
- <generators>: specifies the tools that have been used to generate the PDSC file.
- <devices>: lists the devices supported by this Software Pack. It specifies the device attributes and files like flash programming algorithms, CMSIS device header files, CMSIS System View Descriptions, etc.
- <boards>: lists the development boards supported by the Software Pack.
- <conditions>: defines dependencies to devices, processors, components, and tools that are used within the Software Pack. It allows making components and files conditional.
- <components>: lists the software components contained in the Software Pack.
- <examples>: specifies example projects contained in the PACK.
- <sequence>: specifies sequences of debugger commands.

# Example of a *.PDSC File

This example of a *.PDSC File explains the sections, particularly how dependencies are used to identify individual files of Software Components.

Example of a *.PDSC File

# Example of a *.PACK File

The ARM.CMSIS.*.Pack also contains an extracted example of a PACK file. It can be found in the .\CMSIS\Pack\Example-directory. In a real-life *.PACK file this would be the archive's top-level containing the *.PDSC file and the subdirectories with all the files that are part of the Software Pack. Here, an exemplary PDSC file is stored which is renamed to *.pdsc.txt. This PDSC file can be used to examine the contents of the PACK. It is also a starting point for writing your own Software Pack.

The folder structure of this exemplary Software Pack is as follows:

- ARM.STM32F4xx_DFP.pdsc.txt: PDSC file example
- CMSIS_Driver: Examples of driver implementations adhering to CMSIS-Driver
  - Config: Driver configuration file
- Device: used in a DFP
  - Include: device header files
  - Source: system configuration files
    - ARM: startup files
- Documents: All kinds of documentation (reference manuals, data sheets, board schematics)
- Flash: Programming algorithms for microcontroller devices
  - STM32F4xx: uVision project files for generating the Flash programming algorithms
- Images: Pictures of developments boards used for display on web sites or other documentation
- SVD: System View Description files for microcontroller devices