2019-07-08 12:45:16 +01:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=9" / >
2019-10-18 12:36:04 +01:00
< title > Driver Validation< / title >
< title > CMSIS-Driver: Driver Validation< / title >
2019-07-08 12:45:16 +01:00
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< link href = "cmsis.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< script type = "text/javascript" src = "printComponentTabs.js" > < / script >
< link href = "navtree.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "resize.js" > < / script >
< script type = "text/javascript" src = "navtree.js" > < / script >
< script type = "text/javascript" >
$(document).ready(initResizable);
2019-10-18 12:36:04 +01:00
$(window).load(resizeHeight);
2019-07-08 12:45:16 +01:00
< / script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/search.js" > < / script >
< script type = "text/javascript" >
$(document).ready(function() { searchBox.OnSelectItem(0); });
< / script >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 46px;" >
< td id = "projectlogo" > < img alt = "Logo" src = "CMSIS_Logo_Final.png" / > < / td >
< td style = "padding-left: 0.5em;" >
2019-10-18 12:36:04 +01:00
< div id = "projectname" > CMSIS-Driver
  < span id = "projectnumber" > Version 2.6.0< / span >
2019-07-08 12:45:16 +01:00
< / div >
2019-10-18 12:36:04 +01:00
< div id = "projectbrief" > Peripheral Interface for Middleware and Application Code< / div >
2019-07-08 12:45:16 +01:00
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
< div id = "CMSISnav" class = "tabs1" >
< ul class = "tablist" >
< script type = "text/javascript" >
<!--
writeComponentTabs.call(this);
//-->
< / script >
< / ul >
< / div >
2019-10-18 12:36:04 +01:00
<!-- Generated by Doxygen 1.8.6 -->
2019-07-08 12:45:16 +01:00
< script type = "text/javascript" >
var searchBox = new SearchBox("searchBox", "search",false,'Search');
< / script >
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li > < a href = "index.html" > < span > Main  Page< / span > < / a > < / li >
< li class = "current" > < a href = "pages.html" > < span > Usage  and  Description< / span > < / a > < / li >
< li > < a href = "modules.html" > < span > Reference< / span > < / a > < / li >
< li >
< div id = "MSearchBox" class = "MSearchBoxInactive" >
< span class = "left" >
< img id = "MSearchSelect" src = "search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
< input type = "text" id = "MSearchField" value = "Search" accesskey = "S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
< / span > < span class = "right" >
< a id = "MSearchClose" href = "javascript:searchBox.CloseResultsWindow()" > < img id = "MSearchCloseImg" border = "0" src = "search/close.png" alt = "" / > < / a >
< / span >
< / div >
< / li >
< / ul >
< / div >
< / div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" > < / div >
< / div >
< / div >
< div id = "splitbar" style = "-moz-user-select:none;"
class="ui-resizable-handle">
< / div >
< / div >
< script type = "text/javascript" >
2019-10-18 12:36:04 +01:00
$(document).ready(function(){initNavTree('driverValidation.html','');});
2019-07-08 12:45:16 +01:00
< / script >
< div id = "doc-content" >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(0)" > < span class = "SelectionMark" >   < / span > All< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(1)" > < span class = "SelectionMark" >   < / span > Data Structures< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(2)" > < span class = "SelectionMark" >   < / span > Files< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(3)" > < span class = "SelectionMark" >   < / span > Functions< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(4)" > < span class = "SelectionMark" >   < / span > Variables< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(5)" > < span class = "SelectionMark" >   < / span > Typedefs< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(6)" > < span class = "SelectionMark" >   < / span > Enumerations< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(7)" > < span class = "SelectionMark" >   < / span > Enumerator< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(8)" > < span class = "SelectionMark" >   < / span > Macros< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(9)" > < span class = "SelectionMark" >   < / span > Groups< / a > < a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(10)" > < span class = "SelectionMark" >   < / span > Pages< / a > < / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< iframe src = "javascript:void(0)" frameborder = "0"
name="MSearchResults" id="MSearchResults">
< / iframe >
< / div >
< div class = "header" >
< div class = "headertitle" >
2019-10-18 12:36:04 +01:00
< div class = "title" > Driver Validation < / div > < / div >
2019-07-08 12:45:16 +01:00
< / div > <!-- header -->
< div class = "contents" >
2019-10-18 12:36:04 +01:00
< div class = "textblock" > < p > The < a href = "http://www.keil.com/pack/" target = "_blank" > Software Pack< / a > named < b > ARM::CMSIS-Driver_Validation< / b > contains the following:< / p >
< ul >
< li > Source code of a CMSIS-Driver Validation Suite along with configuration file.< / li >
< li > Documentation of the CMSIS-Driver Validation Suite.< / li >
< li > Examples that shows the usage of the CMSIS-Driver Validation Suite on various target platforms.< / li >
< / ul >
< p > The CMSIS-Driver Validation Suite performs the following tests:< / p >
< ul >
< li > Generic Validation of API function calls< / li >
< li > Validation of Configuration Parameters< / li >
< li > Validation of Communication with loopback tests< / li >
< li > Validation of Communication Parameters such as baudrate< / li >
< li > Validation of Event functions< / li >
< / ul >
< p > The following CMSIS-Drivers can be tested with the current release:< / p >
< ul >
< li > < a class = "el" href = "group__can__interface__gr.html" > CAN Interface< / a > : with loop back test of communication.< / li >
< li > < a class = "el" href = "group__eth__interface__gr.html" > Ethernet Interface< / a > : MAC and PHY with loop back test of communication.< / li >
< li > < a class = "el" href = "group__i2c__interface__gr.html" > I2C Interface< / a > : only API and setup; does not test data transfer.< / li >
< li > < a class = "el" href = "group__mci__interface__gr.html" > MCI Interface< / a > : only API and setup; does not test data transfer.< / li >
< li > < a class = "el" href = "group__spi__interface__gr.html" > SPI Interface< / a > : with loop back test of communication.< / li >
< li > < a class = "el" href = "group__usart__interface__gr.html" > USART Interface< / a > : with loop back test of communication.< / li >
< li > < a class = "el" href = "group__usbd__interface__gr.html" > USB Device Interface< / a > : only API and setup; does not test data transfer.< / li >
< li > < a class = "el" href = "group__usbh__interface__gr.html" > USB Host Interface< / a > : only API and setup; does not test data transfer.< / li >
< / ul >
< p > The Driver Validation output can printed to a console, output via ITM printf, or output to a memory buffer.< / p >
< h1 > < a class = "anchor" id = "test_output" > < / a >
Sample Test Output< / h1 >
< pre class = "fragment" > CMSIS-Driver Test Aug 24 2015 15:15:14
TEST 01: SPI_GetCapabilities PASSED
TEST 02: SPI_Initialization
DV_SPI.c(142) - Failed
TEST 03: SPI_PowerControl NOT EXECUTED
:
:
TEST 23: USART_Send
DV_USART.c(335) - Fail to send 1024 bytes
DV_USART.c(335) - Fail to send 2048 bytes
DV_USART.c(341) - Fail to send without callback 2048 bytes
:
:
Test Summary: 52 Tests: 42 Executed, 22 Failed.
653 Test Cases: 56 Errors(s), 12 Warning(s).
< / pre > < h1 > < a class = "anchor" id = "loop_back_setup" > < / a >
Setup for Loop Back Communication< / h1 >
< p > To perform loop back communication tests it is required to connect the input and the output of the peripherals as shown in this table:< / p >
< table class = "doxtable" >
< tr >
< th align = "left" > Peripheral < / th > < th align = "left" > Loop Back Configuration < / th > < / tr >
< tr >
< td align = "left" > Ethernet < / td > < td align = "left" > Connect TX+ (Pin 1) with RX+ (Pin 3), TX- (Pin 2) with RX- (Pin 6) < / td > < / tr >
< tr >
< td align = "left" > SPI < / td > < td align = "left" > Connect MISO to MOSI < / td > < / tr >
< tr >
< td align = "left" > USART < / td > < td align = "left" > Connect TX with RX < / td > < / tr >
2019-07-08 12:45:16 +01:00
< / table >
2019-10-18 12:36:04 +01:00
< p > The following picture shows the necessary external loop back connections for the Keil MCBSTM32F400 evaluation board:< / p >
< ul >
< li > SPI: PB14 (SPI2_MISO) and PB15 (SPI2_MOSI)< / li >
< li > USART: PB6 (USART1_TX) and PB7 (USART1_RX)< / li >
< li > Ethernet: Pin 1 (TX+) and Pin 3 (RX+), Pin 2 (TX-) and Pin 6 (RX-)< / li >
< / ul >
< div class = "image" >
< img src = "image006.png" alt = "image006.png" / >
< div class = "caption" >
Connections for Loop Back Communication Tests on Keil MCBSTM32F400< / div > < / div >
< / div > < / div > <!-- contents -->
2019-07-08 12:45:16 +01:00
< / div > <!-- doc - content -->
<!-- start footer part -->
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
2019-10-18 12:36:04 +01:00
< li class = "footer" > Generated on Wed Aug 1 2018 17:12:13 for CMSIS-Driver by Arm Ltd. All rights reserved.
2019-07-08 12:45:16 +01:00
<!--
< a href = "http://www.doxygen.org/index.html" >
2019-10-18 12:36:04 +01:00
< img class = "footer" src = "doxygen.png" alt = "doxygen" / > < / a > 1.8.6
2019-07-08 12:45:16 +01:00
-->
< / li >
< / ul >
< / div >
< / body >
< / html >