<areashape="rect"id="node1"href="group__ports.html"title="Ports"alt=""coords="7,56,52,83"/><areashape="rect"id="node2"href="group___a_v_r___c_o_r_e.html"title="AVR specific port code, structures and macros."alt=""coords="221,5,365,32"/><areashape="rect"id="node3"href="group___a_v_r___c_o_n_f.html"title="AVR Configuration Options."alt=""coords="231,56,356,83"/><areashape="rect"id="node4"href="group___a_v_r___d_r_i_v_e_r_s.html"title="Device drivers included in the AVR support."alt=""coords="252,107,335,133"/></map>
<p>The ChibiOS/RT logical <aclass="el"href="concepts.html#system_states">System States</a> are mapped as follow in the AVR port:</p>
<ul>
<li><b>Init</b>. This state is represented by the startup code and the initialization code before <code><aclass="el"href="group__system.html#gafe2c7de6567e98e487e009e81e3be10b"title="ChibiOS/RT initialization.">chSysInit()</a></code> is executed. It has not a special hardware state associated.</li>
<li><b>Normal</b>. This is the state the system has after executing <code><aclass="el"href="group__system.html#gafe2c7de6567e98e487e009e81e3be10b"title="ChibiOS/RT initialization.">chSysInit()</a></code>. Interrupts are enabled.</li>
<li><b>Suspended</b>. Interrupts are disabled.</li>
<li><b>Disabled</b>. Interrupts are disabled. This state is equivalent to the Suspended state because there are no fast interrupts in this architecture.</li>
<li><b>Sleep</b>. This state is entered with the execution of the specific instruction <code><b>sleep</b></code>.</li>
<li><b>S-Locked</b>. Interrupts are disabled.</li>
<li><b>I-Locked</b>. This state is equivalent to the SRI state, the <code>chSysLockI()</code> and <code>chSysUnlockI()</code> APIs do nothing (still use them in order to formally change state because this may change).</li>
<li><b>Serving Regular Interrupt</b>. Normal interrupt service code.</li>
<li><b>Serving Fast Interrupt</b>. Not present in this architecture.</li>
<li><b>Serving Non-Maskable Interrupt</b>. Not present in this architecture.</li>
<li><b>Halted</b>. Implemented as an infinite loop with interrupts disabled.</li>
<li>The AVR does not have a dedicated interrupt stack, make sure to reserve enough stack space for interrupts in each thread stack. This can be done by modifying the <code>INT_REQUIRED_STACK</code> macro into <b>./ports/AVR/chcore.h</b>.</li>
Generated on Sun Nov 28 2010 14:09:56 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>