📄 introduction.sgml
字号:
should visit the <productname>eCos</productname> open source
developers site: <ULINK
URL="http://ecos.sourceware.org/">http://ecos.sourceware.org/</ULINK>.
</para>
<PARA>The site is dedicated to the <productname>eCos</productname>
developer community and contains a rich set of resources
including news, FAQ, online documentation, installation guide,
discussion and announcement mailing lists, and runtime and
development tools downloads. The site also supports anonymous
CVS and WEBCVS access to provide direct access to the latest
<productname>eCos</productname> source base. </PARA>
<PARA><productname>eCos</productname> is released as open source
software because we believe that this is the most effective
software development model, and that it provides the greatest
benefit to the embedded developer community as a whole. As part
of this endeavor, we seek the input and participation of
<productname>eCos</productname> developers in its continuing
evolution. Participation can take many forms including:</PARA>
<ITEMIZEDLIST>
<LISTITEM>
<PARA>providing us with feedback on how <productname>eCos</productname> might be made more
useful to you - by taking part in the ongoing mailing list discussions
and by submitting problem reports covering bugs, documentation issues,
and missing features</PARA>
</LISTITEM>
<LISTITEM>
<PARA>contributing bug fixes and enhancement patches</PARA>
</LISTITEM>
<LISTITEM>
<PARA>contributing new code including device drivers, board
ports, libraries, and other runtime components</PARA>
</LISTITEM>
</ITEMIZEDLIST>
<PARA>Our long term aim is to make <productname>eCos</productname> a
rich and ubiquitous standard infrastructure for the development of
deeply embedded applications. This will be achieved with the
assistance of the <productname>eCos</productname> developer community
cooperating to improve <productname>eCos</productname> for all. We
would like to take this opportunity to extend our thanks to the many
<productname>eCos</productname> developers who have already
contributed feedback, ideas, patches, and code that have augmented and
improved this release.</PARA>
<para>
<emphasis>The <productname>eCos</productname> Maintainers</emphasis>
</para>
</chapter>
<!-- ==================================================== -->
<chapter ID="ecos-licensing">
<TITLE><productname>eCos</productname> Licence Overview</TITLE>
<para>As of May 2002, <productname>eCos</productname> is released
under a modified version of the well known <ulink
url="http://www.gnu.org/copyleft/gpl.html">GNU General Public License
(GPL)</ulink>, now making it an <ulink
url="http://www.gnu.org/philosophy/license-list.html">official
GPL-compatible Free Software License</ulink>. An exception clause has
been added to the <productname>eCos</productname> license which limits
the circumstances in which the license applies to other code when used
in conjunction with <productname>eCos</productname>. The exception
clause is as follows:</para>
<programlisting width=72>
As a special exception, if other files instantiate templates or use macros
or inline functions from this file, or you compile this file and link it
with other works to produce a work based on this file, this file does not
by itself cause the resulting work to be covered by the GNU General Public
License. However the source code for this file must still be made
available in accordance with section (3) of the GNU General Public
License.
This exception does not invalidate any other reasons why a work based on
this file might be covered by the GNU General Public License.
</programlisting>
<para>The goal of the license is to serve the
<productname>eCos</productname> user community as a whole. It allows
all <productname>eCos</productname> users to develop products without
paying anybody anything, no matter how many developers are working on
the product or how many units will be shipped. The license also
guarantees that the <productname>eCos</productname> source code will
always be freely available. This applies not only to the core
<productname>eCos</productname> code itself but also to any changes
that anybody makes to the core. In particular, it should prevent any
company or individual contributing code to the system and then later
claiming that all <productname>eCos</productname> users are now guilty
of copyright or patent infringements and have to pay royalties. It
should also prevent any company from making some small improvements,
calling the result a completely new system, and releasing this under a
new and less generous license.</para>
<para>The license does <emphasis>not</emphasis> require users to
release the source code of any <emphasis>applications</emphasis> that
are developed with <productname>eCos</productname>. However, if
anybody makes any changes to code covered by the
<productname>eCos</productname> license, or writes new files derived
in any way from <productname>eCos</productname> code, then we believe
that the entire user community should have the opportunity to benefit
from this. The license stipulates that these changes must be made
available in source code form to all recipients of binaries based on
the modified code, either by including the sources along with the
binaries you deliver (or with any device containing such binaries) or
with a written offer to supply the source code to the general public
for three years. It is perhaps most practical for
<productname>eCos</productname> developers to make the source code
available online and inform those who are receiving binaries
containing <productname>eCos</productname> code, and probably also the
<productname>eCos</productname> maintainers, about the location of the
code. See the <ulink url="http://www.gnu.org/copyleft/gpl.html">full
text of the GPL</ulink> for the most authoritative definition of the
obligations.</para>
<para>Although it is not strictly necessary to contribute the modified
code back to the <productname>eCos</productname> open source project,
we are always pleased to receive code contributions and hope that
developers will also be keen to give back in return for what they
received from the <productname>eCos</productname> project completely
free of charge. The <productname>eCos</productname> maintainers are
responsible for deciding whether such contributions should be applied
to the public repository. In addition, a <ulink
url="http://ecos.sourceware.org/assign.html">copyright
assignment</ulink> is required for any significant changes to the core
<productname>eCos</productname> packages.</para>
<para>The result is a royalty-free system with minimal obligations on
the part of application developers. This has resulted in the rapid
uptake of <productname>eCos</productname>. At the same time,
<productname>eCos</productname> is fully open source with all the
benefits that implies in terms of quality and innovation. We believe
that this is a winning combination.</para>
<sect1 id="ecos-licensing-qna">
<title>Questions and answers</title>
<para>The following queries provide some clarification as to the
implications of the <productname>eCos</productname> license. They do
not consititute part of the legal meaning of the license.</para>
<para><emphasis>Q.</emphasis> What is the effect of the
<productname>eCos</productname> license?</para>
<para><emphasis>A.</emphasis> In the simplest terms, when you
distribute anything containing <productname>eCos</productname> code,
you must make the source code to <productname>eCos</productname>
available under the terms of the GPL.</para>
<para><emphasis>Q.</emphasis> What if I make changes to
<productname>eCos</productname>, or write new code based on
<productname>eCos</productname> code?</para>
<para><emphasis>A.</emphasis> Then you must make those changes
available as well.</para>
<para><emphasis>Q.</emphasis> Do I have to distribute the source
code to my application? Isn't the GPL "viral"?</para>
<para><emphasis>A.</emphasis> You do not have to distribute any
code under the terms of the GPL other than
<productname>eCos</productname> code or code derived from
<productname>eCos</productname>. For example, if you write a HAL port
based on copying an existing <productname>eCos</productname> HAL in
any way, you must make the source code available with the
binary. However you would not need to make available any other code,
such as the code of a wholly separate application linked with
<productname>eCos</productname>.</para>
<para><emphasis>Q.</emphasis> I would rather stick with the
RHEPL code, but I updated my anonymous CVS checkout.</para>
<para><emphasis>A.</emphasis> You can check out the final
version of anonymous CVS before the license change using the CVS tag
<literal>last-rhepl</literal>. See <ulink
url="http://ecos.sourceware.org/anoncvs.html">the anonymous CVS
access page</ulink>
for details.</para>
</sect1>
<sect1 id="ecos-licensing-previous">
<title>Previous License</title>
<para>
Prior to May 2002, <productname>eCos</productname> was released under
the <ulink url="http://ecos.sourceware.org/old-license.html">Red
Hat eCos Public License (RHEPL)</ulink>. The RHEPL required any
modifications to <productname>eCos</productname> code to be made
available under preferential terms to Red Hat and was therefore
incompatible with code licensed under the GPL. The use of
<productname>eCos</productname> source code which was licensed under
the RHEPL is not affected by the switch to the modified GPL for later
revisions.
</para>
</sect1>
</chapter>
<!-- ==================================================== -->
<chapter id="notation-and-conventions">
<title>Notation and Conventions</title>
<para>
Since there are many supported target architectures, notation
conventions are used in this manual to avoid repeating instructions
that are very similar.
</para>
<SECT1 ID="GDB-AND-GCC-COMMAND-NOTATION"><!-- <index></index> --><!-- <xref> -->
<TITLE>GDB and <!-- <index></index> -->GCC Command Notation</TITLE>
<para>
Cross-development commands like <COMMAND>gcc</COMMAND> and
<COMMAND>gdb</COMMAND> will be shown with a
<replaceable>TARGET-</replaceable> prefix. You need to replace
<replaceable>TARGET-</replaceable> with the correct prefix before
using the command. Just using <command>gcc</command> or
<command>gdb</command> will use the tools for the host, which is not
(usually) what you want.
</para>
<para>
For example use <command>arm-elf-gcc</command> and
<command>arm-elf-gdb</command> for ARM, Thumb, and StrongARM targets.
Use <command>xscale-elf-gcc</command> and
<command>xscale-elf-gdb</command> for Intel Xscale targets.
Use <command>i386-elf-gcc</command> and
<command>i386-elf-gdb</command> for IA32 targets. And so on, the exact
prefix to use is shown in the documentation for each target.
</para>
<PARA>Note that some versions of the GCC cross compiler generate
executable files with the <FILENAME>.exe</FILENAME> suffix on Windows,
but not on Linux. The suffix <FILENAME>.exe</FILENAME> will be omitted
from executable file names, so you will see <FILENAME>hello</FILENAME>
instead of <FILENAME>hello.exe</FILENAME>.</PARA>
</sect1>
<SECT1 ID="DIRECTORY-AND-FILE-SYSTEM-CONVENTIONS"><!-- <index></index> -->
<TITLE>Directory and File System Conventions</TITLE>
<PARA>The default directory for installing
<productname>eCos</productname> on Windows (usually
<FILENAME>C:/Program Files/eCos</FILENAME>) is different from that on
Linux (usually <FILENAME>/opt/ecos</FILENAME>). Since many command
line examples in the tutorials use these paths, this default (base)
directory will be cited as <replaceable>BASE_DIR</replaceable>.</PARA>
<PARA>Windows and Linux have a similar file system syntax, but the
MS-DOS command interpreter on Windows uses the backslash character
(\) as a path separator, while Linux and POSIX shells (including
the Cygwin bash shell for windows) use the forward slash (/).</PARA>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -