<p>The driver is not thread safe for performance reasons, if you need to access the SPI bus from multiple thread then use the <code><aclass="el"href="group___s_p_i.html#ga803cec73f6dd8d3d1f18fb6a61b8255a"title="Gains exclusive access to the SPI bus.">spiAcquireBus()</a></code> and <code><aclass="el"href="group___s_p_i.html#ga1b04a2410ef4323ee4e37c63f320c18f"title="Releases exclusive access to the SPI bus.">spiReleaseBus()</a></code> APIs in order to gain exclusive access. </p>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Enables the mutual exclusion APIs on the SPI bus. <ahref="#ga36d1818f9631f955f7cc94629b1d5498"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Initializes the standard part of a <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> structure. <ahref="#ga87a7bdc554b8e8fdfc77064e67689fcf"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Configures and activates the SPI peripheral. <ahref="#ga6752c9f736f8de774a5bef6dfe2aae2e"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Deactivates the SPI peripheral. <ahref="#gad3a359eea03e68e95899886ae93a06e4"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Asserts the slave select signal and prepares for transfers. <ahref="#ga00809152c869db80192aa3e04266a99a"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Ignores data on the SPI bus. <ahref="#ga43889a7d4c473f653596f8c0acafce2a"></a><br/></td></tr>
<tr><tdclass="memItemLeft"align="right"valign="top">void </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group___s_p_i.html#gaf1c59f3fd2f85620a5253c23d9586095">spiExchange</a> (<aclass="el"href="struct_s_p_i_driver.html">SPIDriver</a> *spip, size_t n, const void *txbuf, void *rxbuf)</td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Exchanges data on the SPI bus. <ahref="#gaf1c59f3fd2f85620a5253c23d9586095"></a><br/></td></tr>
<tr><tdclass="memItemLeft"align="right"valign="top">void </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group___s_p_i.html#ga382cfbdffd2df57cf3843d45164e8bfc">spiSend</a> (<aclass="el"href="struct_s_p_i_driver.html">SPIDriver</a> *spip, size_t n, const void *txbuf)</td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Sends data over the SPI bus. <ahref="#ga382cfbdffd2df57cf3843d45164e8bfc"></a><br/></td></tr>
<tr><tdclass="memItemLeft"align="right"valign="top">void </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group___s_p_i.html#gadd99ad823b391dde114f04dedafe5e80">spiReceive</a> (<aclass="el"href="struct_s_p_i_driver.html">SPIDriver</a> *spip, size_t n, void *rxbuf)</td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Receives data from the SPI bus. <ahref="#gadd99ad823b391dde114f04dedafe5e80"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Gains exclusive access to the SPI bus. <ahref="#ga803cec73f6dd8d3d1f18fb6a61b8255a"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Releases exclusive access to the SPI bus. <ahref="#ga1b04a2410ef4323ee4e37c63f320c18f"></a><br/></td></tr>
<p>Initializes the standard part of a <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> structure. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="spi_8c_source.html#l00069">69</a> of file <aclass="el"href="spi_8c_source.html">spi.c</a>.</p>
<areashape="rect"id="node3"href="group__mutexes.html#gac55fe4d05aa6bbeb31594193d2e4d2b6"title="Initializes s Mutex structure."alt=""coords="136,5,200,32"/><areashape="rect"id="node5"href="group__semaphores.html#gafe8fc6155a871074e8017efd908b2c58"title="Initializes a semaphore with the specified counter value."alt=""coords="135,56,201,83"/></map>
<p>Configures and activates the SPI peripheral. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>config</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_config.html"title="Driver configuration structure.">SPIConfig</a></code> object </td></tr>
<p>Referenced by <aclass="el"href="group___m_m_c___s_p_i.html#ga9ff4f12fa759c3cb4aca2b64b11f1d22">mmcConnect()</a>, <aclass="el"href="group___m_m_c___s_p_i.html#ga6c62caa5d008460e7319fb2c36518ddc">mmcStartSequentialRead()</a>, and <aclass="el"href="group___m_m_c___s_p_i.html#ga8031c8222f92a0c6632b36ff943fe825">mmcStartSequentialWrite()</a>.</p>
<areashape="rect"id="node3"href="group___s_p_i___l_l_d.html#gaf35495bd4459608ae22a3f728fd4697b"title="Configures and activates the SPI peripheral."alt=""coords="112,5,192,32"/></map>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<p>References <aclass="el"href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <aclass="el"href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <aclass="el"href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <aclass="el"href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <aclass="el"href="struct_s_p_i_driver.html#ae6b2b959753b948d1333885c745abc2a">SPIDriver::spd_state</a>, <aclass="el"href="group___s_p_i___l_l_d.html#ga8d6b2e0764d39b892b51e6abe4923f80">spi_lld_stop()</a>, <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a2894d6080831bc10e8c6f7c33c60c4ba">SPI_READY</a>, and <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a22a603b07f381cba1ced3de36a0c3ce7">SPI_STOP</a>.</p>
<p>Referenced by <aclass="el"href="group___m_m_c___s_p_i.html#gab90f252316351a93ec38b11f7eaf1f16">mmcDisconnect()</a>, and <aclass="el"href="group___m_m_c___s_p_i.html#ga27833cde77794f914e4802c7e65281a5">mmcStop()</a>.</p>
<areashape="rect"id="node3"href="group___s_p_i___l_l_d.html#ga8d6b2e0764d39b892b51e6abe4923f80"title="Deactivates the SPI peripheral."alt=""coords="113,5,191,32"/></map>
<p>Asserts the slave select signal and prepares for transfers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<p>References <aclass="el"href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <aclass="el"href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <aclass="el"href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <aclass="el"href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <aclass="el"href="struct_s_p_i_driver.html#ae6b2b959753b948d1333885c745abc2a">SPIDriver::spd_state</a>, <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a11bc2d5065a95dc8d721e2070708ba5f">SPI_ACTIVE</a>, <aclass="el"href="group___s_p_i___l_l_d.html#ga5a671d4e8d120120a26d9bfb0c016507">spi_lld_select()</a>, and <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a2894d6080831bc10e8c6f7c33c60c4ba">SPI_READY</a>.</p>
<p>Referenced by <aclass="el"href="group___m_m_c___s_p_i.html#ga6c62caa5d008460e7319fb2c36518ddc">mmcStartSequentialRead()</a>, and <aclass="el"href="group___m_m_c___s_p_i.html#ga8031c8222f92a0c6632b36ff943fe825">mmcStartSequentialWrite()</a>.</p>
<areashape="rect"id="node3"href="group___s_p_i___l_l_d.html#ga5a671d4e8d120120a26d9bfb0c016507"title="Asserts the slave select signal and prepares for transfers."alt=""coords="121,5,207,32"/></map>
<p>The previously selected peripheral is unselected.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<p>References <aclass="el"href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <aclass="el"href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <aclass="el"href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <aclass="el"href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <aclass="el"href="struct_s_p_i_driver.html#ae6b2b959753b948d1333885c745abc2a">SPIDriver::spd_state</a>, <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a11bc2d5065a95dc8d721e2070708ba5f">SPI_ACTIVE</a>, <aclass="el"href="group___s_p_i___l_l_d.html#gafa343fd905298991aa4005015263bcd2">spi_lld_unselect()</a>, and <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a2894d6080831bc10e8c6f7c33c60c4ba">SPI_READY</a>.</p>
<p>Referenced by <aclass="el"href="group___m_m_c___s_p_i.html#ga7e02b9210a8d3d9f8465b8000983dadf">mmcSequentialRead()</a>, <aclass="el"href="group___m_m_c___s_p_i.html#ga9ce0adb181138efc1f835aff6d8eb203">mmcSequentialWrite()</a>, <aclass="el"href="group___m_m_c___s_p_i.html#ga6c62caa5d008460e7319fb2c36518ddc">mmcStartSequentialRead()</a>, <aclass="el"href="group___m_m_c___s_p_i.html#ga8031c8222f92a0c6632b36ff943fe825">mmcStartSequentialWrite()</a>, <aclass="el"href="group___m_m_c___s_p_i.html#gaf55b97f76be81f4ce5cde415f3131400">mmcStopSequentialRead()</a>, and <aclass="el"href="group___m_m_c___s_p_i.html#gae84abdd53540f03262822aa1f9a213b5">mmcStopSequentialWrite()</a>.</p>
<areashape="rect"id="node3"href="group___s_p_i___l_l_d.html#gafa343fd905298991aa4005015263bcd2"title="Deasserts the slave select signal."alt=""coords="133,5,232,32"/></map>
<p>This function transmits a series of idle words on the SPI bus and ignores the received data. This function can be invoked even when a slave select signal has not been yet asserted.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>n</em> </td><td>number of words to be ignored </td></tr>
<p>References <aclass="el"href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <aclass="el"href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <aclass="el"href="struct_s_p_i_driver.html#ae6b2b959753b948d1333885c745abc2a">SPIDriver::spd_state</a>, <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a11bc2d5065a95dc8d721e2070708ba5f">SPI_ACTIVE</a>, <aclass="el"href="group___s_p_i___l_l_d.html#ga076fdc5d74009a7917723b663984d502">spi_lld_ignore()</a>, and <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a2894d6080831bc10e8c6f7c33c60c4ba">SPI_READY</a>.</p>
<p>Referenced by <aclass="el"href="group___m_m_c___s_p_i.html#ga9ff4f12fa759c3cb4aca2b64b11f1d22">mmcConnect()</a>, <aclass="el"href="group___m_m_c___s_p_i.html#ga7e02b9210a8d3d9f8465b8000983dadf">mmcSequentialRead()</a>, and <aclass="el"href="group___m_m_c___s_p_i.html#ga9ce0adb181138efc1f835aff6d8eb203">mmcSequentialWrite()</a>.</p>
<areashape="rect"id="node3"href="group___s_p_i___l_l_d.html#ga076fdc5d74009a7917723b663984d502"title="Ignores data on the SPI bus."alt=""coords="120,5,208,32"/></map>
<p>This function performs a simultaneous transmit/receive operation. </p>
<dlclass="note"><dt><b>Note:</b></dt><dd>The buffers are organized as uint8_t arrays for data sizes below or equal to 8 bits else it is organized as uint16_t arrays.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>n</em> </td><td>number of words to be exchanged </td></tr>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>txbuf</em> </td><td>the pointer to the transmit buffer </td></tr>
<tr><tdvalign="top"><tt>[out]</tt> </td><tdvalign="top"><em>rxbuf</em> </td><td>the pointer to the receive buffer </td></tr>
<areashape="rect"id="node3"href="group___s_p_i___l_l_d.html#ga61b61b0999c813c1d8a3ddc415e8b0c7"title="Exchanges data on the SPI bus."alt=""coords="139,5,245,32"/></map>
<dlclass="note"><dt><b>Note:</b></dt><dd>The buffers are organized as uint8_t arrays for data sizes below or equal to 8 bits else it is organized as uint16_t arrays.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>n</em> </td><td>number of words to send </td></tr>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>txbuf</em> </td><td>the pointer to the transmit buffer </td></tr>
<p>References <aclass="el"href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <aclass="el"href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <aclass="el"href="struct_s_p_i_driver.html#ae6b2b959753b948d1333885c745abc2a">SPIDriver::spd_state</a>, <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a11bc2d5065a95dc8d721e2070708ba5f">SPI_ACTIVE</a>, and <aclass="el"href="group___s_p_i___l_l_d.html#gaa460d53de2de1c3bac67f95fe04da0fe">spi_lld_send()</a>.</p>
<p>Referenced by <aclass="el"href="group___m_m_c___s_p_i.html#ga9ce0adb181138efc1f835aff6d8eb203">mmcSequentialWrite()</a>, <aclass="el"href="group___m_m_c___s_p_i.html#gaf55b97f76be81f4ce5cde415f3131400">mmcStopSequentialRead()</a>, and <aclass="el"href="group___m_m_c___s_p_i.html#gae84abdd53540f03262822aa1f9a213b5">mmcStopSequentialWrite()</a>.</p>
<areashape="rect"id="node3"href="group___s_p_i___l_l_d.html#gaa460d53de2de1c3bac67f95fe04da0fe"title="Sends data ever the SPI bus."alt=""coords="115,5,197,32"/></map>
<dlclass="note"><dt><b>Note:</b></dt><dd>The buffers are organized as uint8_t arrays for data sizes below or equal to 8 bits else it is organized as uint16_t arrays.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>n</em> </td><td>number of words to receive </td></tr>
<tr><tdvalign="top"><tt>[out]</tt> </td><tdvalign="top"><em>rxbuf</em> </td><td>the pointer to the receive buffer </td></tr>
<p>References <aclass="el"href="group__debug.html#ga43d50c69eb730d0f024eb832d61f30c9">chDbgAssert</a>, <aclass="el"href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <aclass="el"href="struct_s_p_i_driver.html#ae6b2b959753b948d1333885c745abc2a">SPIDriver::spd_state</a>, <aclass="el"href="group___s_p_i.html#gga2570f8c1ee9fc0dceaa8f77b999013c3a11bc2d5065a95dc8d721e2070708ba5f">SPI_ACTIVE</a>, and <aclass="el"href="group___s_p_i___l_l_d.html#ga5b608b91dcec69818b2b3977a0d98bcb">spi_lld_receive()</a>.</p>
<p>Referenced by <aclass="el"href="group___m_m_c___s_p_i.html#ga7e02b9210a8d3d9f8465b8000983dadf">mmcSequentialRead()</a>, and <aclass="el"href="group___m_m_c___s_p_i.html#ga9ce0adb181138efc1f835aff6d8eb203">mmcSequentialWrite()</a>.</p>
<areashape="rect"id="node3"href="group___s_p_i___l_l_d.html#ga5b608b91dcec69818b2b3977a0d98bcb"title="Receives data from the SPI bus."alt=""coords="129,5,223,32"/></map>
<p>This function tries to gain ownership to the SPI bus, if the bus is already being used then the invoking thread is queued. </p>
<dlclass="note"><dt><b>Note:</b></dt><dd>This function is only available when the <code>SPI_USE_MUTUAL_EXCLUSION</code> option is set to <code>TRUE</code>.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<areashape="rect"id="node3"href="group__mutexes.html#gafa06b82e3496c44eb7bf31d9f1b655ba"title="Locks the specified mutex."alt=""coords="148,5,223,32"/><areashape="rect"id="node7"href="group__semaphores.html#gabc8f7e509870e9b0527a6a68fad71425"title="Performs a wait operation on a semaphore."alt=""coords="148,56,223,83"/><areashape="rect"id="node5"href="group__mutexes.html#ga2d6350c2d147d1165c359f30798205f5"title="Locks the specified mutex."alt=""coords="273,5,353,32"/><areashape="rect"id="node9"href="group__semaphores.html#gaa2c0367078533e291d2e889e251d8b67"title="Performs a wait operation on a semaphore."alt=""coords="272,56,355,83"/></map>
<dlclass="note"><dt><b>Note:</b></dt><dd>This function is only available when the <code>SPI_USE_MUTUAL_EXCLUSION</code> option is set to <code>TRUE</code>.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>spip</em> </td><td>pointer to the <code><aclass="el"href="struct_s_p_i_driver.html"title="Structure representing a SPI driver.">SPIDriver</a></code> object </td></tr>
<p>References <aclass="el"href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <aclass="el"href="group__mutexes.html#gae9ae07165126c9f6c0ce0b17bdb53669">chMtxUnlock()</a>, and <aclass="el"href="group__semaphores.html#ga7ec0cbda23e49e2370e0b91f20baf05e">chSemSignal()</a>.</p>
<areashape="rect"id="node3"href="group__mutexes.html#gae9ae07165126c9f6c0ce0b17bdb53669"title="Unlocks the next owned mutex in reverse lock order."alt=""coords="151,5,233,32"/><areashape="rect"id="node9"href="group__semaphores.html#ga7ec0cbda23e49e2370e0b91f20baf05e"title="Performs a signal operation on a semaphore."alt=""coords="151,56,233,83"/><areashape="rect"id="node5"href="group__scheduler.html#gae47a8819a21ef2d521124e76bfb37c95"title="Wakes up a thread."alt=""coords="283,5,381,32"/><areashape="rect"id="node7"href="group__internals.html#ga042479f09357fc59befebf4dfe0e9f4a"title="Removes the first-out Thread from a queue and returns it."alt=""coords="292,56,372,83"/></map>
Generated on Sun Oct 24 2010 09:40:47 for ChibiOS/RT by <ahref="http://www.doxygen.org/index.html"><imgsrc="doxygen.png"alt="doxygen"align="middle"border="0"></a> 1.7.1</small></address>