<areashape="rect"id="node1"href="group__ports.html"title="Ports"alt=""coords="7,56,52,83"/><areashape="rect"id="node2"href="group___m_s_p430___c_o_r_e.html"title="MSP430 specific port code, structures and macros."alt=""coords="212,5,351,32"/><areashape="rect"id="node3"href="group___m_s_p430___d_r_i_v_e_r_s.html"title="Device drivers included in the MSP430 support."alt=""coords="232,56,331,83"/><areashape="rect"id="node4"href="group___m_s_p430___c_o_n_f.html"title="MSP430 Configuration Options."alt=""coords="219,107,344,133"/></map>
<p>The ChibiOS/RT logical <aclass="el"href="concepts.html#system_states">System States</a> are mapped as follow in the MSP430 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>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>. The MSP430 has several non maskable interrupt sources that can be associated to this state.</li>
<li><b>Halted</b>. Implemented as an infinite loop with interrupts disabled.</li>
<li>The MSP430 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/MSP430/chcore.h</b>.</li>
<li>The state of the hardware multiplier is not saved in the thread context, make sure to use it in <b>Suspended</b> state (interrupts masked).</li>
<li>The port code does not define the switch to a low power mode for the idle thread because the MSP430 has several low power modes. You can select the proper low power mode for you application by defining the macro <code><aclass="el"href="group__core.html#ga1ebf4a8993a4714d7ff98cc56fd343d6"title="Enters an architecture-dependent IRQ-waiting mode.">port_wait_for_interrupt()</a></code>.</li>
<tr><tdclass="memItemLeft"align="right"valign="top"> </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group___m_s_p430___c_o_r_e.html">Core Port Implementation</a></td></tr>
<p><tr><tdclass="mdescLeft"> </td><tdclass="mdescRight"><p>MSP430 specific port code, structures and macros. </p>
Generated on Sun Oct 24 2010 09:40:46 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>