gnuk/ChibiOS_2.0.8/docs/html/group___a_v_r.html
2010-11-30 13:54:43 +09:00

96 lines
5.6 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: MegaAVR</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.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul class="tablist">
<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="header">
<div class="summary">
<a href="#groups">Modules</a> </div>
<div class="headertitle">
<h1>MegaAVR<br/>
<small>
[<a class="el" href="group__ports.html">Ports</a>]</small>
</h1> </div>
</div>
<div class="contents">
<p><div class="dynheader">
Collaboration diagram for MegaAVR:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group___a_v_r.png" border="0" alt="" usemap="#group______a__v__r"/>
<map name="group______a__v__r" id="group______a__v__r">
<area shape="rect" id="node1" href="group__ports.html" title="Ports" alt="" coords="7,56,52,83"/>
<area shape="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"/>
<area shape="rect" id="node3" href="group___a_v_r___c_o_n_f.html" title="AVR Configuration Options." alt="" coords="231,56,356,83"/>
<area shape="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>
</td></tr></table></center>
</div>
</p>
<hr/><a name="_details"></a><h2>Description</h2>
<p>AVR port details. This section how the ChibiOS/RT features are implemented on this architecture.</p>
<h2><a class="anchor" id="AVR_STATES"></a>
Mapping of the System States in the AVR port</h2>
<p>The ChibiOS/RT logical <a class="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><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 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>
</ul>
<h2><a class="anchor" id="AVR_NOTES"></a>
The AVR port notes</h2>
<ul>
<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>
</ul>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_v_r___c_o_n_f.html">Configuration Options</a></td></tr>
<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>AVR 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___a_v_r___c_o_r_e.html">AVR Core Implementation</a></td></tr>
<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>AVR 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___a_v_r___d_r_i_v_e_r_s.html">AVR Drivers</a></td></tr>
<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Device drivers included in the AVR support. </p>
<br/></td></tr>
</p>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>
Generated on Sun Nov 28 2010 14:09:56 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.7.1</small></address>
</body>
</html>