<!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"/>
<title>CMSIS DSP Software Library</title>
<title>CMSIS-DSP: CMSIS DSP Software Library</title>
<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);
  $(window).load(resizeHeight);
</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;">
   <div id="projectname">CMSIS-DSP
   &#160;<span id="projectnumber">Version 1.7.0</span>
   </div>
   <div id="projectbrief">CMSIS DSP Software Library</div>
  </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>
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Usage&#160;and&#160;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">
$(document).ready(function(){initNavTree('index.html','');});
</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">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</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">
<div class="title">CMSIS DSP Software Library </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h2>Introduction </h2>
<p>This user manual describes the CMSIS DSP software library, a suite of common signal processing functions for use on Cortex-M processor based devices.</p>
<p>The library is divided into a number of functions each covering a specific category:</p>
<ul>
<li>Basic math functions</li>
<li>Fast math functions</li>
<li>Complex math functions</li>
<li>Filters</li>
<li>Matrix functions</li>
<li>Transform functions</li>
<li>Motor control functions</li>
<li>Statistical functions</li>
<li>Support functions</li>
<li>Interpolation functions</li>
</ul>
<p>The library has separate functions for operating on 8-bit integers, 16-bit integers, 32-bit integer and 32-bit floating-point values.</p>
<h2>Using the Library </h2>
<p>The library installer contains prebuilt versions of the libraries in the <code>Lib</code> folder.</p>
<ul>
<li>arm_cortexM7lfdp_math.lib (Cortex-M7, Little endian, Double Precision Floating Point Unit)</li>
<li>arm_cortexM7bfdp_math.lib (Cortex-M7, Big endian, Double Precision Floating Point Unit)</li>
<li>arm_cortexM7lfsp_math.lib (Cortex-M7, Little endian, Single Precision Floating Point Unit)</li>
<li>arm_cortexM7bfsp_math.lib (Cortex-M7, Big endian and Single Precision Floating Point Unit on)</li>
<li>arm_cortexM7l_math.lib (Cortex-M7, Little endian)</li>
<li>arm_cortexM7b_math.lib (Cortex-M7, Big endian)</li>
<li>arm_cortexM4lf_math.lib (Cortex-M4, Little endian, Floating Point Unit)</li>
<li>arm_cortexM4bf_math.lib (Cortex-M4, Big endian, Floating Point Unit)</li>
<li>arm_cortexM4l_math.lib (Cortex-M4, Little endian)</li>
<li>arm_cortexM4b_math.lib (Cortex-M4, Big endian)</li>
<li>arm_cortexM3l_math.lib (Cortex-M3, Little endian)</li>
<li>arm_cortexM3b_math.lib (Cortex-M3, Big endian)</li>
<li>arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+, Little endian)</li>
<li>arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+, Big endian)</li>
<li>arm_ARMv8MBLl_math.lib (Armv8-M Baseline, Little endian)</li>
<li>arm_ARMv8MMLl_math.lib (Armv8-M Mainline, Little endian)</li>
<li>arm_ARMv8MMLlfsp_math.lib (Armv8-M Mainline, Little endian, Single Precision Floating Point Unit)</li>
<li>arm_ARMv8MMLld_math.lib (Armv8-M Mainline, Little endian, DSP instructions)</li>
<li>arm_ARMv8MMLldfsp_math.lib (Armv8-M Mainline, Little endian, DSP instructions, Single Precision Floating Point Unit)</li>
</ul>
<p>The library functions are declared in the public file <code><a class="el" href="arm__math_8h.html">arm_math.h</a></code> which is placed in the <code>Include</code> folder. Simply include this file and link the appropriate library in the application and begin calling the library functions. The Library supports single public header file <code> <a class="el" href="arm__math_8h.html">arm_math.h</a></code> for Cortex-M cores with little endian and big endian. Same header file will be used for floating point unit(FPU) variants.</p>
<h2>Examples </h2>
<p>The library ships with a number of examples which demonstrate how to use the library functions.</p>
<h2>Toolchain Support </h2>
<p>The library has been developed and tested with MDK version 5.14.0.0 The library is being tested in GCC and IAR toolchains and updates on this activity will be made available shortly.</p>
<h2>Building the Library </h2>
<p>The library installer contains a project file to rebuild libraries on MDK toolchain in the <code>CMSIS\DSP\Projects\ARM</code> folder.</p>
<ul>
<li>arm_cortexM_math.uvprojx</li>
</ul>
<p>The libraries can be built by opening the arm_cortexM_math.uvprojx project in MDK-ARM, selecting a specific target, and defining the optional preprocessor macros detailed above.</p>
<h2>Preprocessor Macros </h2>
<p>Each library project have different preprocessor macros.</p>
<ul>
<li>ARM_MATH_BIG_ENDIAN:</li>
</ul>
<p>Define macro ARM_MATH_BIG_ENDIAN to build the library for big endian targets. By default library builds for little endian targets.</p>
<ul>
<li>ARM_MATH_MATRIX_CHECK:</li>
</ul>
<p>Define macro ARM_MATH_MATRIX_CHECK for checking on the input and output sizes of matrices</p>
<ul>
<li>ARM_MATH_ROUNDING:</li>
</ul>
<p>Define macro ARM_MATH_ROUNDING for rounding on support functions</p>
<ul>
<li>ARM_MATH_LOOPUNROLL:</li>
</ul>
<p>Define macro ARM_MATH_LOOPUNROLL to enable manual loop unrolling in DSP functions</p>
<ul>
<li>ARM_MATH_NEON:</li>
</ul>
<p>Define macro ARM_MATH_NEON to enable Neon versions of the DSP functions. It is not enabled by default when Neon is available because performances are dependent on the compiler and target architecture.</p>
<ul>
<li>ARM_MATH_NEON_EXPERIMENTAL:</li>
</ul>
<p>Define macro ARM_MATH_NEON_EXPERIMENTAL to enable experimental Neon versions of of some DSP functions. Experimental Neon versions currently do not have better performances than the scalar versions.</p>
<hr/>
 <h2>CMSIS-DSP in ARM::CMSIS Pack </h2>
<p>The following files relevant to CMSIS-DSP are present in the <b>ARM::CMSIS</b> Pack directories: </p>
<table class="doxtable">
<tr>
<th>File/Folder </th><th>Content  </th></tr>
<tr>
<td><b>CMSIS\Documentation\DSP</b> </td><td>This documentation </td></tr>
<tr>
<td><b>CMSIS\DSP\DSP_Lib_TestSuite</b> </td><td>DSP_Lib test suite </td></tr>
<tr>
<td><b>CMSIS\DSP\Examples</b> </td><td>Example projects demonstrating the usage of the library functions </td></tr>
<tr>
<td><b>CMSIS\DSP\Include</b> </td><td>DSP_Lib include files </td></tr>
<tr>
<td><b>CMSIS\DSP\Lib</b> </td><td>DSP_Lib binaries </td></tr>
<tr>
<td><b>CMSIS\DSP\Projects</b> </td><td>Projects to rebuild DSP_Lib binaries </td></tr>
<tr>
<td><b>CMSIS\DSP\Source</b> </td><td>DSP_Lib source files </td></tr>
</table>
<hr/>
 <h2>Revision History of CMSIS-DSP </h2>
<p>Please refer to <a class="el" href="ChangeLog_pg.html">Revision History of CMSIS-DSP</a>. </p>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Wed Jul 10 2019 15:20:40 for CMSIS-DSP Version 1.7.0 by Arm Ltd. All rights reserved.
	<!--
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 
	-->
	</li>
  </ul>
</div>
</body>
</html>
