CMSIS-Driver Validation  
Driver Validation
 
Loading...
Searching...
No Matches
Setup

Using the Arm CMSIS Solution VS Code extension, create a new solution from template:

Step 1: In the CMSIS extension, click Create a New Solution.

Step 2: Select the Target Board.

Step 3: Under Templates, Reference Applications, and Examples, select Driver Validation (CMSIS-Driver Validation application).

Step 4: Choose Solution Base Folder, click Create.

Step 5: Select the Board Layer that provides required CMSIS Driver, click OK.

Step 6: In the Manage Solution, under Build Type select desired Driver for validation, click Save.

Step 7: Configure the Driver Tests in appropriate DV_..._Config.h file.

Note: ... in DV_..._Config.h file depends on the driver being validated; for example, for Ethernet, the file would be DV_ETH_Config.h file.

For validation configuration of specific driver check respective driver documentation:

Step 8: Setup the required hardware

For the interfaces that support loopback testing: Ethernet, USART and SPI, connect the following pins on your target hardware together (refer to the hardware schematics):

  • Ethernet: RX+ and TX+, RX- and TX-
  • USART: RX and TX
  • SPI: MOSI and MISO

For the interfaces that support testing with dedicated server: WiFi, SPI and USART connect the related hardware as required by the related server:

  • USART: Tx, Rx, GND and optionally CLK, CTS, RTS, DCD and RI lines as described in USART Server
  • SPI: MOSI, MISO, SCLK, SS, GND to the same lines on the SPI Server
  • WiFi: WiFi module has to be in close proximity to the Access Point which is in the same network as the required SockServer

Step 9: Build and Run the application

Example below shows output results (in STDOUT channel) of an Ethernet driver testing :

CMSIS-Driver_Validation v3.1.0 CMSIS-Driver ETH Test Report   Oct  9 2025   07:30:34 

TEST 01: ETH_MAC_GetVersion               
  DV_ETH.c (267): [INFO] API version 2.2, Driver version 3.1
                                          PASSED
TEST 02: ETH_MAC_GetCapabilities          PASSED
TEST 03: ETH_MAC_Initialization           PASSED
TEST 04: ETH_MAC_PowerControl             
  DV_ETH.c (366): [WARNING] Low power is not supported
                                          PASSED
TEST 05: ETH_MAC_MacAddress               PASSED
TEST 06: ETH_MAC_SetBusSpeed              
  DV_ETH.c (445): [WARNING] Link speed 1G is not supported
                                          PASSED
TEST 07: ETH_MAC_Config_Mode              PASSED
TEST 08: ETH_MAC_Config_CommonParams      PASSED
TEST 09: ETH_MAC_Control_Filtering        PASSED
TEST 10: ETH_MAC_SetAddressFilter         PASSED
TEST 11: ETH_MAC_VLAN_Filter              
  DV_ETH.c (910): [WARNING] Received non VLAN tagged frame
                                          PASSED
TEST 12: ETH_MAC_SignalEvent              PASSED
TEST 13: ETH_MAC_PTP_ControlTimer         
  DV_ETH.c (1412): [WARNING] Precision Time Protocol is not supported
                                          NOT EXECUTED
TEST 14: ETH_MAC_CheckInvalidInit         PASSED
TEST 15: ETH_PHY_GetVersion               
  DV_ETH.c (1018): [INFO] API version 2.2, Driver version 1.3
                                          PASSED
TEST 16: ETH_PHY_Initialization           PASSED
TEST 17: ETH_PHY_PowerControl             
  DV_ETH.c (1114): [WARNING] Low power is not supported
  DV_ETH.c (1131): [WARNING] MAC is locked when PHY power is off
                                          PASSED
TEST 18: ETH_PHY_Config                   PASSED
TEST 19: ETH_PHY_CheckInvalidInit         PASSED
TEST 20: ETH_Loopback_Transfer            PASSED
TEST 21: ETH_Loopback_PTP                 
  DV_ETH.c (1574): [WARNING] Precision Time Protocol is not supported
                                          NOT EXECUTED
TEST 22: ETH_Loopback_External            PASSED

Test Summary: 22 Tests, 20 Passed, 0 Failed.
Test Result: PASSED