]> begriffs open source - cmsis-driver-validation/blob - Doxygen/DriverValidation.txt
Updated revision history for V1.5.0-dev0
[cmsis-driver-validation] / Doxygen / DriverValidation.txt
1 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
2 /**
3 \mainpage Introduction
4
5 This manual explains the scope and the usage of the Software Pack for \b CMSIS-Driver \b Validation.
6 <a href="http://www.keil.com/pack/doc/CMSIS/Driver/html/index.html" target="_blank">CMSIS-Driver</a> specifies the 
7 software API for peripheral driver interfaces that connect microcontroller peripherals with middleware or the user application. 
8
9 The Software Pack for CMSIS-Driver validation provides:
10   - Configurable validation tests for several CMSIS-Driver interfaces
11   - Example projects that show the usage of the CMSIS-Driver validation
12
13 The CMSIS-Driver Validation tests and verifies:
14   - \b API \b interface \b interaction using the driver capabilities as well as valid and invalid parameters.
15   - \b Data \b communication with various transfer sizes and communication parameters (i.e. baudrate).
16   - \b Loopback \b communication (for some interfaces) for testing the underlying hardware.
17   - \b Transfer \b speed of the data communication with time measurement of data transfers.
18
19 The CMSIS-Driver Validation requires
20 <a href="http://www.keil.com/pack/doc/CMSIS/RTOS2/html/index.html" target="_blank">CMSIS-RTOS2</a> functionality and can be
21 used to verify the setup and configuration of the CMSIS-Driver interfaces in a user system. It is also used to validate
22 implementation of a CMSIS-Driver interface.
23
24 The diagram below is an overview of the configuration for CMSIS-Driver validation.
25
26 \image html DVSuite.png
27
28 This manual contains the following chapters:
29   - \ref test_setup - Describes the general setup of the CMSIS-Driver validation test and how to generate test output.
30   - \ref test_results - Explains how to interpret the test results from loopback tests.
31   - \ref examples - Contains information of several example projects including the required hardware setup.
32   - \ref resource_requirements - Lists memory and CMSIS-RTOS requirements.
33   - <a class="el" href="./modules.html">Reference</a> - explains the individual tests for the various CMSIS-Driver
34     interfaces.
35
36 The Software Pack for CMSIS-Driver validation current tests the following interfaces:
37   - \ref can_funcs - Controller Area Network (CAN) peripheral.
38   - \ref eth_funcs - Interface to Ethernet MAC and PHY peripheral.
39   - \ref i2c_funcs - Inter-Integrated Circuit (I2C) multi-master serial single-ended bus interface driver.
40   - \ref mci_funcs - Memory card interface for SD/MMC memory.
41   - \ref spi_funcs - Serial Peripheral Interface (SPI) driver.
42   - \ref usart_funcs - Universal Synchronous and Asynchronous Receiver/Transmitter
43     (USART) interface driver.
44   - \ref usbd_funcs - Universal Serial Bus (USB) Device interface driver.
45   - \ref usbh_funcs - Universal Serial Bus (USB) Host interface driver.
46   - \ref wifi_funcs - WiFi (Wireless Fidelity Interface) module driver.
47
48 This manual assumes that you are familiar with MDK. Refer to
49 <a href="http://www2.keil.com/mdk5/install" target="_blank">MDK Version 5 - Getting Started</a> for additional information.
50
51 <hr>
52
53 Revision History
54 ----------------
55
56 <table class="cmtable" summary="Revision History">
57     <tr>
58       <th>Version</th>
59       <th>Description</th>
60     </tr>
61     <tr>
62       <td>V1.5.0-dev0</td>
63       <td>
64         - Removed bundle
65         - Added requirements for CMSIS driver API versions
66         - Updated WiFi Driver tests (WiFi Driver API V1.1)
67         - Updated all examples
68       </td>
69     </tr>
70     <tr>
71       <td>V1.4.1-dev1</td>
72       <td>
73         - Deprecated CMSIS-RTOS1
74       </td>
75     </tr>
76     <tr>
77       <td>V1.4.1-dev0</td>
78       <td>
79         - Updated framework allowing linker to remove unused test functions
80       </td>
81     </tr>
82     <tr>
83       <td>V1.4.0</td>
84       <td>
85         - Updated conditions to support all Cortex-M devices
86         - Introduced test groups (each driver is organized in a group)
87         - Improved XSL for XML display
88         - Updated all examples
89         - Removed example for Atmel board
90         - WiFi Driver Testing: Added SockServer application for PC running Microsoft Windows
91         - WiFi Driver Testing: Added upstream and downstream bandwidth testing
92         - WiFi Driver Testing: Added example for Inventek ISM43362 WiFi Driver testing on STMicroelectronics B-L475E-IOT01A1 board
93         - WiFi Driver Testing: Added example for Inventek ISM43362 WiFi Driver testing using ISMART43362-E WiFi shield mounted on NXP LPCXpresso55S69 board
94         - WiFi Driver Testing: Added examples for Espressif ESP8266 and ESP32 WiFi Driver testing with NXP MIMXRT1064-EVK board
95         - WiFi Driver Testing: Added example for WIZnet WizFi360 WiFi Driver testing with NXP MIMXRT1064-EVK board
96       </td>
97     </tr>
98     <tr>
99       <td>V1.3.0</td>
100       <td>
101         - Added WiFi tests
102       </td>
103     </tr>
104     <tr>
105       <td>V1.2.0</td>
106       <td>
107         - Added CMSIS-RTOS2 and Arm Compiler 6 compatibility
108       </td>
109     </tr>
110     <tr>
111       <td>V1.1.0</td>
112       <td>
113         - Added USB Host, CAN and Ethernet Precision Time Protocol tests
114       </td>
115     </tr>
116     <tr>
117       <td>V1.0.0</td>
118       <td>
119         - Initial release for CMSIS-Driver API V2.0
120       </td>
121     </tr>
122  </table>
123 */
124
125 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
126 /**
127 \page test_setup Test Setup
128
129 \section step1 Step 1: Create an MDK project with your target microcontroller device
130
131
132 \section step2 Step 2: Add required software components
133
134 For proper operation, add the following software components in the <b>Manage Run-Time Environment</b> window:
135 - <b>CMSIS Driver Validation:Framework</b>
136 - <b>CMSIS Driver Validation:driver</b>, driver interfaces to be tested
137 - <b>CMSIS Driver:driver</b>, driver implementations to be tested
138 - <b>CMSIS:RTOS2 (API):Keil RTX5</b>
139 - <b>Compiler:I/O:STDOUT</b>, variant \b ITM (if your hardware does not support ITM select \b User or \b EVR)
140 - Resolve any unresolved component dependecies
141
142
143 \section step3 Step 3: Add main.c
144
145 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
146 \b main file from <b>Device:Startup</b> or <b>CMSIS-RTOS2:Keil RTX5</b>.
147
148 Add this include:
149 \code
150 include "cmsis_dv.h"
151 \endcode
152
153 In the main function, after kernel initialization, create the \c cmsis_dv thread:
154 \code
155 osThreadNew(cmsis_dv, NULL, NULL);
156 \endcode
157 to run all tests that you have chosen in the next step.
158
159
160 \section step4 Step 4: Configure DV_Config.h
161
162 Open \c DV_Config.h under the <b>CMSIS Driver Validation</b> group in the Project window.
163
164 \image html dv_config_h.png "Configuration File DV_Config.h"
165
166 <b>Common Test Settings</b>
167
168 The common test settings help you to choose the output format of the test, buffer sizes and buffer content that should
169 be used for the send, receive, and transfer tests:
170 - The \b Print \b Output \b Format lets you select if you wish to create the output as plain text or as styled XML.
171 - \b Buffer \b sizes lets you select the buffer sizes that are used for data transfer. This setting has a direct impact on
172   required \ref step6 "heap".
173 - You can specify also the <b>Buffer size for baudrate test</b>. For USART you can set the <b>Percentual tolerance for baudrate 
174   test</b> and for SPI the <b>Percentual trigger for bus speed test</b>. Depending on the device \ref step7 "configuration", for 
175   example when DMA is not used, the transfers may have larger overhead which is more significant for higher bus speeds. The 
176   transfer overhead is reduced for larger transfer buffer sizes.
177 - Select your preferred <b>Buffer pattern</b>
178
179 <b>Driver-specific Settings</b>
180
181 Every interface has specific settings that can be changed in the according section:
182 - You need to specify the driver instance number (<b>Driver_<i>interface</i>#</b>) used for the test. This is especially
183   important for microcontroller devices that have multiple peripherals of the same kind.
184 - Some drivers can have additional baudrate or timing settings.
185 - Select all driver tests that you wish to use. Note that all tests can run independently from each other. You do not need to
186   specify a certain order.
187
188 \note For more information on additional settings and the different driver test cases, check the
189 <a class="el" href="./modules.html">Reference</a> section.
190 \note For WiFi driver validation some settings depend on the test environment and they need to be set properly, 
191 for details please refer to \ref wifi_config section.
192
193
194 \section step5 Step 5: Configure Keil RTX5
195
196 Open \b RTX_Config.h and set:
197 - <b>Default Thread stack size [bytes]</b> to \a 2048
198 - <b>Global Dynamic Memory size [bytes]</b> to \a 8192 (Note 1)
199
200 \note Note 1: This setting is only necessary for WiFi driver testing, for other tests default setting of 4096 is sufficient.
201
202 \section step6 Step 6: Configure Heap
203
204 Depending on the buffer sizes that you have chosen in \ref step4 "Step 4", you need to add more heap. Depending on how heap is 
205 configured in your system open your startup_<i>device</i>.s file from the \b Device group in the \b Project window or use a 
206 linker script to adjust the heap setting. Click on the 
207 <a href="http://www.keil.com/support/man/docs/uv4/uv4_ut_configwizard.htm" target="_blank">Configuration Wizard</a> view. 
208 Increase the heap size:
209 - for the validation framework add 1024 bytes.
210 - double the largest buffer size you have set in the configuration file and add this as well.
211
212 Refer to the \ref resource_requirements section for a calculation example.
213
214
215 \section step7 Step 7: Configure the Device
216
217 Depending on your device, you might have different pin/hardware configuration options. Usually, you can configure the device
218 using the \c RTE_Device.h file from the \b Device group. Enable all interfaces you wish to use in the tests and make all
219 necessary pin-out changes required by your actual board layout (consult the board schematics). The \ref examples "examples" 
220 are already configured for the underlying hardware.
221
222 For a robust test with good coverage, implement various targets with different settings:
223 - \b Enable/disable the \b DMA controller of your device
224 - Set different \b buffer \b sizes in \ref step4 "DV_Config.h"
225 - Select different compiler \b optimization \b levels in the
226   <a href="http://www.keil.com/support/man/docs/uv4/uv4_dg_adscc.htm" target="_blank">C/C++ tab</a> of the
227   <b>Options for Target</b> dialog.
228
229
230 \section step8 Step 8: Setup Additional Hardware
231
232 For the interfaces that support loopback testing: \ref eth_funcs "Ethernet", \ref spi_funcs "SPI", and \ref usart_funcs "USART", 
233 connect the following pins on your target hardware together (refer to the hardware schematics):
234
235 - Ethernet: RX+ and TX+, RX- and TX-
236 - SPI: MISO and MOSI
237 - USART: RX and TX
238
239 For WiFi specific hardware requirements please refer to \ref wifi_requirements.
240
241 \section step9 Step 9: Download and Run the Project
242
243 In the <b>Options for Target</b> dialog, under debug settings, if you use ITM as standard output channel ensure that 
244 \b Trace and ITM port \token{0} are enabled and that the correct clock frequency is set:
245
246 \image html target_dialog.png "ITM Channel setting"
247
248 Build, load and run the project. The output is displayed in the <b>Debug (printf) Viewer</b> window:
249
250 \verbatim
251 CMSIS-Driver ETH Test Report   Nov 15 2019   15:25:59 
252
253 TEST 01: ETH_MAC_GetCapabilities          PASSED
254 TEST 02: ETH_MAC_Initialization           PASSED
255 TEST 03: ETH_MAC_PowerControl             
256   DV_ETH.c (163): [WARNING] Low power is not supported
257                                           PASSED
258 TEST 04: ETH_MAC_SetBusSpeed              
259   DV_ETH.c (197): [WARNING] Link speed 1G is not supported
260                                           PASSED
261 TEST 05: ETH_MAC_Config_Mode              PASSED
262 TEST 06: ETH_MAC_Config_CommonParams      PASSED
263 TEST 07: ETH_PHY_Initialization           PASSED
264 TEST 08: ETH_PHY_PowerControl             
265   DV_ETH.c (300): [WARNING] Low power is not supported
266                                           PASSED
267 TEST 09: ETH_PHY_Config                   PASSED
268 TEST 10: ETH_Loopback_Transfer            PASSED
269 TEST 11: ETH_PHY_CheckInvalidInit         NOT EXECUTED
270 TEST 12: ETH_MAC_CheckInvalidInit         NOT EXECUTED
271
272 Test Summary: 12 Tests, 10 Passed, 0 Failed.
273 Test Result: PASSED
274 \endverbatim
275
276 If you see warnings during loopback transfer tests, please read the section \ref test_results which gives you more
277 information on how to interpret the results.
278 */
279
280
281 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
282 /**
283 \page test_results Reading Test Results
284
285 The tests \ref SPI_Loopback_CheckBusSpeed and \ref USART_Loopback_CheckBaudrate may issue warnings when using the default
286 settings (especially loopback communication tests for SPI and USART):
287 \verbatim
288 CMSIS-Driver SPI Test Report   Nov 15 2019   15:35:11 
289
290 TEST 01: SPI_GetCapabilities              PASSED
291 TEST 02: SPI_Initialization               PASSED
292 TEST 03: SPI_PowerControl                 
293   DV_SPI.c (244): [WARNING] Low power is not supported
294                                           PASSED
295 TEST 04: SPI_Config_PolarityPhase         PASSED
296 TEST 05: SPI_Config_DataBits              PASSED
297 TEST 06: SPI_Config_BitOrder              
298   DV_SPI.c (315): [WARNING] Bit order LSB_MSB is not supported
299                                           PASSED
300 TEST 07: SPI_Config_SSMode                
301   DV_SPI.c (343): [WARNING] Slave select MASTER_HW_INPUT is not supported
302                                           PASSED
303 TEST 08: SPI_Config_BusSpeed              PASSED
304 TEST 09: SPI_Config_CommonParams          PASSED
305 TEST 10: SPI_Send                         PASSED
306 TEST 11: SPI_Receive                      PASSED
307 TEST 12: SPI_Loopback_CheckBusSpeed       
308   DV_SPI.c (525): [WARNING] At 25000kHz: measured time is 2.437125 x expected time
309                                           PASSED
310 TEST 13: SPI_Loopback_Transfer            PASSED
311 TEST 14: SPI_CheckInvalidInit             NOT EXECUTED
312 \endverbatim
313
314 The measured time is depending mainly on two factors: \b DMA and \b software \b overhead.
315
316 If you are not using \b DMA for data transfer, an interrupt is generated, in worst case, for every transferred byte. The
317 interrupt handling overhead for each byte can produce 10 times slower transfer than DMA. DMA will transfer the data
318 without overhead. Thus, only bus speed/baudrate tests with DMA enabled should be considered for
319 optimization. In case DMA cannot be used (because no DMA channel is left to be used for example), the user needs to be aware
320 that the data rates will decrease significantly.
321
322 The \b software \b overhead is introduced by the way the measurement is done. When the measurement is started a system tick 
323 value is stored and then the transfer is set up and started. The software then needs to determine when the transfer 
324 has ended and calculate required time difference by using previously stored system ticks and current system ticks.
325 Usually, the software overhead is a constant number of CPU cycles. The total amount of time required for the software overhead 
326 depends on the actual CPU that is used and on the optimization level used during build. \n
327 Increasing the <b>Buffer size for baudrate test</b> reduces the software overhead effect. The following calculation example
328 explains why.
329
330 \b Calculation \b Example
331
332 SPI bus speed = 25 Mbps
333
334 - Buffer size for baudrate tests = 512 byte (default value, equals 512 * 8 bit)
335 - Actual bus speed = 18 Mbps (read from driver)
336 - Expected time to transfer data = 227 µs (512 * 8 bit/18 Mbps)
337 - Measured time = 245 µs = 227 µs + 18 µs (coming from a software overhead)
338 - This results in a measured/expected time ratio of 1.08 which will lead to a warning
339
340 Using a buffer size of 8192 bytes in the example above will reduce the software overhead to less than 1% (which will issue no
341 warning anymore).
342 */
343
344
345 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
346 /**
347 \page examples Examples
348
349 This Software Pack contains a set of examples that show how to use the validation suite together with real
350 hardware. The following example projects are available. Use
351 <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> to copy them to your machine:
352
353 - \subpage examples_xmc4500_relax
354 - \subpage examples_mcbstm32f200
355 - \subpage examples_mcbstm32f400
356 - \subpage examples_b_l475e_iot01a1
357 - \subpage examples_stm32f746g
358 - \subpage examples_ismart43362_e
359 - \subpage examples_esp8266
360 - \subpage examples_esp32
361 - \subpage examples_wizfi360
362
363 \anchor example_targets
364 Targets
365 -------
366
367 All projects contain two targets:
368 - <b>Create Report</b>: Test results and statistics are printed to the file \c TestReport\TestReport.xml. 
369   Open the file in a web browser of your choice.
370   \note <span style="font-weight:bold; color:Green">Passed</span> Status means that test case has passed sucessfully.
371   \note <span style="font-weight:bold; color:DarkOrange">Passed</span> Status means that tests case has passed but there were some warnings (More details can be used to see the details).
372   \note <span style="font-weight:bold; color:Blue">Not executed</span> Status means test case did not check any assertions.
373   \note <span style="font-weight:bold; color:Red">Failed</span> Status means test case has failed (More details can be used to see the details).
374 - \b Debug: Results and statistics are printed to the Debug (printf) Viewer window through the standard output.
375 */
376
377
378 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
379 /**
380 \page examples_xmc4500_relax Infineon XMC4500 Relax Kit
381
382 Software Setup
383 --------------
384
385 Using <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install latest 
386 <b>Infineon::XMC4000_DFP</b> pack and copy the example project
387 <b>CMSIS-Driver Validation (XMC4500 Relax Lite Kit)</b> to your machine.
388
389 -# Choose one of the available \ref example_targets and build the project.
390 -# If you wish to test the loopback mode for some of the interfaces, refer to the next section for proper board
391    configuration.
392 -# Run the test on the target hardware using the on-board JLink-Lite debug adapter.
393
394 Hardware Setup
395 --------------
396
397 The following picture shows the necessary external loopback connections for the Infineon XMC4500 Relax Kit evaluation board:
398  - UART2: \b P0.4 (UART2_RX)  and \b P0.5 (UART2_TX)  (Header X2)
399  - SPI0:  \b P5.0 (SPI0_MOSI) and \b P5.1 (SPI0_MISO) (Header X2)
400  - For Ethernet use a loopback plug as described in \ref eth_loopback "Loopback Communication Setup". 
401
402 \image html xmc4500.png  "Connections for Loop Back Communication Tests on Infineon XMC4500 Relax Kit"
403 */
404
405
406 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
407 /**
408 \page examples_mcbstm32f200 Keil MCBSTM32F200
409
410 Software Setup
411 --------------
412
413 Using <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install latest 
414 <b>Keil::STM32F2xx_DFP</b> pack and copy the example project
415 <b>CMSIS-Driver Validation (MCBSTM32F200)</b> to your machine.
416
417 -# Choose one of the available \ref example_targets and build the project.
418 -# If you wish to test the loopback mode for some of the interfaces, refer to the next section for proper board
419    configuration.
420 -# Run the test on the target hardware.
421
422 \note To communicate with the development board, a debug adapter from the
423 <a href="http://www2.keil.com/mdk5/ulink/" target="_blank">ULINK</a> family is required.
424
425
426 Hardware Setup
427 --------------
428
429 The following picture shows the necessary external loopback connections for the Keil MCBSTM32F400 evaluation board:
430  - SPI2: \b PB14 (SPI2_MISO) and \b PB15 (SPI2_MOSI)
431  - USART1: \b PB6 (USART1_TX) and \b PB7 (USART1_RX)
432  - For Ethernet use a loopback plug as described in \ref eth_loopback "Loopback Communication Setup". 
433
434 \image html mcbstm32f400.png  "Connections for Loop Back Communication Tests on Keil MCBSTM32F200"
435 */
436
437
438 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
439 /**
440 \page examples_mcbstm32f400 Keil MCBSTM32F400
441
442 Software Setup
443 --------------
444
445 Using <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install latest 
446 <b>Keil::STM32F4xx_DFP</b> pack and copy the example project
447 <b>CMSIS-Driver Validation (MCBSTM32F400)</b> to your machine.
448
449 -# Choose one of the available \ref example_targets and build the project.
450 -# If you wish to test the loopback mode for some of the interfaces, refer to the next section for proper board
451    configuration.
452 -# Run the test on the target hardware.
453
454 \note To communicate with the development board, a debug adapter from the
455 <a href="http://www2.keil.com/mdk5/ulink/" target="_blank">ULINK</a> family is required.
456
457
458 Hardware Setup
459 --------------
460
461 The following picture shows the necessary external loopback connections for the Keil MCBSTM32F400 evaluation board:
462  - SPI2: \b PB14 (SPI2_MISO) and \b PB15 (SPI2_MOSI)
463  - USART1: \b PB6 (USART1_TX) and \b PB7 (USART1_RX)
464  - For Ethernet use a loopback plug as described in \ref eth_loopback "Loopback Communication Setup". 
465
466 \image html mcbstm32f400.png  "Connections for Loop Back Communication Tests on Keil MCBSTM32F400"
467 */
468
469
470 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
471 /**
472 \page examples_b_l475e_iot01a1 STMicroelectronics B-L475E-IOT01A1
473
474 Software Setup
475 --------------
476
477 Using <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install latest 
478 <b>Keil::STM32L4xx_DFP</b> pack and copy the example project
479 <b>CMSIS-Driver WiFi Inventek ISM43362 Validation (B-L475E-IOT01A1)</b> to your machine.
480
481 -# Choose one of the available \ref example_targets and build the project.
482 -# Run the test on the target hardware using the on-board ST-Link/V2.
483
484 This example is prepared for testing of the WiFi driver and it requires \ref wifi_requirements, as well as, proper 
485 configuration described in \ref wifi_config.
486
487 For details on WiFi driver tests please refer to \ref wifi_funcs.
488
489 \image html b-l475e-iot01a.png  "STMicroelectronics B-L475E-IOT01A1 board"
490 */
491
492
493 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
494 /**
495 \page examples_ismart43362_e Inventek ISMART43362-E WiFi Shield with NXP LPCXpresso55S69
496
497 Software Setup
498 --------------
499
500 Using <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install latest 
501 <b>NXP::LPC55S69_DFP</b> and <b>NXP::LPCXpresso55S69_EVK</b> packs and copy the example project
502 <b>CMSIS-Driver WiFi Inventek ISM43362 Validation (LPCXpresso55S69)</b> to your machine.
503
504 -# Choose one of the available \ref example_targets and build the project.
505 -# Run the test on the target hardware.
506
507 \note To communicate with the development board, a debug adapter 
508 <a href="http://www2.keil.com/mdk5/ulink/ulinkplus/" target="_blank">ULINKplus</a> is required.
509
510 This example is prepared for testing of the WiFi driver and it requires \ref wifi_requirements, as well as, proper 
511 configuration described in \ref wifi_config.
512
513 For details on WiFi driver tests please refer to \ref wifi_funcs.
514
515 Hardware Setup
516 --------------
517
518 This example uses the ISMART module with SPI communication. By default, the shield is loaded with a UART firmware.
519 Instructions on how to flash the SPI firmware can be found in the
520 [CMSIS-Driver documentation](https://arm-software.github.io/CMSIS-Driver/General/html/driver_WiFi.html#driver_ISM43362).
521
522 For proper operation of the Inventek ISMART43362-E WiFi Shield please connect the jumper between 5V_BOARD and 5V_MOD pins 
523 on the WiFi Shield.
524
525 \note Before running the validation on this hardware the WiFi Shield has to be reset by pressing SW2 push-button 
526 on the WiFi Shield and the debug session has to be started in less than 5 seconds after the reset push-button was released.
527
528 \image html LPCXpresso55S69.png  "NXP LPCXpresso55S69 with Inventek ISMART43362-E WiFi Shield attached"
529 */
530
531
532 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
533 /**
534 \page examples_esp8266 Espressif ESP8266 SparkFun WiFi Shield with NXP MIMXRT1064-EVK
535
536 Software Setup
537 --------------
538
539 Using <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install latest 
540 <b>NXP::MIMXRT1064_DFP</b> and <b>NXP::EVK-MIMXRT1064_BSP</b> packs and copy the example project
541 <b>CMSIS-Driver WiFi Espressif ESP8266 Validation (EVK-MIMXRT1064)</b> to your machine.
542
543 -# Choose one of the available \ref example_targets and build the project.
544 -# Run the test on the target hardware using the on-board CMSIS-DAP Debugger.
545
546 This example is prepared for testing of the WiFi driver and it requires \ref wifi_requirements, as well as, proper 
547 configuration described in \ref wifi_config.
548
549 For details on WiFi driver tests please refer to \ref wifi_funcs.
550
551 \image html MIMXRT1064EVK.png  "NXP MIMXRT1064-EVK with"
552 \image html esp8266_sparkfun.png  "Espressif ESP8266 SparkFun WiFi Shield"
553 */
554
555
556 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
557 /**
558 \page examples_esp32 Espressif ESP32 WROOM SparkFun Thing Plus WiFi Shield with NXP MIMXRT1064-EVK
559
560 Software Setup
561 --------------
562
563 Using <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install latest 
564 <b>NXP::MIMXRT1064_DFP</b> and <b>NXP::EVK-MIMXRT1064_BSP</b> packs and copy the example project
565 <b>CMSIS-Driver WiFi Espressif ESP32 Validation (EVK-MIMXRT1064)</b> to your machine.
566
567 -# Choose one of the available \ref example_targets and build the project.
568 -# Run the test on the target hardware using the on-board CMSIS-DAP Debugger.
569
570 This example is prepared for testing of the WiFi driver and it requires \ref wifi_requirements, as well as, proper 
571 configuration described in \ref wifi_config.
572
573 For details on WiFi driver tests please refer to \ref wifi_funcs.
574
575 \image html MIMXRT1064EVK.png  "NXP MIMXRT1064-EVK with"
576 \image html esp32_wroom_sparkfun.png  "Espressif ESP32 WROOM SparkFun Thing Plus WiFi Shield"
577 */
578
579
580 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
581 /**
582 \page examples_wizfi360 WIZnet WizFi360-EVB WiFi Shield with NXP MIMXRT1064-EVK
583
584 Software Setup
585 --------------
586
587 Using <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install latest 
588 <b>NXP::MIMXRT1064_DFP</b> and <b>NXP::EVK-MIMXRT1064_BSP</b> packs and copy the example project
589 <b>CMSIS-Driver WiFi WIZnet WizFi360 Validation (EVK-MIMXRT1064)</b> to your machine.
590
591 -# Choose one of the available \ref example_targets and build the project.
592 -# Run the test on the target hardware using the on-board CMSIS-DAP Debugger.
593
594 This example is prepared for testing of the WiFi driver and it requires \ref wifi_requirements, as well as, proper 
595 configuration described in \ref wifi_config.
596
597 For details on WiFi driver tests please refer to \ref wifi_funcs.
598
599 \image html MIMXRT1064EVK.png  "NXP MIMXRT1064-EVK with"
600 \image html wizfi360-evb.png  "WIZnet WizFi360-EVB WiFi Shield"
601 */
602
603
604 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
605 /**
606 \page examples_stm32f746g STMicroelectronics STM32F746G-Discovery
607
608 Software Setup
609 --------------
610
611 Using <a href="http://www2.keil.com/mdk5/packinstaller" target="_blank">Pack Installer</a> install latest 
612 <b>Keil::STM32F7xx_DFP</b> pack and copy the example project
613 <b>CMSIS-Driver Validation (STM32F746G-Discovery)</b> to your machine.
614
615 -# Choose one of the available \ref example_targets and build the project.
616 -# If you wish to test the loopback mode for some of the interfaces, refer to the next section for proper board
617    configuration.
618 -# Run the test on the target hardware using the on-board ST-Link/V2.
619
620
621 Hardware Setup
622 --------------
623
624 The following picture shows the necessary external loopback connections for the STM32F746G-Discovery evaluation board:
625  - SPI2: \b D12 (SPI2_MISO) and \b D11 (SPI2_MOSI)
626  - USART6: \b D1 (USART6_TX) and \b D0 (USART6_RX)
627  - For Ethernet use a loopback plug as described in \ref eth_loopback "Loopback Communication Setup". 
628
629 \image html stm32f746G-disco.png  "Connections for Loop Back Communication Tests on STM32F746G-Discovery"
630 */
631
632 /*=======0=========1=========2=========3=========4=========5=========6=========7=========8=========9=========0=========1====*/
633 /**
634 \page resource_requirements Resource Requirements
635
636 \section heap_req Heap Requirements
637 Heap is used by memory allocation functions. It is configured in the
638 <a class="el" href="http://www.keil.com/support/man/docs/gsac/gsac_startupcodecortex.htm" target="_blank">startup_device.s</a>
639 file located under the \b Device component class or by a linker script.
640
641 Additional memory is allocated for the validation framework and for the buffers that are used in the driver tests. 
642
643 For the validation framework add 1024 bytes of heap. Then, double the amount of the largest buffer size specified in the
644 \ref step4 "DV_Config.h" file and add this as well.
645
646 | Option (under section Heap Configuration)                         | Increase Value by
647 | :---------------------------------------------------------------- | :----------------------
648 | Heap Size (in Bytes)                                              | + (1024 + 2 x maximum buffer size)
649
650 \b Calculation \b Example
651
652 Let's assume that the default heap size in your device's startup file is \c 0x400 (which is 1024 bytes). Add 1024 for the
653 framework and for example another 2048 bytes if you are using the default \b Buffer \b Size of 512 bytes but you have set the
654 <b>Buffer size for baudrate tests</b> to 1024 bytes. This computes to a total heap of 3584 bytes which is equivalent to
655 \c 0xE00. Set this number in the startup file.
656
657
658 \section rtos2_req CMSIS-RTOS2 Requirements
659
660 The thread requirements need to be reflected in the CMSIS-RTOS2 configuration. Refer to the
661 <a class="el" href="http://www.keil.com/pack/doc/cmsis/RTOS2/html/index.html" target="_blank">CMSIS-RTOS2 Reference</a> for further details.
662
663 For <a class="el" href="http://www.keil.com/pack/doc/cmsis/RTOS2/html/rtx5_impl.html" target="_blank">CMSIS-RTOS2 RTX5</a>, thread
664 requirements are configured in the
665 <a class=el href="http://www.keil.com/pack/doc/cmsis/RTOS2/html/config_rtx5.html" target="_blank">RTX_Config.h</a> file located
666 under the \b CMSIS component class:
667
668 <table class="doxtable" summary="CMSIS-RTOS2 Configuration">
669     <tr>
670       <th align="left">Option (under section Thread Configuration)</th>
671       <th>Set Value to</th>
672     </tr>
673     <tr>
674       <td>Default Thread stack size [bytes]</td>
675       <td>2048</td>
676     </tr>
677     <tr>
678       <td>Global Dynamic Memory size [bytes] (Note 1)</td>
679       <td>8192</td>
680     </tr>
681 </table>
682
683 \note Note 1: This setting is only necessary for WiFi driver testing, for other tests default setting of 4096 is sufficient.
684 */