CMSIS-Pack: Main Page

| CMSIS-Pack Version 1.6.0 Delivery Mechanism for Software Packs

- 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 (renamed to *.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 pack file.

The CMSIS-Pack system solves several problems:

- It provides meta-data of files that relate to a software component. All files that belong to a software component can be identified and information about the original provider is preserved.
- It enables consistent software component upgrade and identifies incompatible configuration files that may be part of the user application.
- Software component providers can specify the interfaces and relationship to other software components.
- The meta-data of a software component can include dependency information for toolchains, devices, and processors which simplifies the integration into application programs.

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.

The Revision History of CMSIS-Pack lists the main changes between versions.

# Software Pack Use Cases

A pack can be used for multiple purposes:

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 provide more information:

- In the Overview, learn the basics and the required steps for creating a pack.
- Pack with Software Components shows how to start a pack from scratch.
- Pack with Device Support describes how to enable device support in a DFP.
- Pack with Board Support covers the creation of Board Support Packs (BSPs).
- Pack Example explains the available example pack in more detail.
- Learn how to Publish a Pack.
- Utilities for Creating Packs are available 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.
- Flash Programming algorithms are used to erase or download applications to Flash devices.
- Debug Setup with CMSIS-Pack allows to create tool-agnostic debug and trace configurations
- Project Description (*.cpdsc) Format is a environment/tool independent definition of a software project. This helps to create only one set of example projects that can be used by many different tool vendors.
- CMSIS-Pack Index Files are used to generate a catalog of available packs.

## 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