📄 index.html
字号:
<html><head>
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>scmRTOS - Releases</title>
<link rel="icon" href="../favicon.ico" type="ico">
<link rel="stylesheet" type="text/css" href="../description.css" media="all"
title="Burly Wood Style">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0"
leftmargin="0" rightmargin="0">
<table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0">
<tr id="banner" valign="top" height="75px"><td>
<table border="0" cellpadding="0" cellspacing="0"><tr>
<td height="72" width="60"><img src="../scmrtos.png" hspace="4"></td>
<td><h11><nobr>Single-Chip Microcontroller</nobr></h11><br>
<div id="subtitle"><nobr>Real-Time Operating System</nobr></div></td>
</tr></table>
</td></tr>
<tr><td valign="top">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr valign="top">
<td class="menu2"><table align="left" border="0" cellpadding="4" cellspacing="8" class="gridmenu" width="100%">
<colgroup>
<col width="100%" />
</colgroup>
<thead valign="bottom">
<tr><th class="head">Releases</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><a class="reference" href="msp430/index.html">MSP430</a></td>
</tr>
<tr><td><a class="reference" href="avr/index.html">AVR</a></td>
</tr>
<tr><td><a class="reference" href="bf/index.html">Blackfin</a></td>
</tr>
<tr><td><a class="reference" href="arm7/index.html">ARM7</a></td>
</tr>
<tr><td><a class="reference" href="fr/index.html">FR</a></td>
</tr>
<tr><td><a class="reference" href="WhatsNew.html">What's New</a></td>
</tr>
<tr><td />
</tr>
<tr><td><a class="reference" href="../ports/index.html">Ports</a></td>
</tr>
</tbody>
</table></td>
<td id="main">
<div id="breadcrumbs"><a href="../index.html">Main page</a> > Releases</div>
<div id="text">
<div class="section">
<h1><a id="general-description" name="general-description">General Description</a></h1>
<p>Release, in fact, is a complete working project. Release consists of
RTOS <a class="reference" href="../ports/index.html">Port</a> and project sources. Project sources
in addition to user's code includes a project-dependent part of the RTOS.
Project-dependent part is intended to setup RTOS configuration and tune
RTOS-exploited peripherals (one of hardware timers and Context Switch
interrupt).</p>
</div>
<hr class="docutils" />
<div class="section">
<h1><a id="project-dependent-part" name="project-dependent-part">Project-dependent Part</a></h1>
<p>Project-dependent part includes two header files that are resided in a user project
source folder[s]:</p>
<ul class="plain simple">
<li>scmRTOS_CONFIG.h;</li>
<li>scmRTOS_TARGET_CFG.h.</li>
</ul>
<p><tt class="docutils literal"><span class="pre">scmRTOS_CONFIG.h</span></tt> describes project-level RTOS configuration macros.</p>
<p><tt class="docutils literal"><span class="pre">scmRTOS_TARGET_CFG.h</span></tt> contains project-level tuning code, in particular
System Timer and Context Switch Software interrupt stuff. Generally, Release
comes with default definitions of System Timer and Software Context Switch
interrupts. The user can change these setting to more project-suitable if
need.</p>
</div>
<hr class="docutils" />
<div class="section">
<h1><a id="distribution" name="distribution">Distribution</a></h1>
<p>A user can get the RTOS using the following ways:</p>
<!-- .. class:: numeric -->
<ul class="simple">
<li>Download the appropriate <a class="reference" href="https://sourceforge.net/project/showfiles.php?group_id=181958">Release from SourceForge</a> and setup user's project
based on Release structure and sources. This way is most suitable for users
who do not use <a class="reference" href="http://subversion.tigris.org">Subversion</a> version control system or who want reside RTOS sources
locally, without linking to <a class="reference" href="https://scmrtos.svn.sourceforge.net/svnroot/scmrtos">main RTOS repository</a>;</li>
<li>Export <strong>Release</strong> from <tt class="docutils literal"><span class="pre">tags</span></tt> branch of <a class="reference" href="https://scmrtos.svn.sourceforge.net/svnroot/scmrtos">main RTOS repository</a> - this
is the same as above;</li>
<li>Checkout required <strong>Sample</strong> from <a class="reference" href="https://scmrtos.svn.sourceforge.net/svnroot/scmrtos">main RTOS repository</a> . This is most
suitable for RTOS port developers. See <a class="reference" href="#working-with-repository-samples">Working with Repository Samples</a>
for more details about using of this manner;</li>
<li>For users who employ Subversion and who want to synchronize project's RTOS
sources with <a class="reference" href="https://scmrtos.svn.sourceforge.net/svnroot/scmrtos">main RTOS repository</a>. the following way may be suitable:
setup user project RTOS subfolders with <tt class="docutils literal"><span class="pre">svn:externals</span></tt> <a class="footnote-reference" href="#id2" id="id1" name="id1">[1]</a> properties
that will link these subfolders to the appropriate folders in
<a class="reference" href="https://scmrtos.svn.sourceforge.net/svnroot/scmrtos">main RTOS repository</a> and perform update. Thus, user gets the ability
to synchronize its project RTOS sources with <a class="reference" href="https://scmrtos.svn.sourceforge.net/svnroot/scmrtos">main RTOS repository</a>.</li>
</ul>
<div class="section">
<h2><a id="working-with-repository-samples" name="working-with-repository-samples">Working with Repository Samples</a></h2>
<p>Initially, after checkout from repository the folders</p>
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">scmRTOS/Common</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">scmRTOS/<Port></span></tt></div>
</div>
<p>are empty. User has to switch these folders manually to appropriate repository
folders:</p>
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">scmRTOS/Common</span> <span class="pre">to</span> <span class="pre">$REP$/Common</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">scmRTOS/<Port></span> <span class="pre">to</span> <span class="pre">$REP$/Ports/<Port>/<Toolkit></span></tt></div>
</div>
<p>where:</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">$REP$</span></tt> is proper repository <a class="reference" href="http://scmrtos.svn.sourceforge.net/svnroot/scmrtos/trunk">url</a> .</li>
<li><tt class="docutils literal"><span class="pre"><Port></span></tt> is name of target processor Port.</li>
<li><tt class="docutils literal"><span class="pre"><Toolkit></span></tt> is corresponding name and version of toolkit.</li>
</ul>
<p>After this working copy is ready to build.</p>
</div>
<div class="section">
<h2><a id="typical-release-structure-and-contents" name="typical-release-structure-and-contents">Typical Release Structure and Contents</a></h2>
<p>Typical Release consists of the RTOS sources and a number of samples. For example, such
structure may looks like:</p>
<pre class="literal-block">
1-EventFlag.
2-Message.
3-Channel.
scmRTOS.
</pre>
<p>where <strong>1-EventFlag</strong>, <strong>2-Message</strong>, <strong>3-Channel</strong> - are three different samples,
each is a complete project. The RTOS sources are located in <strong>scmRTOS</strong> folder.</p>
<p>In this case <strong>1-EventFlag</strong> sample brings test on speed. <tt class="docutils literal"><span class="pre">OS::TEventFlag</span></tt> is
the simplest and fastest service of the RTOS. In this example program control flow
transferred from timer interrupt service routine (ISR) to waiting process. Dedicated
processor's pin is set to <tt class="docutils literal"><span class="pre">'1'</span></tt> before signalling of the <tt class="docutils literal"><span class="pre">EventFlag</span></tt> object and
set to <tt class="docutils literal"><span class="pre">'0'</span></tt> inside waiting process. So, positive pulse width on this pin corresponds
with program control flow transfer time.</p>
<p><strong>2-Message</strong> sample demonstrates ability to send arbitrary information from ISRs
and processes to processes. In the example one process waits the message and
timer ISR and another process send the message. Message content is different in
each case, so, process-receiver can distinguish the source of the message.</p>
<p>Sample <strong>3-Channel</strong> shows a message queue. Since the message can have
arbitrary type, current example uses pointers to class types. In the example two
more priority processes "delegate" some actions to the third (low-priority)
process. See scmRTOS User's Manual Appendix section for more details about this
mechanism.</p>
<p>Contents of all parts is the same: test project and RTOS sources. Each located
in its own folder.</p>
<p>For more details about specific target processor release implementations see
corresponding page:</p>
<ul class="simple">
<li><a class="reference" href="msp430/index.html">MSP430</a>.</li>
<li><a class="reference" href="avr/index.html">AVR</a>.</li>
<li><a class="reference" href="bf/index.html">Blackfin</a>.</li>
<li><a class="reference" href="arm7/index.html">ARM7</a>.</li>
<li><a class="reference" href="fr/index.html">FR</a>.</li>
</ul>
<hr class="docutils" />
<table class="docutils footnote" frame="void" id="id2" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id1" name="id2">[1]</a></td><td>For more details about <tt class="docutils literal"><span class="pre">svn:externals</span></tt> see
<a class="reference" href="http://subversion.tigris.org">Subversion</a> documentation.</td></tr>
</tbody>
</table>
</div>
</div>
</div>
</td>
</tr></table>
</td></tr>
<tr><td valign="bottom">
<table border="0" cellspacing="0" cellpadding="6" width="100%">
<tr id="footer">
<td><a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=181958&type=3" width="125" height="37" border="0" alt="SourceForge.net Logo" /></a></td>
<td align="right">Copyright 漏 scmRTOS Team 2006-2008</td>
</tr></table>
</td></tr>
</table>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -