CMSIS-Driver
Version 2.04
Peripheral Interface for Middleware and Application Code
|
The API of the CMSIS-Drivers is published in the Driver Header Files.
To simplify the development of a CMSIS-Driver both Driver Template Files and Driver Examples are provided.
ARM offers also a Software Pack for CMSIS-Driver Validation as described in Driver Validation.
The API of each CMSIS-Driver is published in a header file. It is recommended to include the header file that is part of the CMSIS specification in the implementation file of the CMSIS-Driver.
The following header files are available in the directory .\CMSIS\Driver\Include.
Header File | Description |
---|---|
Driver_Common.h | Common Driver Definitions |
Driver_CAN.h | CAN Interface |
Driver_ETH.h | Ethernet Interface |
Driver_ETH_MAC.h | Ethernet MAC Interface |
Driver_ETH_PHY.h | Ethernet PHY Interface |
Driver_Flash.h | Flash Interface |
Driver_I2C.h | I2C Interface |
Driver_MCI.h | MCI Interface |
Driver_NAND.h | NAND Interface |
Driver_SPI.h | SPI Interface |
Driver_SAI.h | SAI Interface |
Driver_USART.h | USART Interface |
Driver_USB.h | USB Interface |
Driver_USBD.h | USB Device Interface |
Driver_USBH.h | USB Host Interface |
Driver template files are code skeletons that provide the structure of a CMSIS-Driver. The following templates are available in the directory .\CMSIS\Driver\DriverTemplates.
Source File | Description |
---|---|
Driver_CAN.c | CAN Interface |
Driver_ETH_MAC.c | Ethernet MAC Interface |
Driver_ETH_PHY.c | Ethernet MAC Interface |
Driver_Flash.c | Flash Interface |
Driver_I2C.c | I2C Interface |
Driver_MCI.c | MCI Interface |
Driver_SAI.c | SAI Interface |
Driver_SPI.c | SPI Interface |
Driver_USART.c | USART Interface |
Driver_USBD.c | USB Device Interface |
Driver_USBH.c | USB Host Interface |
The driver examples are full working CMSIS-Drivers that may be adapted to a different hardware. Examples are currently available for the NXP LPC1800 series and provide the implementation of a complete CMSIS-Driver. The following examples are available in the directory .\CMSIS\Pack\Example\CMSIS_Driver.
Source File | Header File | Description |
---|---|---|
EMAC_LPC18xx.c | EMAC_LPC18xx.h | Ethernet MAC Interface |
SSP_LPC18xx.c | SSP_LPC18xx.h | SPI Interface |
I2C_LPC18xx.c | I2C_LPC18xx.h | I2C Interface |
I2S_LPC18xx.c | I2S_LPC18xx.h | SAI Interface |
MCI_LPC18xx.c | MCI_LPC18xx.h | MCI Interface |
USART_LPC18xx.c | USART_LPC18xx.h | USART Interface |
USBn_LPC18xx.c | USB_LPC18xx.h | common files for USB Device Interface and USB Host Interface |
USBDn_LPC18xx.c | none | USB Device Interface |
USBHn_LPC18xx.c | none | USB Host Interface |
These CMSIS-Drivers use additional modules for GPIO and DMA control:
Source File | Header File | Description |
---|---|---|
GPIO_LPC18xx.c | GPIO_LPC18xx.h | GPIO Interface for LPC1800 series |
GPDMA_LPC18xx.c | none | DMA Interface for LPC1800 series |
SCU_LPC18xx.c | SCU_LPC18xx.h | SCU Interface for LPC1800 series |
The CMSIS-Drivers for the LPC1800 device have also many configuration options that are controls using #define statements in the file .\CMSIS\Pack\Example\CMSIS_Driver\Config\RTE_Device.h. Using this file, the I/O pin and DMA assignment can be set among other parameters such as USB speed and PHY interfaces.
Further driver reference implementations are available in Device Family Packs (DFP) labeled with version 2.0.0 or higher.