Developers can use CMSIS-Driver Validation framework to verify that an implementation of a peripheral driver is compliant with the corresponding CMSIS-Driver Specification. Verified drivers can then be reliably used with middleware components and user applications that rely on CMSIS-Driver APIs.
The CMSIS-Driver Validation is maintained in a separate public GitHub repository, and is also released as a CMSIS Software Pack named ARM::CMSIS-Driver_Validation.
This page gives an overview about driver validation. Refer to CMSIS-Driver Validation Guide) for full documentation.
The CMSIS-Driver Validation Suite performs the following tests:
- Generic Validation of API function calls
- Validation of Configuration Parameters
- Validation of Communication with loopback tests
- Validation of Communication Parameters such as baudrate
- Validation of Event functions
The following CMSIS-Drivers can be tested with the current release:
Sample Test Output
The Driver Validation output can be printed to a console or saved in an XML file, via standard output (usually ITM).
CMSIS-Driver USART Test Report Dec 6 2019 11:44:30
TEST 01: USART_GetCapabilities PASSED
TEST 02: USART_Initialization PASSED
TEST 03: USART_PowerControl
DV_USART.c (301): [WARNING] Low power is not supported
PASSED
TEST 04: USART_Config_PolarityPhase PASSED
TEST 05: USART_Config_DataBits
DV_USART.c (387): [WARNING] Data Bits = 9 are not supported
PASSED
TEST 06: USART_Config_StopBits
DV_USART.c (425): [WARNING] Stop Bits = 1.5 are not supported
DV_USART.c (429): [WARNING] Stop Bits = 0.5 are not supported
PASSED
TEST 07: USART_Config_Parity PASSED
TEST 08: USART_Config_Baudrate PASSED
TEST 09: USART_Config_CommonParams PASSED
TEST 10: USART_Send PASSED
TEST 11: USART_AsynchronousReceive PASSED
TEST 12: USART_Loopback_CheckBaudrate PASSED
TEST 13: USART_Loopback_Transfer PASSED
TEST 14: USART_CheckInvalidInit PASSED
Test Summary: 14 Tests, 14 Passed, 0 Failed.
Test Result: PASSED
Setup for Loop Back Communication
To perform loop back communication tests it is required to connect the input and the output of the peripherals as shown in this table:
Peripheral | Loop Back Configuration |
Ethernet | Connect TX+ (Pin 1) with RX+ (Pin 3), TX- (Pin 2) with RX- (Pin 6) |
SPI | Connect MISO to MOSI |
USART | Connect TX with RX |
The following picture shows the necessary external loop back connections for the Keil MCBSTM32F400 evaluation board:
- SPI: PB14 (SPI2_MISO) and PB15 (SPI2_MOSI)
- USART: PB6 (USART1_TX) and PB7 (USART1_RX)
- Ethernet: Pin 1 (TX+) and Pin 3 (RX+), Pin 2 (TX-) and Pin 6 (RX-)
Connections for Loop Back Communication Tests on Keil MCBSTM32F400