]> begriffs open source - cmsis-driver-validation/blob - DoxyGen/src/DriverValidation.txt
Add GPIO CMSIS-Driver Validation tests (#13)
[cmsis-driver-validation] / DoxyGen / src / DriverValidation.txt
1 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
2 /**
3 \mainpage Overview
4
5 This manual explains the scope and the usage of the <b>CMSIS-Driver Validation</b> framework. This is a test suite that helps developers to verify that an implementation of a peripheral driver is compliant with the corresponding **[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.
6
7 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.
8
9 The CMSIS-Driver Validation framework provides:
10   - Configurable validation tests for various CMSIS-Driver interfaces
11   - Example projects that show the usage of the CMSIS-Driver Validation
12   - Various Servers used for testing
13
14 The CMSIS-Driver Validation tests and verifies:
15   - <b>API interface</b> using the driver capabilities as well as valid and invalid parameters
16   - <b>Data communication</b> with various transfer sizes and communication parameters:
17     - <b>Loopback testing</b> (for some interfaces) for testing of the underlying hardware with usage of a local loopback
18     - <b>Server testing</b> (for some interfaces) for extensive testing of the underlying hardware with usage of a dedicated Server
19   - <b>Transfer speed</b> of the data communication with time measurement of data transfer duration
20   - <b>Event</b> signaling
21
22 The CMSIS-Driver Validation requires
23 <a href="https://arm-software.github.io/CMSIS_5/RTOS2/html/index.html" target="_blank">CMSIS-RTOS2</a> functionality and can be used to verify the setup and configuration of the CMSIS-Driver interfaces in a user system.
24
25 The diagram below shows an overview of the CMSIS-Driver Validation configuration.
26
27 \image html cmsis_dv.png
28
29 The CMSIS-Driver Validation provides validation for the following interfaces:
30   - \ref dv_can   "CAN"        - Controller Area Network (CAN) interface driver.
31   - \ref dv_eth   "Ethernet"   - Ethernet MAC and PHY peripheral interface driver.
32   - \ref dv_gpio  "GPIO"       - General Purpose Input-Output interface driver.
33   - \ref dv_i2c   "I2C"        - Inter-Integrated Circuit (I2C) multi-master serial single-ended bus interface driver.
34   - \ref dv_mci   "MCI"        - Memory Card Interface driver for SD/MMC memory.
35   - \ref dv_spi   "SPI"        - Serial Peripheral Interface (SPI) driver.
36   - \ref dv_usart "USART"      - Universal Synchronous and Asynchronous Receiver/Transmitter (USART) interface driver.
37   - \ref dv_usbd  "USB Device" - Universal Serial Bus (USB) Device interface driver.
38   - \ref dv_usbh  "USB Host"   - Universal Serial Bus (USB) Host interface driver.
39   - \ref dv_wifi  "WiFi"       - WiFi (Wireless Fidelity Interface) module/shield driver.
40
41 \note Extensive testing using dedicated Server is available for SPI and USART drivers.
42
43 This manual assumes that you are familiar with MDK. Refer to
44 <a href="https://developer.arm.com/documentation/KGS1" target="_blank">MDK Version 5 - Getting Started</a> for additional information.
45
46 \section doc_structure Document structure
47
48 This manual contains the following chapters:
49   - \ref setup                 - Describes the general setup of the CMSIS-Driver Validation test and how to generate test report.
50   - \ref report                - Describes the reports produced by the CMSIS-Driver Validation.
51   - \ref debugging             - Describes procedure for debugging of the interface drivers using the CMSIS-Driver Validation.
52   - \ref resource_requirements - Lists memory and CMSIS-RTOS2 requirements.
53   - \ref examples              - Contains information about several example projects including the required hardware setup.
54   - <a class="el" href="./modules.html">Reference</a> - Explains the configuration and tests for the various CMSIS-Driver interfaces.
55
56 \section License License
57
58 The CMSIS Driver example implementations are provided free of charge under Apache 2.0 license.
59 See the <a href="LICENSE.txt">Apache 2.0 License</a>.
60
61 */
62 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
63 /**
64 \page setup Setup
65
66 \section step1 Step 1: Create an MDK project for your target microcontroller device
67
68
69 \section step2 Step 2: Add the required software components
70
71 For proper operation, add the following software components in the <b>Manage Run-Time Environment</b> window:
72 - <b>CMSIS Driver Validation: Framework</b>
73 - <b>CMSIS Driver Validation: driver</b>, driver interfaces to be tested
74 - <b>CMSIS Driver: driver</b>, driver implementations to be tested
75 - <b>CMSIS: RTOS2 (API): Keil RTX5</b>
76 - <b>Compiler: I/O: STDOUT</b>, variant \b ITM (if your hardware does not support ITM select \b EVR to use Event Recorder instead of ITM)
77 - Resolve any unresolved component dependencies
78
79
80 \section step3 Step 3: Add the application's main file (main.c)
81
82 Right-click <b>Source Group 1...</b> and select <b>Add New Item to Group</b>, select <b>User Code Template</b> and choose the
83 <b>CMSIS-RTOS2 'main' function</b> file from <b>CMSIS: RTOS2:Keil RTX5</b>.
84
85 Add this include:
86 \code
87 #include "cmsis_dv.h"
88 \endcode
89
90 In the <c>app_main</c> function, create the \c cmsis_dv thread, before endless <c>for</c> loop:
91 \code
92 osThreadNew(cmsis_dv, NULL, NULL);
93 \endcode
94 to run all the tests that you have chosen in the next step.
95
96
97 \section step4 Step 4: Configure the CMSIS-Driver Validation framework in DV_Config.h file
98
99 Open <b>DV_Config.h</b> under the <b>CMSIS Driver Validation</b> group in the Project window.
100
101 In the configuration file <b>DV_Config.h</b> select <b>Plain Text</b> as the <b>Report Format</b>.
102
103 \section step5 Step 5: Configure the interface settings and tests in related DV_interface_Config.h files
104
105 Each interface has a related <b>DV_<i>interface</i>_Config.h</b> file, where <i>interface</i> represents interface's acronym or abbreviation.<br>
106 For example for Serial Peripheral Interface (SPI) related config file name is DV_SPI_Config.h.
107
108 For details on interface specific configuration and test selection please check the Configuration section in the
109 <a class="el" href="./modules.html">Reference</a> of the related interface.
110
111
112 \section step6 Step 6: Configure the Heap memory
113
114 Depending on the buffer sizes used for data transfer tests the heap size has to be adjusted to provide enough memory for these
115 buffers to be allocated.<br>
116 Depending on how heap is configured in your system, open your <b>startup_\<device\>.s</b> or <b>startup_\<device\>.c</b> file from the \b Device group in the \b Project window
117 or use a <b>linker script</b> to adjust the heap size.<br>
118 Set the <b>heap size</b> to minimum of <b>16384</b> bytes.
119
120 For details on heap requirements please refer to the \ref heap_req "Heap Memory requirements" documentation.
121
122
123 \section step7 Step 7: Configure the CMSIS-RTOS2 (Keil RTX5)
124
125 Open <b>RTX_Config.h</b> and set:
126 - <b>System Configuration: Global Dynamic Memory size [bytes]</b> to \a 16384
127 - <b>Thread configuration: Default Thread stack size [bytes]</b> to \a 3072
128
129 For details on CMSIS-RTOS2 requirements please refer to the \ref rtos2_req "CMSIS-RTOS2 requirements" documentation.
130
131 \section step8 Step 8: Configure the Device
132
133 Depending on your device, you might have different pin/hardware configuration options. Usually, you can configure the device
134 using the \c RTE_Device.h file from the \b Device group or with a vendor provided pin configuration tool.
135 Enable all interfaces you wish to test and make all necessary pin-out changes required by your actual board layout (consult the board schematics).<br>
136 You can check the provided \ref examples "examples" as a reference point.
137
138 For a robust test with good coverage, implement various targets with different settings:
139 - Use <b>non-DMA (IRQ)</b> and <b>DMA</b> configurations if they are available on the driver
140 - Use different compiler <b>optimization levels</b> in the
141   <a href="http://www.keil.com/support/man/docs/uv4/uv4_dg_adscc.htm" target="_blank">C/C++ tab</a> of the
142   <b>Options for Target</b> dialog
143
144
145 \section step9 Step 9: Setup the required hardware
146
147 For the interfaces that support loopback testing: \ref dv_eth "Ethernet", \ref dv_usart "USART" and \ref dv_spi "SPI",
148 connect the following pins on your target hardware together (refer to the hardware schematics):
149
150 - Ethernet: RX+ and TX+, RX- and TX-
151 - USART:    RX and TX
152 - SPI:      MOSI and MISO
153
154 For the interfaces that support testing with dedicated server: \ref dv_wifi "WiFi" and \ref dv_spi "SPI",
155 connect the related hardware as required by the related server:
156
157 - WiFi: WiFi module has to be in close proximity to the Access Point which is in the same network as the required \ref wifi_sock_setup
158 - SPI:  MOSI, MISO, SCLK, SS, GND to the same lines on the \ref spi_server
159
160
161 \section step10 Step 10: Download and Run the Project
162
163 In the <b>Options for Target</b> dialog, under debug settings, if you use ITM as standard output channel ensure that
164 \b Trace and <b>ITM port 0</b> are enabled and that the correct <b>Core Clock</b> frequency is set:
165
166 \image html target_dialog.png "ITM Channel setting"
167
168 Build, load and run the project. The output is displayed in the <b>Debug (printf) Viewer</b> window.<br>
169 Example below shows output result of an SPI driver testing:
170 \verbatim
171 CMSIS-Driver_Validation v3.0.0 CMSIS-Driver SPI Test Report   March  30 2022   13:44:11
172
173 TEST 01: SPI_GetVersion
174   DV_SPI.c (1023): [INFO] Driver API version 2.3, Driver version 2.15
175                                           PASSED
176 TEST 02: SPI_GetCapabilities              PASSED
177 TEST 03: SPI_Initialize_Uninitialize      PASSED
178 TEST 04: SPI_PowerControl
179   DV_SPI.c (1314): [WARNING] PowerControl (ARM_POWER_LOW) is not supported
180                                           PASSED
181 TEST 05: SPI_Mode_Master_SS_Unused        PASSED
182 TEST 06: SPI_Mode_Master_SS_Sw_Ctrl       PASSED
183 TEST 07: SPI_Mode_Master_SS_Hw_Ctrl_Out   PASSED
184 TEST 08: SPI_Mode_Master_SS_Hw_Mon_In     PASSED
185 TEST 09: SPI_Mode_Slave_SS_Hw_Mon         PASSED
186 TEST 10: SPI_Mode_Slave_SS_Sw_Ctrl        PASSED
187 TEST 11: SPI_Format_Clock_Pol0_Pha0       PASSED
188 TEST 12: SPI_Format_Clock_Pol0_Pha1       PASSED
189 TEST 13: SPI_Format_Clock_Pol1_Pha0       PASSED
190 TEST 14: SPI_Format_Clock_Pol1_Pha1       PASSED
191 TEST 15: SPI_Format_Frame_TI              PASSED
192 TEST 16: SPI_Format_Clock_Microwire       NOT EXECUTED
193 TEST 17: SPI_Data_Bits_1                  NOT EXECUTED
194 TEST 18: SPI_Data_Bits_2                  NOT EXECUTED
195 TEST 19: SPI_Data_Bits_3                  NOT EXECUTED
196 TEST 20: SPI_Data_Bits_4                  NOT EXECUTED
197 TEST 21: SPI_Data_Bits_5                  NOT EXECUTED
198 TEST 22: SPI_Data_Bits_6                  NOT EXECUTED
199 TEST 23: SPI_Data_Bits_7                  NOT EXECUTED
200 TEST 24: SPI_Data_Bits_8                  PASSED
201 TEST 25: SPI_Data_Bits_9                  NOT EXECUTED
202 TEST 26: SPI_Data_Bits_10                 NOT EXECUTED
203 TEST 27: SPI_Data_Bits_11                 NOT EXECUTED
204 TEST 28: SPI_Data_Bits_12                 NOT EXECUTED
205 TEST 29: SPI_Data_Bits_13                 NOT EXECUTED
206 TEST 30: SPI_Data_Bits_14                 NOT EXECUTED
207 TEST 31: SPI_Data_Bits_15                 NOT EXECUTED
208 TEST 32: SPI_Data_Bits_16                 PASSED
209 TEST 33: SPI_Data_Bits_17                 NOT EXECUTED
210 TEST 34: SPI_Data_Bits_18                 NOT EXECUTED
211 TEST 35: SPI_Data_Bits_19                 NOT EXECUTED
212 TEST 36: SPI_Data_Bits_20                 NOT EXECUTED
213 TEST 37: SPI_Data_Bits_21                 NOT EXECUTED
214 TEST 38: SPI_Data_Bits_22                 NOT EXECUTED
215 TEST 39: SPI_Data_Bits_23                 NOT EXECUTED
216 TEST 40: SPI_Data_Bits_24                 NOT EXECUTED
217 TEST 41: SPI_Data_Bits_25                 NOT EXECUTED
218 TEST 42: SPI_Data_Bits_26                 NOT EXECUTED
219 TEST 43: SPI_Data_Bits_27                 NOT EXECUTED
220 TEST 44: SPI_Data_Bits_28                 NOT EXECUTED
221 TEST 45: SPI_Data_Bits_29                 NOT EXECUTED
222 TEST 46: SPI_Data_Bits_30                 NOT EXECUTED
223 TEST 47: SPI_Data_Bits_31                 NOT EXECUTED
224 TEST 48: SPI_Data_Bits_32                 NOT EXECUTED
225 TEST 49: SPI_Bit_Order_MSB_LSB            PASSED
226 TEST 50: SPI_Bit_Order_LSB_MSB            PASSED
227 TEST 51: SPI_Bus_Speed_Min                PASSED
228 TEST 52: SPI_Bus_Speed_Max
229   DV_SPI.c (3524): [WARNING] At requested bus speed of 10000000 bps, effective bus speed is 6477809 bps
230                                           PASSED
231 TEST 53: SPI_Number_Of_Items              PASSED
232 TEST 54: SPI_Abort                        PASSED
233 TEST 55: SPI_DataLost                     PASSED
234 TEST 56: SPI_ModeFault                    PASSED
235
236 Test Summary: 56 Tests, 25 Passed, 0 Failed.
237 Test Result: PASSED
238 \endverbatim
239
240 */
241 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
242 /**
243 \page report Report
244
245 The CMSIS-Driver Validation can output the test report in a <b>Plain Text</b> format or as an <b>XML</b> formatted file.<br>
246 Selection of the output report type is done in the <b>DV_Config.h</b> configuration file.
247
248 \image html dv_config_h.png "Configuration file DV_Config.h in Configuration Wizard view mode"
249
250 The <b>Plain Text</b> selection instructs the CMSIS-Driver Validation framework to generate a plain text report
251 which can be seen in the <b>Debug (printf) Viewer</b> window and is mostly used for driver debugging purposes
252 but can also be used as a final report.
253
254 The <b>XML</b> selection instructs the CMSIS-Driver Validation framework to generate an XML formatted report
255 which is meant to be used as a final report and can be viewed nicely in any Web browser.<br>
256
257 The report file can be written into a <b>TestReport.xml</b> file directly by the uVision with an additional debugger script
258 called <b>SaveXML.ini</b> which needs to be specified as <b>Initialization File:</b> for the <b>Debugger</b> in the
259 <b>Options for target</b> dialog, or it can be copy-pasted manually from the <b>Debug (printf) Viewer</b> window to
260 the TestReport.xml file.<br>
261 The SaveXML.ini script can be found in <c>\<pack root directory\></c><b>\\Scripts</b> directory.
262
263 To view <b>TestReport.xml</b> file in a Web browser an additional style sheet <b>TR_Style.xsl</b> file needs to be
264 in the same directory as the TestReport.xml file.<br>
265 The TR_Style.xsl file contains the description of formatting for the Web browser to display the TestReport.xml report and
266 can be found in <c>\<pack root directory\></c><b>\\Scripts</b> directory.
267
268
269 The XML file uses coloring to differentiate the results in the following way:
270  - <span style="font-weight:bold; color:Green">Passed</span> status means that test function has passed successfully.
271  - <span style="font-weight:bold; color:DarkOrange">Passed</span> status means that test function has passed but there were some warnings
272      (<c>More details</c> can be used to see the details about warnings).
273  - <span style="font-weight:bold; color:Blue">Not executed</span> status means that test function did not check any assertions.
274  - <span style="font-weight:bold; color:Red">Failed</span> status means that test function has failed
275      (<c>More details</c> can be used to see the details on reasons of failure).
276
277 */
278 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
279 /**
280 \page debugging Debugging
281
282 After running the CMSIS-Driver Validation output report is used to see if the driver is compliant to the CMSIS-Driver specification.
283
284 If the result of the driver testing under <c>Test Summary</c> contains any <c>Failed</c> tests then the driver needs to be corrected.
285
286 Example of report in the Plain Text format of a non-compliant SPI driver:
287 \verbatim
288 CMSIS-Driver SPI Test Report   May  6 2020   10:47:11
289
290 TEST 01: SPI_GetVersion
291   DV_SPI.c (1023): [INFO] Driver API version 2.3, Driver version 2.15
292                                           PASSED
293 TEST 02: SPI_GetCapabilities              PASSED
294 TEST 03: SPI_Initialize_Uninitialize
295   DV_SPI.c (1106): [FAILED]
296   DV_SPI.c (1109): [FAILED]
297   DV_SPI.c (1112): [FAILED]
298                                           FAILED
299 TEST 04: SPI_PowerControl
300   DV_SPI.c (1314): [WARNING] PowerControl (ARM_POWER_LOW) is not supported
301                                           PASSED
302 ...
303
304 Test Summary: 56 Tests, 24 Passed, 1 Failed.
305 Test Result: FAILED
306 \endverbatim
307
308 From previous report it is clear that one test function has failed.<br>
309 By Inspecting the details in previous report it is clear that <c>TEST 03: SPI_Initialize_Uninitialize</c> has failed
310 on multiple assertions.<br>
311 Each failed assertion is recorded as a single  line in the test report.<br>
312 The failed assert information in the output report contains additional information about the <b>source module</b> and <b>line</b>
313 in that module where the assertion is located with additional debugging info if available.
314
315 The documentation can be consulted regarding the failed function, for example in previous case
316 documentation on the \ref SPI_Initialize_Uninitialize can be consulted.
317
318 Main way of fixing the driver consists of opening reported file mentioned as failed and inspecting the
319 line in which failure was reported.
320
321 If there are many failures, it is recommended to deselect all tests except first failing one
322 so it is easier to focus on just that failure.
323 Also, selecting only first failing test removes potential clutter from following failing tests that
324 are all failing due to same cause.
325
326 In the previous report, opening <b>DV_SPI.c</b> module (available in the project) and inspecting the <b>1106</b> line
327 which states:
328 \verbatim
329   // Driver is uninitialized and peripheral is powered-off:
330   // Call PowerControl(ARM_POWER_FULL) function and assert that it returned ARM_DRIVER_ERROR status
331   TEST_ASSERT(drv->PowerControl (ARM_POWER_FULL) == ARM_DRIVER_ERROR);
332 \endverbatim
333
334 informs us that call to <c>PowerControl (ARM_POWER_FULL)</c>, when driver is not initialized, is expected to
335 return <c>ARM_DRIVER_ERROR</c> status code but it has returned a different status code instead.
336
337 We should put a breakpoint to this line and start the debug session.<br>
338 When the breakpoint is hit we can see that a call to <c>PowerControl (ARM_POWER_FULL)</c> has returned <c>ARM_DRIVER_OK</c>
339 instead of expected <c>ARM_DRIVER_ERROR</c> status code.
340
341 We can now go into source code of the driver and fix this.
342
343 After we have fixed the driver, the report now looks like below:
344
345 \verbatim
346 CMSIS-Driver SPI Test Report   May  6 2020   11:15:30
347
348 TEST 01: SPI_GetVersion
349   DV_SPI.c (1023): [INFO] Driver API version 2.3, Driver version 2.15
350                                           PASSED
351 TEST 02: SPI_GetCapabilities              PASSED
352 TEST 03: SPI_Initialize_Uninitialize      PASSED
353 TEST 04: SPI_PowerControl
354   DV_SPI.c (1314): [WARNING] PowerControl (ARM_POWER_LOW) is not supported
355                                           PASSED
356 ...
357
358 Test Summary: 56 Tests, 25 Passed, 0 Failed.
359 Test Result: PASSED
360 \endverbatim
361
362 The fix for the assertion failing in line 1106 has also fixed subsequent assertions
363 in lines 1109 and 1112 thus the driver now reports no failed tests and reports that all
364 of the 25 executed tests have passed.
365
366 This report could be used as an insurance that the SPI Driver on this device is compliant to the CMSIS-Driver specification.
367
368 The TestReport.xml report created instead of Plain Text opened in a Web browser looks similar to the the picture below:
369
370 \image html xml_report.png "XML test report"
371
372 */
373 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
374 /**
375 \page resource_requirements Resource Requirements
376
377 \section heap_req Heap Memory
378 Heap memory is used by the memory allocation functions.<br>
379 It is usually configured in the <b>startup_\<device\>.s</b> or <b>startup_\<device\>.c</b> 
380 file located under the \b Device component class but it can also, in some cases, be configured by a <b>linker script</b> instead.
381
382 Some interface test functions allocate additional buffers from the heap memory.
383
384 The CMSIS-Driver Validation framework does not impose heap requirements because it does not use heap memory.
385
386 Each interface test module has specific requirements for the heap memory, default requirements are listed below:
387
388 | Interface test module   | Heap memory requirement (in bytes) |
389 | :---------------------: | :--------------------------------: |
390 | CAN                     | 128                                |
391 | Ethernet                | 3028                               |
392 | SPI                     | 12288                              |
393 | USART                   | 8192                               |
394
395 Interface test modules that are not listed in the previous table do not use heap memory.
396
397 The system heap memory size must support the largest heap requirement of any used interface test module.<br>
398 For example, if SPI driver testing is selected heap memory size should be set to at least 12 kB.
399
400 Suggested value for heap memory size is <b>16384</b> bytes.
401
402 \note Each module contains additional settings in related configuration file which are not exposed through
403       Configuration Wizard and impact the heap memory requirement.<br>
404       If these values are changed please adjust heap memory size accordingly.
405
406 \section rtos2_req CMSIS-RTOS2
407
408 The thread requirements need to be reflected in the CMSIS-RTOS2 configuration. Refer to the
409 <a class="el" href="https://arm-software.github.io/CMSIS_5/RTOS2/html/index.html" target="_blank">CMSIS-RTOS2 Reference</a> for further details.
410
411 For <a class="el" href="https://arm-software.github.io/CMSIS_5/RTOS2/html/rtx5_impl.html" target="_blank">CMSIS-RTOS2 RTX5</a>, thread
412 requirements are configured in the
413 <a class=el href="https://arm-software.github.io/CMSIS_5/RTOS2/html/config_rtx5.html" target="_blank">RTX_Config.h</a> file located
414 under the \b CMSIS component class:
415
416 | Option                                                            | Value                              |
417 | :---------------------------------------------------------------- | :--------------------------------: |
418 | System Configuration: Global Dynamic Memory size [bytes] (Note 1) | 16384                              |
419 | Thread Configuration: Default Thread Stack size [bytes]           | 3072                               |
420
421 \note Note 1: This setting is only necessary for WiFi driver testing, for other driver testing value of 4096 bytes is sufficient.
422
423 */
424 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
425 /**
426 \page examples Examples
427
428 The CMSIS-Driver Validation Software Pack contains a set of examples that show how to use the CMSIS-Driver Validation on
429 a real hardware.<br>
430 Use <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> to copy them to your machine.
431
432 The following example projects are available:
433
434 - \subpage examples_xmc4500_relax
435 - \subpage examples_mcbstm32f200
436 - \subpage examples_mcbstm32f400
437 - \subpage examples_b_l475e_iot01a
438 - \subpage examples_stm32f746g
439 - \subpage examples_ismart43362_e
440 - \subpage examples_esp8266
441 - \subpage examples_esp32
442 - \subpage examples_wizfi360
443
444 \anchor example_targets
445 <b>Project Targets</b>
446
447 The example projects may contain some of the following target configurations:
448 - <b>Create Report</b>: test results and statistics are stored in the <b>TestReport\TestReport.xml</b> file, that can be viewed with a web browser.
449 - \b Debug: test results and statistics are printed to the <b>Debug (printf) Viewer</b> window or to the <b>Virtual COM Port</b> through the on-board debugger.
450 - \b Release: same as the Debug target but with higher level of code optimization selected.
451 */
452
453
454 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
455 /**
456 \page examples_xmc4500_relax Infineon XMC4500 Relax Kit
457
458 Software Setup
459 --------------
460
461 Using the <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install the latest
462 <b>Infineon::XMC4000_DFP</b> pack and copy the example project
463 <b>CMSIS-Driver Validation (XMC4500 Relax Lite Kit)</b> to your machine.
464
465 -# Choose one of the available \ref example_targets "Project Targets" and build the project.
466 -# If you wish to test the loopback mode for some of the interfaces, refer to the next section for proper board
467    configuration.
468 -# Run the validation on the target hardware using the on-board JLink-Lite debugger.
469
470
471 Hardware Setup
472 --------------
473
474 The following picture shows the necessary external loopback connections for the Infineon XMC4500 Relax Kit evaluation board:
475  - <b>UART2</b>: \b P0.4 (UART2_RX)  and \b P0.5 (UART2_TX)  (Header X2)
476  - <b>SPI0</b>:  \b P5.0 (SPI0_MOSI) and \b P5.1 (SPI0_MISO) (Header X2)
477  - For <b>Ethernet</b> use a loopback plug as described in \ref eth_loopback "Loopback Communication Setup".
478
479 \image html xmc4500.png  "Connections for Loopback Communication Tests on the Infineon XMC4500 Relax Kit"
480
481 */
482 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
483 /**
484 \page examples_mcbstm32f200 Keil MCBSTM32F200
485
486 Software Setup
487 --------------
488
489 Using the <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install the latest
490 <b>Keil::STM32F2xx_DFP</b> pack and copy the example project
491 <b>CMSIS-Driver Validation (MCBSTM32F200)</b> to your machine.
492
493 -# Choose one of the available \ref example_targets "Project Targets" and build the project.
494 -# If you wish to test the loopback mode for some of the interfaces, refer to the next section for proper board
495    configuration.
496 -# Run the validation on the target hardware.
497
498 \note The example is preconfigured to use an
499 <a href="http://www2.keil.com/mdk5/ulink/ulinkplus/" target="_blank">ULINKplus</a> debug adapter.
500
501
502 Hardware Setup
503 --------------
504
505 The following picture shows the necessary external loopback connections for the Keil MCBSTM32F200 evaluation board:
506  - <b>SPI2</b>: \b PB14 (SPI2_MISO) and \b PB15 (SPI2_MOSI) (for Loopback Test Mode)
507  - <b>USART1</b>: \b PB6 (USART1_TX) and \b PB7 (USART1_RX)
508  - For <b>Ethernet</b> use a loopback plug as described in \ref eth_loopback "Loopback Communication Setup".
509
510 \image html mcbstm32f400.png  "Connections for Loopback Communication Tests on the Keil MCBSTM32F200"
511
512 */
513 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
514 /**
515 \page examples_mcbstm32f400 Keil MCBSTM32F400
516
517 Software Setup
518 --------------
519
520 Using the <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install the latest
521 <b>Keil::STM32F4xx_DFP</b> pack and copy the example project
522 <b>CMSIS-Driver Validation (MCBSTM32F400)</b> to your machine.
523
524 -# Choose one of the available \ref example_targets "Project Targets" and build the project.
525 -# If you wish to test the loopback mode for some of the interfaces, refer to the next section for proper board
526    configuration.
527 -# Run the validation on the target hardware.
528
529 \note The example is preconfigured to use an
530 <a href="http://www2.keil.com/mdk5/ulink/ulinkplus/" target="_blank">ULINKplus</a> debug adapter.
531
532
533 Hardware Setup
534 --------------
535
536 The following picture shows the necessary external loopback connections for the Keil MCBSTM32F400 evaluation board:
537  - <b>SPI2</b>: \b PB14 (SPI2_MISO) and \b PB15 (SPI2_MOSI) (for Loopback Test Mode)
538  - <b>USART1</b>: \b PB6 (USART1_TX) and \b PB7 (USART1_RX)
539  - For <b>Ethernet</b> use a loopback plug as described in \ref eth_loopback "Loopback Communication Setup".
540
541 \image html mcbstm32f400.png  "Connections for Loopback Communication Tests on the Keil MCBSTM32F400"
542
543 */
544 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
545 /**
546 \page examples_b_l475e_iot01a STMicroelectronics B-L475E-IOT01A
547
548 Software Setup
549 --------------
550
551 Using the <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install the latest
552 <b>Keil::STM32L4xx_DFP</b> pack and copy the example project
553 <b>CMSIS-Driver WiFi Inventek ISM43362 Validation (B-L475E-IOT01A)</b> to your machine.
554
555 -# Choose one of the available \ref example_targets "Project Targets" and build the project.
556 -# Run the validation on the target hardware using the on-board ST-Link/V2 debugger.
557
558 This example is prepared for verification of the WiFi driver and it requires \ref wifi_requirements "WiFi requirements",
559 as well as, proper configuration described in \ref wifi_config "WiFi Configuration".
560
561 For details on WiFi driver validation please refer to \ref dv_wifi.
562
563 \image html b-l475e-iot01a.png  "STMicroelectronics B-L475E-IOT01A board"
564
565 */
566 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
567 /**
568 \page examples_ismart43362_e Inventek ISMART43362-E WiFi Shield with NXP LPCXpresso55S69
569
570 Software Setup
571 --------------
572
573 Using the <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install the latest
574 <b>NXP::LPC55S69_DFP</b> and <b>NXP::LPCXpresso55S69_EVK</b> packs and copy the example project
575 <b>CMSIS-Driver WiFi Inventek ISM43362 Validation (LPCXpresso55S69)</b> to your machine.
576
577 -# Choose one of the available \ref example_targets "Project Targets" and build the project.
578 -# Run the validation on the target hardware.
579
580 \note The example is preconfigured to use an
581 <a href="http://www2.keil.com/mdk5/ulink/ulinkplus/" target="_blank">ULINKplus</a> debug adapter.
582
583 This example is prepared for verification of the WiFi driver and it requires \ref wifi_requirements "WiFi requirements",
584 as well as, proper configuration described in \ref wifi_config "WiFi Configuration".
585
586 For details on WiFi driver tests please refer to \ref dv_wifi.
587
588 Hardware Setup
589 --------------
590
591 This example uses the ISMART module with SPI communication.<br>
592 By default, the shield is loaded with a UART firmware.<br>
593 Instructions on how to flash the SPI firmware can be found in the
594 [CMSIS-Driver documentation](https://arm-software.github.io/CMSIS-Driver/latest/driver_WiFi.html#driver_ISM43362).
595
596 For proper operation of the Inventek ISMART43362-E WiFi Shield please connect the jumper between 5V_BOARD and 5V_MOD pins
597 on the WiFi Shield.
598
599 \note Before running the validation on this hardware the WiFi Shield has to be reset by pressing SW2 push-button
600 on the WiFi Shield and the debug session has to be started in less than 5 seconds after the reset push-button was released.
601
602 \image html lpcxpresso55s69.png  "NXP LPCXpresso55S69 with Inventek ISMART43362-E WiFi Shield attached"
603
604 */
605 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
606 /**
607 \page examples_esp8266 Espressif ESP8266 SparkFun WiFi Shield with NXP MIMXRT1064-EVK
608
609 Software Setup
610 --------------
611
612 Using the <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install the latest
613 <b>NXP::MIMXRT1064_DFP</b> and <b>NXP::EVK-MIMXRT1064_BSP</b> packs and copy the example project
614 <b>CMSIS-Driver WiFi Espressif ESP8266 Validation (EVK-MIMXRT1064)</b> to your machine.
615
616 -# Choose one of the available \ref example_targets "Project Targets" and build the project.
617 -# Run the validation on the target hardware using the on-board CMSIS-DAP Debugger.
618
619 This example is prepared for verification of the WiFi driver and it requires \ref wifi_requirements "WiFi requirements",
620 as well as, proper configuration described in \ref wifi_config "WiFi Configuration".
621
622 For details on WiFi driver tests please refer to \ref dv_wifi.
623
624 \image html mimxrt1064evk.png    "NXP MIMXRT1064-EVK with"
625 \image html esp8266_sparkfun.png "Espressif ESP8266 SparkFun WiFi Shield"
626
627 */
628 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
629 /**
630 \page examples_esp32 Espressif ESP32 WROOM SparkFun Thing Plus WiFi Shield with NXP MIMXRT1064-EVK
631
632 Software Setup
633 --------------
634
635 Using the <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install the latest
636 <b>NXP::MIMXRT1064_DFP</b> and <b>NXP::EVK-MIMXRT1064_BSP</b> packs and copy the example project
637 <b>CMSIS-Driver WiFi Espressif ESP32 Validation (EVK-MIMXRT1064)</b> to your machine.
638
639 -# Choose one of the available \ref example_targets "Project Targets" and build the project.
640 -# Run the validation on the target hardware using the on-board CMSIS-DAP Debugger.
641
642 This example is prepared for verification of the WiFi driver and it requires \ref wifi_requirements "WiFi requirements",
643 as well as, proper configuration described in \ref wifi_config "WiFi Configuration".
644
645 For details on WiFi driver tests please refer to \ref dv_wifi.
646
647 \image html mimxrt1064evk.png        "NXP MIMXRT1064-EVK with"
648 \image html esp32_wroom_sparkfun.png "Espressif ESP32 WROOM SparkFun Thing Plus WiFi Shield"
649
650 */
651 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
652 /**
653 \page examples_wizfi360 WIZnet WizFi360-EVB WiFi Shield with NXP MIMXRT1064-EVK
654
655 Software Setup
656 --------------
657
658 Using the <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install the latest
659 <b>NXP::MIMXRT1064_DFP</b> and <b>NXP::EVK-MIMXRT1064_BSP</b> packs and copy the example project
660 <b>CMSIS-Driver WiFi WIZnet WizFi360 Validation (EVK-MIMXRT1064)</b> to your machine.
661
662 -# Choose one of the available \ref example_targets "Project Targets" and build the project.
663 -# Run the validation on the target hardware using the on-board CMSIS-DAP Debugger.
664
665 This example is prepared for verification of the WiFi driver and it requires \ref wifi_requirements "WiFi requirements",
666 as well as, proper configuration described in \ref wifi_config "WiFi Configuration".
667
668 For details on WiFi driver tests please refer to \ref dv_wifi.
669
670 \image html mimxrt1064evk.png "NXP MIMXRT1064-EVK with"
671 \image html wizfi360-evb.png  "WIZnet WizFi360-EVB WiFi Shield"
672
673 */
674 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
675 /**
676 \page examples_stm32f746g STMicroelectronics STM32F746G-Discovery
677
678 Software Setup
679 --------------
680
681 Using the <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install the latest
682 <b>Keil::STM32F7xx_DFP</b> pack and copy the example project
683 <b>CMSIS-Driver Validation (STM32F746G-Discovery)</b> to your machine.
684
685 -# Choose one of the available \ref example_targets "Project Targets" and build the project.
686 -# If you wish to test the loopback mode for some of the interfaces, refer to the next section for proper board
687    configuration.
688 -# Run the validation on the target hardware using the on-board ST-Link/V2 debugger.
689
690
691 Hardware Setup
692 --------------
693
694 The following picture shows the necessary external loopback connections for the STMicroelectronics STM32F746G-Discovery evaluation board:
695  - <b>SPI2</b>: \b D12 (SPI2_MISO - PB14) and \b D11 (SPI2_MOSI - PB15)
696  - <b>USART6</b>: \b D1 (USART6_TX - PC6) and \b D0 (USART6_RX - PC7)
697  - For <b>Ethernet</b> use a loopback plug as described in \ref eth_loopback "Loopback Communication Setup".
698
699 \image html stm32f746g-disco.png  "Connections for Loopback Communication Tests on STM32F746G-Discovery"
700
701 */