📄 task_8h.html
字号:
<tr><td colspan="2"><br><h2>Variables</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structtask__t.html">task_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__task.html#g4743b3673a8794b8e7bd0b6c91a63cd5">current_task</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">The current task. <a href="group__task.html#g4743b3673a8794b8e7bd0b6c91a63cd5"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structsystem__struct.html">system_struct</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="task_8h.html#8e20fafa56301aad5b476cbd2c9e5b48">system</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight"><p><b>For internal use only.</b></p><p>The <a class="el" href="structsystem__struct.html" title="Structure used by the system to hold the system stack, and a flag indicating whether...">system_struct</a> used to hold the system stack and a flag indicating whether an ISR is currently being executed </p> <a href="#8e20fafa56301aad5b476cbd2c9e5b48"></a><br></td></tr></table><hr><h2>Define Documentation</h2><a class="anchor" name="7e11bac5a51572c5db72502c47cf90d3"></a><!-- doxytag: member="task.h::restore_cpu_context" ref="7e11bac5a51572c5db72502c47cf90d3" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define restore_cpu_context </td> <td>(</td> </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p><b>Value:</b><div class="fragment"><pre class="fragment">__asm__ <span class="keyword">volatile</span> ( \ <span class="stringliteral">"pop r0\n"</span> \ <span class="stringliteral">"pop r31\n pop r30\n pop r29\n pop r28\n pop r27\n pop r26\n pop r25\n pop r24\n"</span> \ <span class="stringliteral">"pop r23\n pop r22\n pop r21\n pop r20\n pop r19\n pop r18\n pop r17\n pop r16\n"</span> \ <span class="stringliteral">"pop r15\n pop r14\n pop r13\n pop r12\n pop r11\n pop r10\n pop r9\n pop r8\n"</span> \ <span class="stringliteral">"pop r7\n pop r6\n pop r5\n pop r4\n pop r3\n pop r2\n pop r1\n out 0x3f, r0\n pop r0\n"</span> ::)</pre></div><p><b>For internal use only.</b></p><p>Restore the CPU context from the stack, possibly re-enabling interrupts </p><p></div></div><p><a class="anchor" name="bedcaab91615f58a55ed4135438618e8"></a><!-- doxytag: member="task.h::save_cpu_context" ref="bedcaab91615f58a55ed4135438618e8" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define save_cpu_context </td> <td>(</td> </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p><b>Value:</b><div class="fragment"><pre class="fragment">__asm__ <span class="keyword">volatile</span>( \ <span class="stringliteral">"push r0\n in r0, 0x3f\n cli\n"</span> \ <span class="stringliteral">"push r1\n push r2\n push r3\n push r4\n push r5\n push r6\n push r7\n"</span> \ <span class="stringliteral">"push r8\n push r9\n push r10\n push r11\n push r12\n push r13\n push r14\n push r15\n"</span> \ <span class="stringliteral">"push r16\n push r17\n push r18\n push r19\n push r20\n push r21\n push r22\n push r23\n"</span> \ <span class="stringliteral">"push r24\n push r25\n push r26\n push r27\n push r28\n push r29\n push r30\n push r31\n"</span> \ <span class="stringliteral">"push r0\n"</span> ::)</pre></div><p><b>For internal use only.</b></p><p>Save the CPU context to the stack, and disable interrupts </p><p></div></div><p><hr><h2>Function Documentation</h2><a class="anchor" name="6587681a992e6e80317747df4d29b46b"></a><!-- doxytag: member="task.h::switch_task" ref="6587681a992e6e80317747df4d29b46b" args="() __attribute__((naked))" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void switch_task </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p><p><b>For internal use only.</b></p><p>Perform a task switch </p><p>Note that interrupts must be disabled before we enter, and the stack pointer should be set up to use the system stack. </div></div><p><hr><h2>Variable Documentation</h2><a class="anchor" name="8e20fafa56301aad5b476cbd2c9e5b48"></a><!-- doxytag: member="task.h::system" ref="8e20fafa56301aad5b476cbd2c9e5b48" args="" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structsystem__struct.html">system_struct</a> <a class="el" href="task_8h.html#8e20fafa56301aad5b476cbd2c9e5b48">system</a> </td> </tr> </table></div><div class="memdoc"><p><p><b>For internal use only.</b></p><p>The <a class="el" href="structsystem__struct.html" title="Structure used by the system to hold the system stack, and a flag indicating whether...">system_struct</a> used to hold the system stack and a flag indicating whether an ISR is currently being executed </p><p></div></div><p><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 + -