📄 description.html
字号:
<html><head>
<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>scmRTOS - Description</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">scmRTOS</th>
</tr>
</thead>
<tbody valign="top">
<tr><td><a class="reference" href="description.html">Description</a></td>
</tr>
<tr><td><a class="reference" href="events.html">Events</a></td>
</tr>
<tr><td><a class="reference" href="license.html">License</a></td>
</tr>
<tr><td><a class="reference" href="doc/index.html">Documentation</a></td>
</tr>
<tr><td><a class="reference" href="ports/index.html">Ports</a></td>
</tr>
<tr><td><a class="reference" href="releases/index.html">Releases</a></td>
</tr>
<tr><td><a class="reference" href="tools/index.html">Tools</a></td>
</tr>
<tr><td><a class="reference" href="releases/WhatsNew.html">What's New</a></td>
</tr>
<tr><td><a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=181958">Download</a></td>
</tr>
<tr><td><a class="reference" href="sf/index.html">SourceForge</a></td>
</tr>
<tr><td><a class="reference" href="contact.html">Contacts</a></td>
</tr>
<tr><td><a class="reference" href="map.html">Site map</a></td>
</tr>
</tbody>
</table></td>
<td id="main">
<div id="breadcrumbs"><a href="./index.html">Main page</a> > Description</div>
<div id="text">
<div class="section">
<h1><a id="general" name="general">General</a></h1>
<p>scmRTOS is real-time preemptive operating system and supports
up to 31 user processes (and one system idle process).
Each process has unique priority.
All processes are static and cannot be added or removed at runtime.
Priorities of the processes are static in current version of the RTOS
because dynamic priorities cause large (for Single-Chip Microcontrollers)
overhead.</p>
</div>
<hr class="docutils" />
<div class="section">
<h1><a id="rtos-structure" name="rtos-structure">RTOS structure</a></h1>
<p>Operating System consists of kernel, processes and interprocess
communication services.</p>
<div class="section">
<h2><a id="kernel" name="kernel">Kernel</a></h2>
<p>Kernel provides:</p>
<ul class="simple">
<li>process management;</li>
<li>process-level and interrupt-level scheduling;</li>
<li>interprocess communications support;</li>
<li>system time (system timer).</li>
</ul>
</div>
<div class="section">
<h2><a id="processes" name="processes">Processes</a></h2>
<p>Processes allow breaking user code in different independent
asynchronous parts that greatly reduces a complication of program control
flow development. Each process has root function that must contain infinite
main loop. After OS starts, program control flow is passed to such root function.
A return from this function is not permissible.</p>
</div>
<div class="section">
<h2><a id="interprocess-communications" name="interprocess-communications">Interprocess Communications</a></h2>
<p>Since processes in system executed as parallel and asynchronous, user should
not utilize simple global objects (variables of built-in types, arrays,
structures, class objects etc) for interprocess communications and
synchronization because this method is incorrect and dangerous: every process
can be interrupted by a priority one that gains access to the same global data -
this causes risk of sharing violation.</p>
<p>To prevent collisions the user should utilize special facilities such as Critical
Sections (where interrupts are locked) or Interprocess Communications.
scmRTOS has number of Interprocess Communications:</p>
<ul class="simple">
<li>Event Flags;</li>
<li>Mutual Exclusion Semaphores (Mutexes);</li>
<li>Byte-wide Channels;</li>
<li>Arbitrary-type Channels;</li>
<li>Arbitrary-type Messages.</li>
</ul>
<p>User chooses himself what facility (or its combination) should be applied,
taking into account application, available resources and his individual preferences.</p>
</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 + -