/*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/ /** \mainpage Overview This manual explains the scope and the usage of the CMSIS-Driver Validation framework. This is a test suite that helps developers to verify that an implementation of a peripheral driver is compliant with the correposponding **[CMSIS-Driver Specification](https://arm-software.github.io/CMSIS_5/Driver/html/index.html)**. 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 public **[GitHub repository](https://github.com/ARM-software/CMSIS-Driver_Validation)**. Its releases in **[CMSIS Pack format](https://www.open-cmsis-pack.org/)** are also available on **[CMSIS Packs page](https://developer.arm.com/tools-and-software/embedded/cmsis/cmsis-packs)** under *Arm* - *CMSIS Driver Validation* category and can be used in environments supporting the CMSIS-Pack concept. The CMSIS-Driver Validation framework provides: - Configurable validation tests for various CMSIS-Driver interfaces - Example projects that show the usage of the CMSIS-Driver Validation - Various Servers used for testing The CMSIS-Driver Validation tests and verifies: - API interface using the driver capabilities as well as valid and invalid parameters - Data communication with various transfer sizes and communication parameters: - Loopback testing (for some interfaces) for testing of the underlying hardware with usage of a local loopback - Server testing (for some interfaces) for extensive testing of the underlying hardware with usage of a dedicated Server - Transfer speed of the data communication with time measurement of data transfer duration - Event signaling The CMSIS-Driver Validation requires CMSIS-RTOS2 functionality and can be used to verify the setup and configuration of the CMSIS-Driver interfaces in a user system. The diagram below shows an overview of the CMSIS-Driver Validation configuration. \image html cmsis_dv.png The CMSIS-Driver Validation provides validation for the following interfaces: - \ref dv_can "CAN" - Controller Area Network (CAN) interface driver. - \ref dv_eth "Ethernet" - Ethernet MAC and PHY peripheral interface driver. - \ref dv_i2c "I2C" - Inter-Integrated Circuit (I2C) multi-master serial single-ended bus interface driver. - \ref dv_mci "MCI" - Memory Card Interface driver for SD/MMC memory. - \ref dv_spi "SPI" - Serial Peripheral Interface (SPI) driver. - \ref dv_usart "USART" - Universal Synchronous and Asynchronous Receiver/Transmitter (USART) interface driver. - \ref dv_usbd "USB Device" - Universal Serial Bus (USB) Device interface driver. - \ref dv_usbh "USB Host" - Universal Serial Bus (USB) Host interface driver. - \ref dv_wifi "WiFi" - WiFi (Wireless Fidelity Interface) module/shield driver. \note Extensive testing using dedicated Server is available for SPI and USART drivers. This manual assumes that you are familiar with MDK. Refer to MDK Version 5 - Getting Started for additional information. \section doc_structure Document structure This manual contains the following chapters: - \ref setup - Describes the general setup of the CMSIS-Driver Validation test and how to generate test report. - \ref report - Describes the reports produced by the CMSIS-Driver Validation. - \ref debugging - Describes procedure for debugging of the interface drivers using the CMSIS-Driver Validation. - \ref resource_requirements - Lists memory and CMSIS-RTOS2 requirements. - \ref examples - Contains information about several example projects including the required hardware setup. - Reference - Explains the configuration and tests for the various CMSIS-Driver interfaces. \section rev_hist Revision History
| Version | Description |
|---|---|
| V3.0.0 | - Rework USART driver validation (introduced USART_Server) - Add USART_Server application for Keil MCBSTM32F400 evaluation board - Add USART_Server application for STM32F429I-DISC1 board - Update to SPI_Server application (improved robustness, use software controlled Slave Select in Master mode) - Update to SPI driver validation (improved robustness, enable Data Bits tests in loopback mode, align data buffers to 32 bytes) - Add SPI_Server application for STM32F429I-DISC1 board - Add WiFi Driver tests (socket functions in non-blocking mode) - Minor update to WiFi driver validation (less strict SocketAccept and SocektSend tests) - Add SockServer application for IMXRT1050-EVKB - Add pack version information in Test Report - Add support for Arm Cortex-M85 processor based devices - Add support for Arm China Star-MC1 processor based devices - Update examples - Update documentation |
| V2.0.0 | - Remove bundle from components - Change configuration from single file to a file per component - Rework SPI Driver testing (introduced SPI_Server) - Add SPI_Server application for Keil MCBSTM32F400 evaluation board - Update WiFi Driver tests (support for WiFi Driver API V1.1.0) - Update all examples - Deprecate CMSIS-RTOS1 |
| V1.4.0 | - Updated conditions to support all Cortex-M devices - Introduced test groups (each driver is organized in a group) - Improved XSL for XML display - Updated all examples - Removed example for Atmel board - WiFi Driver Testing: Added SockServer application for PC running Microsoft Windows - WiFi Driver Testing: Added upstream and downstream bandwidth testing - WiFi Driver Testing: Added example for Inventek ISM43362 WiFi Driver testing on STMicroelectronics B-L475E-IOT01A1 board - WiFi Driver Testing: Added example for Inventek ISM43362 WiFi Driver testing using ISMART43362-E WiFi shield mounted on NXP LPCXpresso55S69 board - WiFi Driver Testing: Added examples for Espressif ESP8266 and ESP32 WiFi Driver testing with NXP MIMXRT1064-EVK board - WiFi Driver Testing: Added example for WIZnet WizFi360 WiFi Driver testing with NXP MIMXRT1064-EVK board |
| V1.3.0 | - Added WiFi tests |
| V1.2.0 | - Added CMSIS-RTOS2 and Arm Compiler 6 compatibility |
| V1.1.0 | - Added USB Host, CAN and Ethernet Precision Time Protocol tests |
| V1.0.0 | - Initial release for CMSIS-Driver API V2.0 |