]> Git Repo - pico-vscode.git/blob - web/docs/group__multicore__fifo.html
Merge branch 'main' into main
[pico-vscode.git] / web / docs / group__multicore__fifo.html
1 <!-- HTML header for doxygen 1.8.20-->
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5         <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
6         <meta http-equiv="X-UA-Compatible" content="IE=9"/>
7         <meta name="generator" content="Doxygen 1.9.4"/>
8         <meta name="viewport" content="width=device-width, initial-scale=1"/>
9         <title>Raspberry Pi Pico SDK: fifo</title>
10         <!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
11         <script type="text/javascript" src="jquery.js"></script>
12         <script type="text/javascript" src="dynsections.js"></script>
13         <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtreedata.js"></script>
16 <script type="text/javascript" src="navtree.js"></script>
17         <link href="search/search.css" rel="stylesheet" type="text/css"/>
18 <script type="text/javascript" src="search/searchdata.js"></script>
19 <script type="text/javascript" src="search/search.js"></script>
20     <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
21         <link href="doxygen.css" rel="stylesheet" type="text/css" />
22         <link href="normalise.css" rel="stylesheet" type="text/css"/>
23 <link href="main.css" rel="stylesheet" type="text/css"/>
24 <link href="styles.css" rel="stylesheet" type="text/css"/>
25 </head>
26 <body>
27         <div class="navigation-mobile">
28                 <div class="logo--mobile">
29                         <a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
30                 </div>
31                 <div class="navigation-toggle">
32                         <span class="line-1"></span>
33                         <span class="line-2">
34                                 <p>Menu Toggle</p>
35                         </span>
36                         <span class="line-3"></span>
37                 </div>
38         </div>
39         <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
40                 <div class="logo">
41                         <a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
42                         <span style="display: inline-block; margin-top: 10px;">
43                                 v2.0.0
44                         </span>
45                 </div>
46                 <div class="navigation-footer">
47                         <img src="logo-mobile.svg" alt="Raspberry Pi">
48                         <a href="https://www.raspberrypi.com/" target="_blank">By Raspberry Pi Ltd</a>
49                 </div>
50 <!--            <div class="search">
51                         <form>
52                                 <input type="search" name="search" id="search" placeholder="Search">
53                                 <input type="submit" value="Search">
54                         </form>
55                 </div> -->
56 <!-- Generated by Doxygen 1.9.4 -->
57 <script type="text/javascript">
58 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
59 var searchBox = new SearchBox("searchBox", "search",'Search','.html');
60 /* @license-end */
61 </script>
62 <script type="text/javascript" src="menudata.js"></script>
63 <script type="text/javascript" src="menu.js"></script>
64 <script type="text/javascript">
65 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
66 $(function() {
67   initMenu('',true,false,'search.php','Search');
68   $(document).ready(function() { init_search(); });
69 });
70 /* @license-end */
71 </script>
72 <div id="main-nav"></div>
73 </div><!-- top -->
74 <div id="side-nav" class="ui-resizable side-nav-resizable">
75   <div id="nav-tree">
76     <div id="nav-tree-contents">
77       <div id="nav-sync" class="sync"></div>
78     </div>
79   </div>
80   <div id="splitbar" style="-moz-user-select:none;" 
81        class="ui-resizable-handle">
82   </div>
83 </div>
84 <script type="text/javascript">
85 /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
86 $(document).ready(function(){initNavTree('group__multicore__fifo.html',''); initResizable(); });
87 /* @license-end */
88 </script>
89 <div id="doc-content">
90 <!-- window showing the filter options -->
91 <div id="MSearchSelectWindow"
92      onmouseover="return searchBox.OnSearchSelectShow()"
93      onmouseout="return searchBox.OnSearchSelectHide()"
94      onkeydown="return searchBox.OnSearchSelectKey(event)">
95 </div>
96
97 <!-- iframe showing the search results (closed by default) -->
98 <div id="MSearchResultsWindow">
99 <iframe src="javascript:void(0)" frameborder="0" 
100         name="MSearchResults" id="MSearchResults">
101 </iframe>
102 </div>
103
104 <div class="header">
105   <div class="summary">
106 <a href="#func-members">Functions</a>  </div>
107   <div class="headertitle"><div class="title">fifo<div class="ingroups"><a class="el" href="group__high__level.html">High Level APIs</a> &raquo; <a class="el" href="group__pico__multicore.html">pico_multicore</a></div></div></div>
108 </div><!--header-->
109 <div class="contents">
110
111 <p>Functions for the inter-core FIFOs.  
112 <a href="#details">More...</a></p>
113 <table class="memberdecls">
114 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
115 Functions</h2></td></tr>
116 <tr class="memitem:gaffd246b81370d37fc13181a561303834"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#gaffd246b81370d37fc13181a561303834">multicore_fifo_rvalid</a> (void)</td></tr>
117 <tr class="memdesc:gaffd246b81370d37fc13181a561303834"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the read FIFO to see if there is data available (sent by the other core)  <a href="group__multicore__fifo.html#gaffd246b81370d37fc13181a561303834">More...</a><br /></td></tr>
118 <tr class="separator:gaffd246b81370d37fc13181a561303834"><td class="memSeparator" colspan="2">&#160;</td></tr>
119 <tr class="memitem:ga6065367210695961c11ab3706140d3a9"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga6065367210695961c11ab3706140d3a9">multicore_fifo_wready</a> (void)</td></tr>
120 <tr class="memdesc:ga6065367210695961c11ab3706140d3a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the write FIFO to see if it has space for more data.  <a href="group__multicore__fifo.html#ga6065367210695961c11ab3706140d3a9">More...</a><br /></td></tr>
121 <tr class="separator:ga6065367210695961c11ab3706140d3a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
122 <tr class="memitem:ga134933a693c53c4f94c9d3cd3cabfc79"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga134933a693c53c4f94c9d3cd3cabfc79">multicore_fifo_push_blocking</a> (uint32_t data)</td></tr>
123 <tr class="memdesc:ga134933a693c53c4f94c9d3cd3cabfc79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Push data on to the write FIFO (data to the other core).  <a href="group__multicore__fifo.html#ga134933a693c53c4f94c9d3cd3cabfc79">More...</a><br /></td></tr>
124 <tr class="separator:ga134933a693c53c4f94c9d3cd3cabfc79"><td class="memSeparator" colspan="2">&#160;</td></tr>
125 <tr class="memitem:ga559050fb6fd4a37ccc81ef6272cbf34b"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga559050fb6fd4a37ccc81ef6272cbf34b">multicore_fifo_push_blocking_inline</a> (uint32_t data)</td></tr>
126 <tr class="memdesc:ga559050fb6fd4a37ccc81ef6272cbf34b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Push data on to the write FIFO (data to the other core).  <a href="group__multicore__fifo.html#ga559050fb6fd4a37ccc81ef6272cbf34b">More...</a><br /></td></tr>
127 <tr class="separator:ga559050fb6fd4a37ccc81ef6272cbf34b"><td class="memSeparator" colspan="2">&#160;</td></tr>
128 <tr class="memitem:ga0c32cfcd182d5f1d3a25b6fb503352b7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga0c32cfcd182d5f1d3a25b6fb503352b7">multicore_fifo_push_timeout_us</a> (uint32_t data, uint64_t timeout_us)</td></tr>
129 <tr class="memdesc:ga0c32cfcd182d5f1d3a25b6fb503352b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Push data on to the write FIFO (data to the other core) with timeout.  <a href="group__multicore__fifo.html#ga0c32cfcd182d5f1d3a25b6fb503352b7">More...</a><br /></td></tr>
130 <tr class="separator:ga0c32cfcd182d5f1d3a25b6fb503352b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
131 <tr class="memitem:ga929272dd1056d8ae05667beda4adb0fc"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga929272dd1056d8ae05667beda4adb0fc">multicore_fifo_pop_blocking</a> (void)</td></tr>
132 <tr class="memdesc:ga929272dd1056d8ae05667beda4adb0fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pop data from the read FIFO (data from the other core).  <a href="group__multicore__fifo.html#ga929272dd1056d8ae05667beda4adb0fc">More...</a><br /></td></tr>
133 <tr class="separator:ga929272dd1056d8ae05667beda4adb0fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
134 <tr class="memitem:ga282badad31e14f5b593ec1ddffae08f5"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga282badad31e14f5b593ec1ddffae08f5">multicore_fifo_pop_blocking_inline</a> (void)</td></tr>
135 <tr class="memdesc:ga282badad31e14f5b593ec1ddffae08f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pop data from the read FIFO (data from the other core).  <a href="group__multicore__fifo.html#ga282badad31e14f5b593ec1ddffae08f5">More...</a><br /></td></tr>
136 <tr class="separator:ga282badad31e14f5b593ec1ddffae08f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
137 <tr class="memitem:ga27824f253c72ae50ae97e6f516220c60"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga27824f253c72ae50ae97e6f516220c60">multicore_fifo_pop_timeout_us</a> (uint64_t timeout_us, uint32_t *out)</td></tr>
138 <tr class="memdesc:ga27824f253c72ae50ae97e6f516220c60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pop data from the read FIFO (data from the other core) with timeout.  <a href="group__multicore__fifo.html#ga27824f253c72ae50ae97e6f516220c60">More...</a><br /></td></tr>
139 <tr class="separator:ga27824f253c72ae50ae97e6f516220c60"><td class="memSeparator" colspan="2">&#160;</td></tr>
140 <tr class="memitem:ga436e676544edeafb2f2f9e7245282cbf"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga436e676544edeafb2f2f9e7245282cbf">multicore_fifo_drain</a> (void)</td></tr>
141 <tr class="memdesc:ga436e676544edeafb2f2f9e7245282cbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Discard any data in the read FIFO.  <a href="group__multicore__fifo.html#ga436e676544edeafb2f2f9e7245282cbf">More...</a><br /></td></tr>
142 <tr class="separator:ga436e676544edeafb2f2f9e7245282cbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
143 <tr class="memitem:ga96583311e8237cf590d9c78052b288eb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga96583311e8237cf590d9c78052b288eb">multicore_fifo_clear_irq</a> (void)</td></tr>
144 <tr class="memdesc:ga96583311e8237cf590d9c78052b288eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear FIFO interrupt.  <a href="group__multicore__fifo.html#ga96583311e8237cf590d9c78052b288eb">More...</a><br /></td></tr>
145 <tr class="separator:ga96583311e8237cf590d9c78052b288eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
146 <tr class="memitem:ga7c5944bf2b7266465dfe6d4bac4b1c58"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__multicore__fifo.html#ga7c5944bf2b7266465dfe6d4bac4b1c58">multicore_fifo_get_status</a> (void)</td></tr>
147 <tr class="memdesc:ga7c5944bf2b7266465dfe6d4bac4b1c58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get FIFO statuses.  <a href="group__multicore__fifo.html#ga7c5944bf2b7266465dfe6d4bac4b1c58">More...</a><br /></td></tr>
148 <tr class="separator:ga7c5944bf2b7266465dfe6d4bac4b1c58"><td class="memSeparator" colspan="2">&#160;</td></tr>
149 </table>
150 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
151 <p >Functions for the inter-core FIFOs. </p>
152 <p >RP-series microcontrollers contains two FIFOs for passing data, messages or ordered events between the two cores. Each FIFO is 32 bits wide, and 8 entries deep on the RP2040, and 4 entries deep on the RP2350. One of the FIFOs can only be written by core 0, and read by core 1. The other can only be written by core 1, and read by core 0.</p>
153 <dl class="section note"><dt>Note</dt><dd>The inter-core FIFOs are a very precious resource and are frequently used for SDK functionality (e.g. during core 1 launch or by the <a class="el" href="group__multicore__lockout.html">lockout</a> functions). Additionally they are often required for the exclusive use of an RTOS (e.g. FreeRTOS SMP). For these reasons it is suggested that you do not use the FIFO for your own purposes unless none of the above concerns apply; the majority of cases for transferring data between cores can be eqaully well handled by using a <a class="el" href="group__queue.html">queue</a> </dd></dl>
154 <h2 class="groupheader">Function Documentation</h2>
155 <a id="ga96583311e8237cf590d9c78052b288eb" name="ga96583311e8237cf590d9c78052b288eb"></a>
156 <h2 class="memtitle"><span class="permalink"><a href="#ga96583311e8237cf590d9c78052b288eb">&#9670;&nbsp;</a></span>multicore_fifo_clear_irq()</h2>
157
158 <div class="memitem">
159 <div class="memproto">
160 <table class="mlabels">
161   <tr>
162   <td class="mlabels-left">
163       <table class="memname">
164         <tr>
165           <td class="memname">static void multicore_fifo_clear_irq </td>
166           <td>(</td>
167           <td class="paramtype">void&#160;</td>
168           <td class="paramname"></td><td>)</td>
169           <td></td>
170         </tr>
171       </table>
172   </td>
173   <td class="mlabels-right">
174 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
175   </tr>
176 </table>
177 </div><div class="memdoc">
178
179 <p>Clear FIFO interrupt. </p>
180 <p >Note that this only clears an interrupt that was caused by the ROE or WOF flags. To clear the VLD flag you need to use one of the 'pop' or 'drain' functions.</p>
181 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs</p>
182 <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__multicore__fifo.html#ga7c5944bf2b7266465dfe6d4bac4b1c58" title="Get FIFO statuses.">multicore_fifo_get_status</a> </dd></dl>
183
184 </div>
185 </div>
186 <a id="ga436e676544edeafb2f2f9e7245282cbf" name="ga436e676544edeafb2f2f9e7245282cbf"></a>
187 <h2 class="memtitle"><span class="permalink"><a href="#ga436e676544edeafb2f2f9e7245282cbf">&#9670;&nbsp;</a></span>multicore_fifo_drain()</h2>
188
189 <div class="memitem">
190 <div class="memproto">
191 <table class="mlabels">
192   <tr>
193   <td class="mlabels-left">
194       <table class="memname">
195         <tr>
196           <td class="memname">static void multicore_fifo_drain </td>
197           <td>(</td>
198           <td class="paramtype">void&#160;</td>
199           <td class="paramname"></td><td>)</td>
200           <td></td>
201         </tr>
202       </table>
203   </td>
204   <td class="mlabels-right">
205 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
206   </tr>
207 </table>
208 </div><div class="memdoc">
209
210 <p>Discard any data in the read FIFO. </p>
211 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs </p>
212
213 </div>
214 </div>
215 <a id="ga7c5944bf2b7266465dfe6d4bac4b1c58" name="ga7c5944bf2b7266465dfe6d4bac4b1c58"></a>
216 <h2 class="memtitle"><span class="permalink"><a href="#ga7c5944bf2b7266465dfe6d4bac4b1c58">&#9670;&nbsp;</a></span>multicore_fifo_get_status()</h2>
217
218 <div class="memitem">
219 <div class="memproto">
220 <table class="mlabels">
221   <tr>
222   <td class="mlabels-left">
223       <table class="memname">
224         <tr>
225           <td class="memname">static uint32_t multicore_fifo_get_status </td>
226           <td>(</td>
227           <td class="paramtype">void&#160;</td>
228           <td class="paramname"></td><td>)</td>
229           <td></td>
230         </tr>
231       </table>
232   </td>
233   <td class="mlabels-right">
234 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
235   </tr>
236 </table>
237 </div><div class="memdoc">
238
239 <p>Get FIFO statuses. </p>
240 <dl class="section return"><dt>Returns</dt><dd>The statuses as a bitfield</dd></dl>
241 <table class="markdownTable">
242 <tr class="markdownTableHead">
243 <th class="markdownTableHeadNone">Bit   </th><th class="markdownTableHeadNone">Description    </th></tr>
244 <tr class="markdownTableRowOdd">
245 <td class="markdownTableBodyNone">3   </td><td class="markdownTableBodyNone">Sticky flag indicating the RX FIFO was read when empty (ROE). This read was ignored by the FIFO.    </td></tr>
246 <tr class="markdownTableRowEven">
247 <td class="markdownTableBodyNone">2   </td><td class="markdownTableBodyNone">Sticky flag indicating the TX FIFO was written when full (WOF). This write was ignored by the FIFO.    </td></tr>
248 <tr class="markdownTableRowOdd">
249 <td class="markdownTableBodyNone">1   </td><td class="markdownTableBodyNone">Value is 1 if this core’s TX FIFO is not full (i.e. if FIFO_WR is ready for more data)    </td></tr>
250 <tr class="markdownTableRowEven">
251 <td class="markdownTableBodyNone">0   </td><td class="markdownTableBodyNone">Value is 1 if this core’s RX FIFO is not empty (i.e. if FIFO_RD is valid)   </td></tr>
252 </table>
253 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs </p>
254
255 </div>
256 </div>
257 <a id="ga929272dd1056d8ae05667beda4adb0fc" name="ga929272dd1056d8ae05667beda4adb0fc"></a>
258 <h2 class="memtitle"><span class="permalink"><a href="#ga929272dd1056d8ae05667beda4adb0fc">&#9670;&nbsp;</a></span>multicore_fifo_pop_blocking()</h2>
259
260 <div class="memitem">
261 <div class="memproto">
262       <table class="memname">
263         <tr>
264           <td class="memname">uint32_t multicore_fifo_pop_blocking </td>
265           <td>(</td>
266           <td class="paramtype">void&#160;</td>
267           <td class="paramname"></td><td>)</td>
268           <td></td>
269         </tr>
270       </table>
271 </div><div class="memdoc">
272
273 <p>Pop data from the read FIFO (data from the other core). </p>
274 <p >This function will block until there is data ready to be read Use <a class="el" href="group__multicore__fifo.html#gaffd246b81370d37fc13181a561303834" title="Check the read FIFO to see if there is data available (sent by the other core)">multicore_fifo_rvalid()</a> to check if data is ready to be read if you don't want to block.</p>
275 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs</p>
276 <dl class="section return"><dt>Returns</dt><dd>32 bit data from the read FIFO. </dd></dl>
277
278 </div>
279 </div>
280 <a id="ga282badad31e14f5b593ec1ddffae08f5" name="ga282badad31e14f5b593ec1ddffae08f5"></a>
281 <h2 class="memtitle"><span class="permalink"><a href="#ga282badad31e14f5b593ec1ddffae08f5">&#9670;&nbsp;</a></span>multicore_fifo_pop_blocking_inline()</h2>
282
283 <div class="memitem">
284 <div class="memproto">
285 <table class="mlabels">
286   <tr>
287   <td class="mlabels-left">
288       <table class="memname">
289         <tr>
290           <td class="memname">static uint32_t multicore_fifo_pop_blocking_inline </td>
291           <td>(</td>
292           <td class="paramtype">void&#160;</td>
293           <td class="paramname"></td><td>)</td>
294           <td></td>
295         </tr>
296       </table>
297   </td>
298   <td class="mlabels-right">
299 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
300   </tr>
301 </table>
302 </div><div class="memdoc">
303
304 <p>Pop data from the read FIFO (data from the other core). </p>
305 <p >This function will block until there is data ready to be read Use <a class="el" href="group__multicore__fifo.html#gaffd246b81370d37fc13181a561303834" title="Check the read FIFO to see if there is data available (sent by the other core)">multicore_fifo_rvalid()</a> to check if data is ready to be read if you don't want to block.</p>
306 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs</p>
307 <dl class="section return"><dt>Returns</dt><dd>32 bit data from the read FIFO. </dd></dl>
308
309 </div>
310 </div>
311 <a id="ga27824f253c72ae50ae97e6f516220c60" name="ga27824f253c72ae50ae97e6f516220c60"></a>
312 <h2 class="memtitle"><span class="permalink"><a href="#ga27824f253c72ae50ae97e6f516220c60">&#9670;&nbsp;</a></span>multicore_fifo_pop_timeout_us()</h2>
313
314 <div class="memitem">
315 <div class="memproto">
316       <table class="memname">
317         <tr>
318           <td class="memname">bool multicore_fifo_pop_timeout_us </td>
319           <td>(</td>
320           <td class="paramtype">uint64_t&#160;</td>
321           <td class="paramname"><em>timeout_us</em>, </td>
322         </tr>
323         <tr>
324           <td class="paramkey"></td>
325           <td></td>
326           <td class="paramtype">uint32_t *&#160;</td>
327           <td class="paramname"><em>out</em>&#160;</td>
328         </tr>
329         <tr>
330           <td></td>
331           <td>)</td>
332           <td></td><td></td>
333         </tr>
334       </table>
335 </div><div class="memdoc">
336
337 <p>Pop data from the read FIFO (data from the other core) with timeout. </p>
338 <p >This function will block until there is data ready to be read or the timeout is reached</p>
339 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs</p>
340 <dl class="params"><dt>Parameters</dt><dd>
341   <table class="params">
342     <tr><td class="paramname">timeout_us</td><td>the timeout in microseconds </td></tr>
343     <tr><td class="paramname">out</td><td>the location to store the popped data if available </td></tr>
344   </table>
345   </dd>
346 </dl>
347 <dl class="section return"><dt>Returns</dt><dd>true if the data was popped and a value copied into <code>out</code>, false if the timeout occurred before data could be popped </dd></dl>
348
349 </div>
350 </div>
351 <a id="ga134933a693c53c4f94c9d3cd3cabfc79" name="ga134933a693c53c4f94c9d3cd3cabfc79"></a>
352 <h2 class="memtitle"><span class="permalink"><a href="#ga134933a693c53c4f94c9d3cd3cabfc79">&#9670;&nbsp;</a></span>multicore_fifo_push_blocking()</h2>
353
354 <div class="memitem">
355 <div class="memproto">
356       <table class="memname">
357         <tr>
358           <td class="memname">void multicore_fifo_push_blocking </td>
359           <td>(</td>
360           <td class="paramtype">uint32_t&#160;</td>
361           <td class="paramname"><em>data</em></td><td>)</td>
362           <td></td>
363         </tr>
364       </table>
365 </div><div class="memdoc">
366
367 <p>Push data on to the write FIFO (data to the other core). </p>
368 <p >This function will block until there is space for the data to be sent. Use <a class="el" href="group__multicore__fifo.html#ga6065367210695961c11ab3706140d3a9">multicore_fifo_wready()</a> to check if it is possible to write to the FIFO if you don't want to block.</p>
369 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs</p>
370 <dl class="params"><dt>Parameters</dt><dd>
371   <table class="params">
372     <tr><td class="paramname">data</td><td>A 32 bit value to push on to the FIFO </td></tr>
373   </table>
374   </dd>
375 </dl>
376
377 </div>
378 </div>
379 <a id="ga559050fb6fd4a37ccc81ef6272cbf34b" name="ga559050fb6fd4a37ccc81ef6272cbf34b"></a>
380 <h2 class="memtitle"><span class="permalink"><a href="#ga559050fb6fd4a37ccc81ef6272cbf34b">&#9670;&nbsp;</a></span>multicore_fifo_push_blocking_inline()</h2>
381
382 <div class="memitem">
383 <div class="memproto">
384 <table class="mlabels">
385   <tr>
386   <td class="mlabels-left">
387       <table class="memname">
388         <tr>
389           <td class="memname">static void multicore_fifo_push_blocking_inline </td>
390           <td>(</td>
391           <td class="paramtype">uint32_t&#160;</td>
392           <td class="paramname"><em>data</em></td><td>)</td>
393           <td></td>
394         </tr>
395       </table>
396   </td>
397   <td class="mlabels-right">
398 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
399   </tr>
400 </table>
401 </div><div class="memdoc">
402
403 <p>Push data on to the write FIFO (data to the other core). </p>
404 <p >This function will block until there is space for the data to be sent. Use <a class="el" href="group__multicore__fifo.html#ga6065367210695961c11ab3706140d3a9" title="Check the write FIFO to see if it has space for more data.">multicore_fifo_wready()</a> to check if it is possible to write to the FIFO if you don't want to block.</p>
405 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs</p>
406 <dl class="params"><dt>Parameters</dt><dd>
407   <table class="params">
408     <tr><td class="paramname">data</td><td>A 32 bit value to push on to the FIFO </td></tr>
409   </table>
410   </dd>
411 </dl>
412
413 </div>
414 </div>
415 <a id="ga0c32cfcd182d5f1d3a25b6fb503352b7" name="ga0c32cfcd182d5f1d3a25b6fb503352b7"></a>
416 <h2 class="memtitle"><span class="permalink"><a href="#ga0c32cfcd182d5f1d3a25b6fb503352b7">&#9670;&nbsp;</a></span>multicore_fifo_push_timeout_us()</h2>
417
418 <div class="memitem">
419 <div class="memproto">
420       <table class="memname">
421         <tr>
422           <td class="memname">bool multicore_fifo_push_timeout_us </td>
423           <td>(</td>
424           <td class="paramtype">uint32_t&#160;</td>
425           <td class="paramname"><em>data</em>, </td>
426         </tr>
427         <tr>
428           <td class="paramkey"></td>
429           <td></td>
430           <td class="paramtype">uint64_t&#160;</td>
431           <td class="paramname"><em>timeout_us</em>&#160;</td>
432         </tr>
433         <tr>
434           <td></td>
435           <td>)</td>
436           <td></td><td></td>
437         </tr>
438       </table>
439 </div><div class="memdoc">
440
441 <p>Push data on to the write FIFO (data to the other core) with timeout. </p>
442 <p >This function will block until there is space for the data to be sent or the timeout is reached</p>
443 <dl class="params"><dt>Parameters</dt><dd>
444   <table class="params">
445     <tr><td class="paramname">data</td><td>A 32 bit value to push on to the FIFO </td></tr>
446     <tr><td class="paramname">timeout_us</td><td>the timeout in microseconds </td></tr>
447   </table>
448   </dd>
449 </dl>
450 <dl class="section return"><dt>Returns</dt><dd>true if the data was pushed, false if the timeout occurred before data could be pushed </dd></dl>
451
452 </div>
453 </div>
454 <a id="gaffd246b81370d37fc13181a561303834" name="gaffd246b81370d37fc13181a561303834"></a>
455 <h2 class="memtitle"><span class="permalink"><a href="#gaffd246b81370d37fc13181a561303834">&#9670;&nbsp;</a></span>multicore_fifo_rvalid()</h2>
456
457 <div class="memitem">
458 <div class="memproto">
459 <table class="mlabels">
460   <tr>
461   <td class="mlabels-left">
462       <table class="memname">
463         <tr>
464           <td class="memname">static bool multicore_fifo_rvalid </td>
465           <td>(</td>
466           <td class="paramtype">void&#160;</td>
467           <td class="paramname"></td><td>)</td>
468           <td></td>
469         </tr>
470       </table>
471   </td>
472   <td class="mlabels-right">
473 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
474   </tr>
475 </table>
476 </div><div class="memdoc">
477
478 <p>Check the read FIFO to see if there is data available (sent by the other core) </p>
479 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs</p>
480 <dl class="section return"><dt>Returns</dt><dd>true if the FIFO has data in it, false otherwise </dd></dl>
481
482 </div>
483 </div>
484 <a id="ga6065367210695961c11ab3706140d3a9" name="ga6065367210695961c11ab3706140d3a9"></a>
485 <h2 class="memtitle"><span class="permalink"><a href="#ga6065367210695961c11ab3706140d3a9">&#9670;&nbsp;</a></span>multicore_fifo_wready()</h2>
486
487 <div class="memitem">
488 <div class="memproto">
489 <table class="mlabels">
490   <tr>
491   <td class="mlabels-left">
492       <table class="memname">
493         <tr>
494           <td class="memname">static bool multicore_fifo_wready </td>
495           <td>(</td>
496           <td class="paramtype">void&#160;</td>
497           <td class="paramname"></td><td>)</td>
498           <td></td>
499         </tr>
500       </table>
501   </td>
502   <td class="mlabels-right">
503 <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
504   </tr>
505 </table>
506 </div><div class="memdoc">
507
508 <p>Check the write FIFO to see if it has space for more data. </p>
509 <p >See the note in the <a class="el" href="group__multicore__fifo.html">fifo</a> section for considerations regarding use of the inter-core FIFOs</p>
510 <dl class="section return"><dt>Returns</dt><dd>true if the FIFO has room for more data, false otherwise </dd></dl>
511
512 </div>
513 </div>
514 </div><!-- contents -->
515 </div><!-- doc-content -->
516
517         <script src="main.js"></script>
518 </body>
519 </html>
This page took 0.06023 seconds and 4 git commands to generate.