<!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"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>axivdma: vdma_api.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.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="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</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: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">axivdma
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="pages.html"><span>Examples</span></a></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('vdma__api_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">vdma_api.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file has high level API to configure and start the VDMA.The file assumes that: The design has VDMA with both MM2S and S2MM path enable. </p>
<p>The API's has tested with hardware that has tow VDMA and MM2S to S2MM are back to back connected for each VDMA.</p>
<p>MODIFICATION HISTORY:</p>
<p>Ver Who Date Changes </p>
<hr/>
<p> 4.0 adk 11/26/15 First release </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a8f3f4f8546399efc071f59f35f17bdfa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vdma__api_8c.html#a8f3f4f8546399efc071f59f35f17bdfa">run_triple_frame_buffer</a> (<a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *InstancePtr, int DeviceId, int hsize, int vsize, int buf_base_addr, int number_frame_count, int enable_frm_cnt_intr)</td></tr>
<tr class="memdesc:a8f3f4f8546399efc071f59f35f17bdfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">run_triple_frame_buffer API  <a href="#a8f3f4f8546399efc071f59f35f17bdfa">More...</a><br/></td></tr>
<tr class="separator:a8f3f4f8546399efc071f59f35f17bdfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a8f3f4f8546399efc071f59f35f17bdfa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int run_triple_frame_buffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_axi_vdma.html">XAxiVdma</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>DeviceId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>hsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>vsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>buf_base_addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>number_frame_count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>enable_frm_cnt_intr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>run_triple_frame_buffer API </p>
<p>This API is the interface between application and other API. When application will call this API with right argument, This API will call rest of the API to configure the read and write path of VDMA,based on ID. After that it will start both the read and write path of VDMA</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is the handle to <a class="el" href="struct_x_axi_vdma.html" title="The XAxiVdma driver instance data. ">XAxiVdma</a> data structure. </td></tr>
    <tr><td class="paramname">DeviceId</td><td>is the device ID of current VDMA </td></tr>
    <tr><td class="paramname">hsize</td><td>is the horizontal size of the frame. It will be in Pixels. The actual size of frame will be calculated by multiplying this with tdata width. </td></tr>
    <tr><td class="paramname">vsize</td><td>is the Vertical size of the frame. </td></tr>
    <tr><td class="paramname">buf_base_addr</td><td>is the buffer address where frames will be written and read by VDMA. </td></tr>
    <tr><td class="paramname">number_frame_count</td><td>specifies after how many frames the interrupt should come. </td></tr>
    <tr><td class="paramname">enable_frm_cnt_intr</td><td>is for enabling frame count interrupt when set to 1. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if example finishes successfully</li>
<li>XST_FAILURE if example fails. </li>
</ul>
</dd></dl>

<p>References <a class="el" href="group__axivdma.html#ga76cf51d7be754a670e697e74966c68cd">XAxiVdma_Config::BaseAddress</a>, <a class="el" href="group__axivdma.html#ga569bedc89182bd0542f62580767c98d3">XAxiVdma_Config::Mm2SStreamWidth</a>, <a class="el" href="group__axivdma.html#ga03ffbe1551620b7f0f72b905006dcf88">XAxiVdma_FrameCounter::ReadDelayTimerCount</a>, <a class="el" href="group__axivdma.html#gaa60c173f1c6d7314821ae2c24e2ff7af">XAxiVdma_FrameCounter::ReadFrameCount</a>, <a class="el" href="group__axivdma.html#gad55f207b3d4bfab082a90ea7a43f044c">XAxiVdma_FrameCounter::WriteDelayTimerCount</a>, <a class="el" href="group__axivdma.html#gab43078f5f7fdd17728ac6ecfb97aea27">XAxiVdma_FrameCounter::WriteFrameCount</a>, <a class="el" href="group__axivdma.html#ga7dff0c11a9aa88a19519734702904dca">XAxiVdma_CfgInitialize()</a>, <a class="el" href="group__axivdma.html#ga4c687431dde198458fb4e42dff22c106">XAxiVdma_IntrEnable()</a>, <a class="el" href="group__axivdma.html#ga88ccc9e37f16a1b4ecffd5e09a4c8cfb">XAXIVDMA_IXR_ERROR_MASK</a>, <a class="el" href="group__axivdma.html#ga2f25fa1f54f8b95752ba1d303fc4a6b6">XAXIVDMA_IXR_FRMCNT_MASK</a>, <a class="el" href="group__axivdma.html#ga0188e06158c255eba62f52141cff5d84">XAxiVdma_LookupConfig()</a>, <a class="el" href="group__axivdma.html#ga5fa27b3ce66d947167262fe918fb5373">XAXIVDMA_READ</a>, <a class="el" href="group__axivdma.html#gaabe404c2a5c1483bc95be749c7540ba4">XAxiVdma_SetFrameCounter()</a>, and <a class="el" href="group__axivdma.html#ga525d0fa8fc04a9dde871ab55cf6b227b">XAXIVDMA_WRITE</a>.</p>

<p>Referenced by <a class="el" href="vdma_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>