Pack Example

The ARM::CMSIS Pack contains an example of a Software Pack that contains device support, board support and software components. This Pack can be used as a reference for user generated Software Packs. It is available in the directory \CMSIS\Pack\Example. It contains a PDSC example file and all sub-directories containing the files referenced in the PDSC.
The example is a DFP for NXP's LPC1800 series of microcontrollers. It also contains BSP information and software components, mainly peripheral drivers. Some of the drivers adhere to the CMSIS-Driver standard. This is the layout of the sub-directories:

Directory Content Section in PDSC
Boards CMSIS-RTOS Blinky uVision project running on the MCB1800 development board <examples>
CMSIS_DriverCMSIS-Driver compliant peripheral drivers<component>
Device CMSIS-Core (Cortex-M) files for LPC1800 series <device>
Documents Documentation for devices and boards <book>
Flash Flash Programming and a sub-directory called LPC18xx43xx_IAP containing a uVision project for IAP (In-Application Programming) support<algorithm>
Images Images of the MCB1800 development board <board>
SVD SVD file for LPC1800 series <debug>

PDSC Example File

The PDSC file that is included in the example Pack is called Keil.LPC1800_DFP.pdsc.txt. The extension txt has been added to hide the file from development tools as it is not intended for installation. The file contains the following top level elements:

XML Element Purpose
<package> Publish Pack information like vendor, name, version, etc.
<devices> Define four sub-families with 16 devices in total.
<boards> Show MCB1800 development board information.
<conditions> Declare required conditions for software components.
<components> Include startup/system files, HAL drivers, and CMSIS-Driver 2.0 compliant peripheral drivers.
<examples> Contain a CMSIS-RTOS Blinky example project for uVision running on the MCB1800 development board.

Directory CMSIS_Driver

The CMSIS_Driver directory contains the following CMSIS-Driver compliant peripheral drivers. These drivers are supporting the NXP LPC1800 series:

Driver File Software Component
Ethernet EMAC_LPC18xx.c ::CMSIS-Driver:Ethernet MAC
SPI SSP_LPC18xx.c ::CMSIS-Driver:SPI
I2C I2C_LPC18xx.c ::CMSIS-Driver:I2C
MCI MCI_LPC18xx.c ::CMSIS-Driver:MCI
USART USART_LPC18xx.c ::CMSIS-Driver:USART
USB Device USBD_LPC18xx.c ::CMSIS-Driver:USB Device:USB0/1
USB Host USBH_LPC18xx.c ::CMSIS-Driver:USB Host:USB0/1

The following HAL drivers are required for the implementation of the CMSIS-Driver compliant peripheral drivers:

Driver File Software Component
General purpose DMA driver GPDMA_LPC18xx.c ::Device:GPDMA
General purpose IO driver GPIO_LPC18xx.c ::Device:GPIO
System control unit driver SCU_LPC18xx.c ::Device:SCU

Directory Device

The Device directory has two sub-directories: Include and Source.

File Purpose Software Component
Include\LPC18xx.h LPC1800 series header file ::CMSIS:CORE
Include\system_LPC18xx.h LPC1800 series system header file ::CMSIS:Startup
Source\system_LPC18xx.c LPC1800 series system source file ::CMSIS:Startup
Source\ARM\startup_LPC18xx.s LPC1800 series startup assembler file for ARMCC::CMSIS:Startup
Source\GCC\startup_LPC18xx.S LPC1800 series startup assembler file for GCC ::CMSIS:Startup
Source\IAR\startup_LPC18xx.s LPC1800 series startup assembler file for IAR ::CMSIS:Startup

Directory Documents

This directory incorporates the following documents:

File Purpose Section in PDSC
dui0552a_cortex_m3_dgug.pdf Cortex-M3 Generic User Guide<book> element of the device <family> element
ES_LPC18X0.pdf LPC1800 Errata sheet <book> element of the <device> section
LPC1850_30_20_10.pdf LPC1800 Data sheet <book> element of the <device> section
mcb1800.chm MCB1800/4300 User's Guide <book> element of the <boards> section
MCB1800v1-3-schematics.chm MCB1800 schematics <book> element of the <boards> section
UM10430.pdf User manual for LPC1800 <book> element of the <device> section
Note
Some of these documents are only placeholders for copyright reasons.