CMSIS-Driver Implementations  Version 2.6.1
MCU independent device driver implementations and template files of the CMSIS-Driver API specification
 All Pages
CMSIS-Driver Implementations Documentation

The CMSIS-Driver specification is a software API that describes peripheral driver interfaces for middleware stacks and user applications.

This software pack contains actual CMSIS-Driver implementations for various devices. It is publicly hosted on GitHub and interested parties are welcome to push their drivers to this repository:


The CMSIS is provided free of charge by Arm under Apache 2.0 license. View the Apache 2.0 License.

ARM::CMSIS-Driver Pack

The ARM::CMSIS-Driver Pack contains the following:

File/Directory Content
ARM.CMSIS-Driver.pdsc Package description file in CMSIS-Pack format.
LICENSE.txt CMSIS license agreement (Apache 2.0)
Config Configuration files for I2C, NAND, and SPI bus implementations
Documentation This documentation
ETH Ethernet driver implementations
Flash Flash memory driver implementations
I2C I2C driver implementations
NAND NAND driver implementations
SPI SPI driver implementations
Utilities Utilities for generating the pack
WiFi WiFi driver implementations

Revision History

Version Description
  • Updated ESP8266, ESP32 and WizFi360 WiFi drivers:
    • Added auto protocol selection in SocketCreate
    • Fixed socket default timeout (zero == no time out)
    • Fixed SocketRecv/RecvFrom non blocking mode when received less than buffer length
  • Updated Inventek ISM43362 WiFi driver (version 1.9.0):
    • Corrected Initialize function failure if called shortly after reset
    • Corrected default protocol selection in SocketCreate function
    • Detected STM firmware limitation: SocketConnect does not work if any of IP address octets is 255 (for example IP like x.y.z.255)
  • Updated ESP8266, ESP32 and WizFi360 WiFi drivers:
    • API V1.1: SocketSend/SendTo and SocketRecv/RecvFrom (support for polling)
    • Added DHCP setting before station Activate
    • Added read of DHCP assigned IPs after station activate
    • Fixed serial tx busy flag handling
    • Fixed function AT_Resp_ConnectAP for NULL argument
    • Enhanced serial communication startup procedure
  • Updated Inventek ISM43362 WiFi driver (version 1.8.0):
    • API V1.1: SocketSend/SendTo and SocketRecv/RecvFrom (support for polling)
    • Corrected GetModuleInfo return string termination
    • Corrected functionality when DATARDY line is used in polling mode
    • Corrected SocketConnect function never returning 0 in non-blocking mode
    • Corrected SocketRecv/SocketRecvFrom function polling if called without previous Bind
    • Corrected delay after module reset
    • For non-STM firmware variant only firmware version is supported
  • Documented firmware update procedure for Inventek ISMART43362-E WiFi Shield
  • Added Espressif ESP32 WiFi driver
  • Added Espressif ESP8266 WiFi driver
  • Added Wiznet WizFi360 WiFi driver
  • Updated Inventek ISM43362 WiFi driver (version 1.3.0):
    • Fixed SocketClose functionality
    • Fixed Activate function not to set password if OPEN security is used
    • Updated Initialization function to handle unavailable reset pin
    • Added debug of SPI traffic with Event Recorder
    • Added CMSIS Driver Validation test results
  • Updated Inventek ISM43362 WiFi driver
  • Corrected PHY_LAN8742A power down bit definition
  • Added Inventek ISM43362 WiFi driver
  • Added support for Cortex-M1
  • NAND MemoryBus driver updated:
    • Fixed Ready/Busy configuration handling
    • Enhanced compatibility for ARM Compiler 6
  • Flash Drivers updated:
    • Added data cache handling to memory bus based drivers
    • Fixed warnings flagged by ARM Compiler 6
  • Added web link to hardware documentation for CMSIS-Driver components
  • Documentation added
  • Set Cvendor to "Keil" in all driver components for ease of migration of existing projects
  • Initial public release
  • Initial internal release