| 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
CMSIS-Pack Documentation

CMSIS-Pack describes a delivery mechanism for software components, device parameters, and evaluation board support. The XML-based package description (PDSC) file describes the content of a Software Pack (file collection) that includes:

- Source code, header files, and software libraries
- Documentation and source code templates
- Device parameters along with startup code and programming algorithms
- Example projects

The complete file collection along with the PDSC file is shipped in ZIP-format as a Software Pack. The PDSC file is designed for software development environments and describes the user and device relevant context for the files supplied within such a Software Pack. A Software Pack can be used for multiple purposes (see below).

After installing a Software Pack, all included software components are available to the development tools. Software components are a collection of source modules, header and configuration files as well as libraries. Packs containing software components can also include Example Projects and User Code Templates.

# Software Pack Use Cases

Software Pack Use Cases

The figure above shows the following use cases for Software Packs:

- Device Family Pack (DFP): contains CMSIS system/startup files, drivers, and flash algorithms for a microcontroller device family.
- CMSIS Software Pack: contains the generic CMSIS components (CORE, DSP Library, and RTOS implementation) supplied by ARM.
- Middleware Pack: contains software components belonging to a middleware (such as source code or libraries).
- Board Support Pack (BSP): contains documentation, schematics, and drivers for a certain development board.
- In-house Software Packs: usually contain software components that can be distributed within a company or engineering group.

Note
  A Software Pack can address multiple use cases at the same time!

The following sections give you more details on the basics:

- Create Software Packs explains the steps required for creating a Software Pack in general.
- Pack with Software Components gives detailed information on the contents of the PDSC file.
- Pack with Device Support describes additional requirements of Device Family Packs (DFPs).
- Pack with Board Support covers the creation of Board Support Packs (BSPs).
- Pack Example explains the Software Pack example that is part of the CMSIS Pack in more detail.
- Publish a Pack shows the options for publishing a Pack.
- Utilities for Creating Packs caters to programs that are useful during the creation of a Pack.
- Pack Description (*.PDSC) Format describes all XML elements that can be used in a PDSC file.
- Configuration Wizard Annotations can be used to create GUI-like elements in development tools for configuration files.

## CMSIS-Pack in ARM::CMSIS Pack

Files relevant to CMSIS-Pack are present in the following ARM::CMSIS directories:

Folder | Content
--- | ---
Utilities | Utilities for Creating Packs
Pack\Example | Reference Software Pack
Pack\Tutorials | Tutorials for Creating Packs

## Revision History

Version | Description
--- | ---
1.3.1 | Modifications compared to Version 1.3: Schema Version remains unchanged, since no incompatible update Added Cortex-M7 to the predefined list of processors Updated Vendor list Added File version attribute to debugvars element of device description Updated XML file header encoding tag set to capital "UTF8" Deprecated init attribute of <memory> element in <devices> section deprecated
1.3 | Modifications compared to Version 1.2: Added attributes to release tag for managing deprecation and changing pack IDs Removed external RAMn and ROMn memory IDs in memory tag Added FileCategoryTypes in <file> element for C, C++, Assembler, Linker Extended specification of <require>, <accept> and <deny> with Cversion and Capiversion ranges Added Utilities for Creating Packs and PackChk.exe for pack validation Added documentation for the Example PACK based on LPC1800 Device Family Refined <debug> element description Many clarifications in the documentation along with examples
1.2 | Clarifications for release.
1.1 - Preliminary | Update release for review: new Boards description new Debug description revised Device Feature capture new Generator description new Flash Algorithm Specification new Configuration Wizard Annotation Specification
1.0 - Preliminary | Preliminary release for review
0.10 | Release for beta review