gnuk/ChibiOS_2.0.2/docs/html/group___m_s_p430.html
2010-08-10 12:11:02 +09:00

90 lines
6.0 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ChibiOS/RT: MSP430</title>
<link href="custom.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<table style="text-align: center; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="width: 80px;"><img alt="ChibiOS/RT Logo" src="logo_small.png"></td>
<td><big><big>ChibiOS/RT</big></big><br><br>Architecture - Reference Manual - Guides</td>
<td style="width: 80px;"></td>
</tr>
</tbody>
</table>
<hr size="1">
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>MSP430<br/>
<small>
[<a class="el" href="group__ports.html">Ports</a>]</small>
</h1>
<p><div class="dynheader">
Collaboration diagram for MSP430:</div>
<div class="dynsection">
<center><table><tr><td><img src="group___m_s_p430.png" border="0" alt="" usemap="#group______m__s__p430_map"/>
<map name="group______m__s__p430_map" id="group______m__s__p430">
<area shape="rect" href="group__ports.html" title="Ports" alt="" coords="7,53,52,77"/>
<area shape="rect" href="group___m_s_p430___c_o_r_e.html" title="MSP430 specific port code, structures and macros." alt="" coords="212,5,351,29"/>
<area shape="rect" href="group___m_s_p430___d_r_i_v_e_r_s.html" title="Device drivers included in the MSP430 support." alt="" coords="232,53,331,77"/>
<area shape="rect" href="group___m_s_p430___c_o_n_f.html" title="MSP430 Configuration Options." alt="" coords="219,101,344,125"/>
</map></td></tr></table></center>
</div>
</p>
<hr/><a name="_details"></a><h2>Description</h2>
<p>MSP430 port details. This section how the ChibiOS/RT features are implemented on this architecture.</p>
<h2><a class="anchor" id="MSP430_STATES">
Mapping of the System States in the MSP430 port</a></h2>
<p>The ChibiOS/RT logical <a class="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><a class="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><a class="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 enabled. This state is equivalent to the Suspended state because there are no fast interrupts in this architecture.</li>
<li><b>Sleep</b>. Not yet implemented.</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>
</ul>
<h2><a class="anchor" id="MSP430_NOTES">
The MSP430 port notes</a></h2>
<ul>
<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><a class="el" href="group___a_v_r___c_o_r_e.html#ga36d8e6fbb66f0c2e93db8a7fccfd5d8a" title="Enters an architecture-dependent IRQ-waiting mode.">port_wait_for_interrupt()</a></code>.</li>
</ul>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_s_p430___c_o_n_f.html">Configuration Options</a></td></tr>
<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>MSP430 Configuration Options. </p>
<br/></td></tr>
</p>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_s_p430___c_o_r_e.html">Core Port Implementation</a></td></tr>
<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>MSP430 specific port code, structures and macros. </p>
<br/></td></tr>
</p>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_s_p430___d_r_i_v_e_r_s.html">MSP430 Drivers</a></td></tr>
<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Device drivers included in the MSP430 support. </p>
<br/></td></tr>
</p>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>
Generated on Sun Jul 11 13:13:19 2010 for ChibiOS/RT by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.6.3</small></address>
</body>
</html>