📄 api-usage-restrictions.html
字号:
<p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__mailbox.html#gc75646248d03b1413198765b07ba54ad" title="Write to a mailbox.">write_mbox()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__mailbox.html#g87f02ab5b46654ae26b06851b2390132" title="Attempt to write to a mailbox.">write_mbox_now()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__mailbox.html#gf670250659f0942849aa85f0f94af9f0" title="Wait for a task to be suspended while trying to read from a mailbox.">wait_for_receiver()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__semaphore.html#g3c18e0f867a2f36f1510aebf5ad4c0e2" title="Get the current value of a semaphore.">get_semaphore_value()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__semaphore.html#g3cd218588dccb32b5b9072c7a75fb008" title="Increment the value of a semaphore by the given amount.">increment_semaphore_by()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__semaphore.html#g45243d3de7a253445deeb57ee4c8cc96" title="Wait for a semaphore to reach at least a particular value.">wait_for_min_value()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__semaphore.html#g291edcd883e2d0bc17f85419e21069ff" title="Wait for a semaphore to increment its value by a certain amount.">wait_for_increment_of()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__task.html#g1a2a5bbefa85516b8c1d0e0361a834db" title="Stop executing the current task and try and execute a higher-priority task or another...">yield()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__task.html#g6984a5336b36a4ca99682a2cf5ae044f" title="Disable interrupts system-wide.">disable_interrupts()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__task.html#gecf8a8e43c2afae89e46503ff1c887bf" title="Restore the state of the system-wide interrupts.">restore_interrupts()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> </tr> <tr valign="top"> <td width="28%"> <a class="el" href="group__task.html#g1398c4d9f97349ea3fa7d91349298521" title="Start the whole process running.">task_switcher_start()</a> </td> <td width="6%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">N</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="9%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="8%"> <p align="center"><font face="Times New Roman, serif">n/a</font></p> </td> <td width="11%"> <p align="center"><font face="Times New Roman, serif">Y</font></p> </td> </tr> </tbody></table><p><br></p><p>The columns in the above table are<p><ul><li><code>"ISR"</code> indicates whether the API call can be made from within an ISR </li><li><code>"Idle task"</code> indicates whether an idle (i.e. zero-priority) task may use the API call </li><li><code>"Non-idle task"</code> indicates whether a task with non-zero priority may use the call </li><li><code>"Lower-priority task"</code> - for those calls that take a task argument, indicates whether a task with a lower priority than that of the argument may use the call </li><li><code>"Before RTOS start"</code> indicates whether the call can be made before <a class="el" href="group__task.html#g1398c4d9f97349ea3fa7d91349298521" title="Start the whole process running.">task_switcher_start()</a> is called </li><li><code>"Current task"</code> - for those calls that take a task argument, indicates whether the value of that argument may be <code>current_task</code> </li><li><code>"Idle task"</code> - for those calls that take a task argument, indicates whether the value of that argument may be a zero-priority idle task </li><li><code>"Could switch tasks"</code> indicates whether a side-effect of making the call could be that the task scheduler runs and switches tasks - see <a class="el" href="group__task.html#g1a2a5bbefa85516b8c1d0e0361a834db" title="Stop executing the current task and try and execute a higher-priority task or another...">yield()</a>. A side-effect of this is that interrupts could be re-enabled if the task switcher chooses a task that didn't disable them.</li></ul>In addition, the only time that it is safe to directly set the value of a semaphore (i.e. without using the <a class="el" href="group__semaphore.html#g3cd218588dccb32b5b9072c7a75fb008" title="Increment the value of a semaphore by the given amount.">increment_semaphore_by()</a> API call) is before the RTOS starts.<p>Finally, when an ISR finishes executing, the task scheduler is called, as the ISR may have changed the list of runnable tasks (e.g. by incrementing the value of a semaphore, or by successfully posting a message to a task). <hr><p align="center"><font size="-1">YAVRTOS and YAVRTOS documentation Copyright © 2007-2008 Chris O'Byrne. Email - chris <at> obyrne <dot> com</font></p></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -