📄 introduction.sgml
字号:
<para>The result is a royalty-free system with minimal obligations onthe part of application developers. This has resulted in the rapiduptake of <productname>eCos</productname>. At the same time,<productname>eCos</productname> is fully open source with all thebenefits that implies in terms of quality and innovation. We believethat 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 theimplications of the <productname>eCos</productname> license. They donot 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 youdistribute 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 changesavailable as well.</para><para><emphasis>Q.</emphasis> Do I have to distribute the sourcecode to my application? Isn't the GPL "viral"?</para><para><emphasis>A.</emphasis> You do not have to distribute anycode 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 portbased on copying an existing <productname>eCos</productname> HAL inany way, you must make the source code available with thebinary. 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 theRHEPL code, but I updated my anonymous CVS checkout.</para><para><emphasis>A.</emphasis> You can check out the finalversion of anonymous CVS before the license change using the CVS tag<literal>last-rhepl</literal>. See <ulinkurl="http://ecos.sourceware.org/anoncvs.html">the anonymous CVSaccess 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 underthe <ulink url="http://ecos.sourceware.org/old-license.html">RedHat eCos Public License (RHEPL)</ulink>. The RHEPL required anymodifications to <productname>eCos</productname> code to be madeavailable under preferential terms to Red Hat and was thereforeincompatible with code licensed under the GPL. The use of<productname>eCos</productname> source code which was licensed underthe RHEPL is not affected by the switch to the modified GPL for laterrevisions.</para></sect1></chapter><!-- ==================================================== --><chapter id="notation-and-conventions"><title>Notation and Conventions</title><para>Since there are many supported target architectures, notationconventions are used in this manual to avoid repeating instructionsthat 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 beforeusing 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 exactprefix to use is shown in the documentation for each target.</para><PARA>Note that some versions of the GCC cross compiler generateexecutable files with the <FILENAME>.exe</FILENAME> suffix on Windows,but not on Linux. The suffix <FILENAME>.exe</FILENAME> will be omittedfrom 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 onLinux (usually <FILENAME>/opt/ecos</FILENAME>). Since many commandline 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 theMS-DOS command interpreter on Windows uses the backslash character(\) as a path separator, while Linux and POSIX shells (includingthe Cygwin bash shell for windows) use the forward slash (/).</PARA><PARA>This document will use the POSIX shell convention of forwardslashes throughout.</PARA></SECT1><!-- ==================================================== --><SECT1 ID="VERSION-CONVENTIONS"><TITLE>Version Conventions</TITLE><para>This manual does not refer explicitly to any particular version of<productname>eCos</productname>. However, version numbers form part ofmany file path names. In all of these places the version number willbe shown like this: <replaceable>&Version;</replaceable>.</para><para>If you have used anonymous CVS to check<productname>eCos</productname> out of the CVS repository, the versionnumber will always be <literal>current</literal>, since that is thename of the directory in the repository. When a stable release is madethis directory name is changed, in the release, to the number of therelease, for example <literal>v2_0</literal> or<literal>v2_1</literal>.</para></SECT1></chapter><chapter id="documentation-roadmap"><title>Documentation Roadmap</title><para>The <productname>eCos</productname> documentation is divided into athree main parts:</para><VARIABLELIST><VARLISTENTRY><TERM><EMPHASIS>User Guide</EMPHASIS></TERM><LISTITEM><PARA>This document. It includes the following sections:</PARA> <VARIABLELIST> <VARLISTENTRY> <TERM>Installing <productname>eCos</productname></TERM> <LISTITEM> <para> This section describes how to install the <productname>eCos</productname> software, how to set up your hardware and how to test that it is all working. </para> </listitem> </varlistentry> <VARLISTENTRY> <TERM>Programming Under <productname>eCos</productname></TERM> <LISTITEM> <para> This section describes how to write programs that run under <productname>eCos</productname> by running through some examples. </para> </listitem> </varlistentry> <VARLISTENTRY> <TERM>The <productname>eCos</productname> <application>Configuration Tool</application></TERM> <LISTITEM> <para> This section describes the <productname>eCos</productname> graphical configuration tool and how to use it to change how <productname>eCos</productname> behaves.</para> </listitem> </varlistentry> <VARLISTENTRY> <TERM><productname>eCos</productname> Programming Concepts and Techniques</TERM> <LISTITEM> <PARA>An explanation of the <productname>eCos</productname> programming cycle, and a description of some debugging facilities that <productname>eCos</productname> offers. </PARA> </listitem> </varlistentry> <VARLISTENTRY> <TERM>Configuration and the Package Repository</TERM> <LISTITEM> <PARA>Information on how to configure <productname>eCos</productname> manually, including a reference on the <command>ecosconfig</command> command, memory layouts, and information on how to manage a package repository using the <productname>eCos</productname> Package Administration Tool. </PARA> </LISTITEM> </VARLISTENTRY> </variablelist></LISTITEM></VARLISTENTRY><VARLISTENTRY><TERM><EMPHASIS>Reference Guide</EMPHASIS></TERM><LISTITEM><PARA>The Reference Guide provides detailed documentation on variousaspects of <productname>eCos</productname>. This document is beingconstantly updated, so the following list just mentions the moreimportant sections, take a look at the guide itself for the fullstory.</PARA> <variablelist> <VARLISTENTRY> <TERM>The <productname>eCos</productname> Kernel</TERM> <LISTITEM> <PARA>In-depth description of <productname>eCos</productname>"s native C kernel API Important considerations are given for programming the <productname>eCos</productname> kernel. The semantics for each kernel function are described, including how they are affected by configuration. </PARA> </LISTITEM> </VARLISTENTRY> <VARLISTENTRY> <TERM>POSIX and µITRON APIs</TERM> <LISTITEM> <PARA>A description of the POSIX and µITRON APIs and how they are supported under <productname>eCos</productname>. </para> </LISTITEM> </VARLISTENTRY> <VARLISTENTRY> <TERM>The <productname>eCos</productname> Hardware Abstraction Layer (HAL)</TERM> <LISTITEM> <PARA>A description of the structure and functionality of the <productname>eCos</productname> HAL. This section also includes a porting guide to help moving <productname>eCos</productname> to different platforms. </para> </LISTITEM> </VARLISTENTRY> <VARLISTENTRY> <TERM>Device Drivers</TERM> <LISTITEM> <PARA>A description of the philosophy behind <productname>eCos</productname> device drivers, as well as a presentation of the C language APIs for using the current device drivers. </PARA> <para> Device driver support includes serial, ethernet and FLASH devices, and support for PCI, PCMCIA and USB interconnects. </para> </LISTITEM> </VARLISTENTRY> <VARLISTENTRY> <TERM>RedBoot User's Guide</TERM> <LISTITEM> <PARA>This describes RedBoot, which provides a complete bootstrap environment for a range of embedded operating systems, such as embedded Linux and <productname>eCos</productname>, and includes facilities such as network downloading and debugging. It also provides a simple flash file system for boot images. </para> </LISTITEM> </VARLISTENTRY> <VARLISTENTRY> <TERM>TCP/IP Stack Support</TERM> <LISTITEM> <PARA>This describes the Common Networking for <productname>eCos</productname> package, which provides support for a complete TCP/IP networking stack. The design allows for the actual stack to be modular and at the current time two different implementations, one based on OpenBSD from 2000 and a new version based on FreeBSD, are available. </para> <para>Other components related to networking, including support for SNMP, DNS, HTTP and FTP, are also described. </para> </LISTITEM> </VARLISTENTRY> </variablelist></LISTITEM></VARLISTENTRY><VARLISTENTRY><TERM><EMPHASIS>Component Writer's Guide</EMPHASIS></TERM><LISTITEM><PARA>The Component Writer's Guide is intended for developers who needto add or modify parts of <productname>eCos</productname> itself. Itdescribes the following things:</PARA> <VARIABLELIST> <VARLISTENTRY> <TERM>Overview</TERM> <LISTITEM> <PARA>An explanation of the configuration technology used in <productname>eCos</productname>, why it is done this way, how it works and the terminology used. </para> </LISTITEM> </VARLISTENTRY> <VARLISTENTRY> <TERM>Package Organization</TERM> <LISTITEM> <PARA>A description of the <productname>eCos</productname> package repository, how it is organized and how packages themselves are organized. </para> </LISTITEM> </VARLISTENTRY> <VARLISTENTRY> <TERM>The CDL Language</TERM> <LISTITEM> <PARA>A description of the CDL language and how it is used to control the configuration of <productname>eCos</productname> components. The document also contains a complete specification of the language. </para> </LISTITEM> </VARLISTENTRY> <VARLISTENTRY> <TERM>The Build Process</TERM> <LISTITEM> <PARA>A description of what happens once a configuration has been created and must be built into a set of executables. </para> </LISTITEM> </VARLISTENTRY> </variablelist></LISTITEM></VARLISTENTRY></variablelist></chapter></part>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -