1 # CMSIS-Driver Validation
3 Test suite for verifying that a peripheral driver implementation is compliant with the corresponding [CMSIS-Driver Specification](https://arm-software.github.io/CMSIS_5/Driver/html/index.html).
6 The branch **main** of this repository contains the code of CMSIS-Driver Validation Suite. [User documentation](http://arm-software.github.io/CMSIS-Driver_Validation/main/index.html) explains the scope and the usage of the framework.
8 [See verified releases](https://github.com/ARM-software/CMSIS-Driver_Validation/releases) of CMSIS-Driver Validation suite in source code archives and in [CMSIS-Pack (.pack)](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/index.html) format as download assets.
10 Feel free to raise an [issue on GitHub](https://github.com/ARM-software/CMSIS-Driver_Validation/issues) to report a misbehavior (i.e. bugs), start discussions about enhancements or create a pull request with suggested modifications.
12 ### Supported Driver Interfaces
14 The CMSIS-Driver Validation provides tests for the following CMSIS-Driver interfaces:
16 Extensive tests with available test servers:
17 - **SPI** - Serial Peripheral Interface driver.
18 - **USART** - Universal Synchronous and Asynchronous Receiver/Transmitter interface driver.
19 - **WiFi** - Wireless Fidelity Interface module/shield driver.
22 - **CAN** - Controller Area Network interface driver.
23 - **Ethernet** - Ethernet MAC and PHY peripheral interface driver.
24 - **I2C** - Inter-Integrated Circuit multi-master serial single-ended bus interface - driver.
25 - **MCI** - Memory Card Interface driver for SD/MMC memory.
26 - **USB Device** - Universal Serial Bus Device interface driver.
27 - **USB Host** - Universal Serial Bus Host interface driver.
30 ## Repository Structure
32 | Directory/File | Content |
33 | --------------------- | --------------------------------------------------------- |
34 | [`Boards`](./Boards/) | Driver Validation examples for various boards |
35 | [`Config`](./Config/) | Configuration files for the Driver Validation framework |
36 | [`Documentation`](./Documentation) | Placeholder for the offline documentation in the pack |
37 | [`DoxyGen`](./Doxygen) | Source of the documentation |
38 | [`Include`](./Include) | Header files for Driver Validation components |
39 | [`Scripts`](./Scripts) | Script files for XML reports |
40 | [`Source`](./Source) | Source files for Driver Validation components |
41 | [`Tools`](./Tools) | Various Server implementations for extensive testing |
42 | [`ARM.CMSIS-Driver_Validation.pdsc`](./ARM.CMSIS-Driver_Validation.pdsc) | Open-CMSIS-Pack description file |
43 | [`gen_pack.sh`](./gen_pack.sh) | Open-CMSIS-Pack generation script |
44 | [`LICENSE.txt`](./LICENSE.txt) | License text for the repository content |
50 Folder [`Boards`](./Boards/) contains example projects that show how to use the CMSIS-Driver Validation on a real hardware with available CMSIS-Driver implementations.The examples are also included in CMSIS-Driver Validation Software Pack. Details are explained in [Examples documentation](https://arm-software.github.io/CMSIS-Driver_Validation/main/examples.html).
52 ## Build CMSIS-Driver Validation as Open-CMSIS-Pack
54 A generator script [`gen_pack.sh`](./gen_pack.sh) is provided for building the CMSIS-Driver Validation as [Open-CMSIS-Pack](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html/index.html) using the [gen-pack library](https://github.com/Open-CMSIS-Pack/gen-pack). Simply follow the steps below:
56 - Verify that following tools are installed on the PC:
57 - git bash (e.g. for Windows: https://gitforwindows.org/)
58 - ZIP archive creation utility (e.g. [7-Zip](http://www.7-zip.org/download.html))
59 - Doxygen version 1.9.2 (https://sourceforge.net/projects/doxygen/files/rel-1.9.2/)
60 - Checkout this repository. For example in git bash with:
61 ```git clone https://github.com/ARM-Software/CMSIS-Driver_Validation```
62 - In the local repository folder execute `./gen_pack.sh` in the bash shell.
63 - this creates a pack file in the local `output` folder. For example `./output/ARM.CMSIS-Driver_Validation.3.0.1-dev12+g3725082.pack`.
67 Arm CMSIS-Driver Validation is licensed under [Apache 2.0 license](https://opensource.org/licenses/Apache-2.0).
71 | Link | Description |
72 |:--------------------------- |:----------------------------------------------------------- |
73 | [CMSIS](https://github.com/ARM-software/cmsis_5) | CMSIS GitHub repository |
74 | [CMSIS-Driver Specification](https://arm-software.github.io/CMSIS_5/latest/Driver/html/index.html) | Specification of CMSIS-Driver API |
75 | [CMSIS-Driver](https://github.com/ARM-software/CMSIS-Driver) | Reference CMSIS-Driver implementations for external peripheral devices |
76 | [Open-CMSIS-Pack](https://www.open-cmsis-pack.org) | Overview of the Open-CMSIS-Pack project|