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