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: https://github.com/arm-software/CMSIS-Driver.

License

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
2.7.2
  • Added Renesas DA16200 WiFi driver
  • Updated Inventek ISM43362 WiFi driver (version 1.14.0):
    • Added statically allocated control block for asynchronous thread if FreeRTOS is used
2.7.1
  • Added support for Arm Cortex-M85 processor based devices
  • Added support for Arm China Star-MC1 processor based devices
2.7.0
  • Added PHY_LAN8740A driver
  • Added ETH_LAN91C111 driver
  • Updated ETH_KSZ8851SNL and ETH_LAN9220 drivers:
    • Corrected invalid power status in MAC_PowerControl
  • Updated ESP8266 WiFi driver:
    • Fixed Activate to use BSSID specified in SetOption with ARM_WIFI_BSSID
  • Updated ESP8266, ESP32 and WizFi360 WiFi drivers:
    • Fixed return string null terminator in GetModuleInfo
    • Fixed SocketSendTo for stream socket lengths above 2048 bytes
    • Enabled placement of USART transfer buffers in appropriate RAM by using section ".bss.driver.usartn" (n = USART driver instance number) in the linker scatter file
  • Updated Inventek ISM43362 WiFi driver (version 1.11.0):
    • Supports also ISM43340 Module
    • Added support for 5 GHz channels on Access Point
    • Fixed socket connect operation for non-blocking mode
    • Enabled placement of SPI transfer buffers in appropriate RAM by using section ".bss.driver.spin" (n = SPI driver instance number) in the linker scatter file
    • Detected ISM43362 Module on STMicroelectronics B-L475E-IOT01A1 firmware limitation: SocketConnect does not work if first or last octet of IP address is 0 (for example IPs 0.x.y.z or x.y.z.0 do not work)
    • Detected shield firmware limitation: SocketConnect does not work if certain IP address octets contain value 0 or 255 (combinations that do not work: 0.x.y.z, x.y.z.0, 255.x.y.z)
    • Updated CMSIS Driver Validation test results
2.6.1
  • 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)
2.6.0
  • 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 6.2.1.7 is supported
  • Documented firmware update procedure for Inventek ISMART43362-E WiFi Shield
2.5.0
  • 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
2.4.1
  • Updated Inventek ISM43362 WiFi driver
  • Corrected PHY_LAN8742A power down bit definition
2.4.0
  • Added Inventek ISM43362 WiFi driver
  • Added support for Cortex-M1
2.3.0
  • 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
2.2.1
  • Added web link to hardware documentation for CMSIS-Driver components
2.2.0
  • Documentation added
  • Set Cvendor to "Keil" in all driver components for ease of migration of existing projects
2.1.0
  • Initial public release
2.0.0
  • Initial internal release