OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [doc/] [sgml/] [user-guide/] [introduction.sgml] - Blame information for rev 799

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
2
 
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
28
29
 
30
31
Introduction
32
 
33
43
 
44
45
 
46
47
Key Features
48
 
49
50
 
51
52
eCos is distributed under the GPL
53
license with an exception which permits proprietary application code
54
to be linked with eCos without itself being
55
forced to be released under the GPL. It is also royalty and buyout
56
free.
57
58
59
 
60
61
As an Open Source project, eCos is
62
under constant improvement, with an active developer community, based
63
around the eCos web site at 
64
URL="http://ecos.sourceware.org/">http://ecos.sourceware.org/.
65
66
67
 
68
69
Powerful GUI-based configuration system allowing both large and
70
fine grained configuration of eCos. This
71
allows the functionality of eCos to be
72
customized to the exact requirements of the application.
73
74
75
 
76
77
Full-featured, flexible, configurable, real time embedded
78
kernel. The kernel provides thread scheduling, synchronization,
79
timer, and communication primitives. It handles hardware resources
80
such as interrupts, exceptions, memory and caches.
81
82
83
 
84
85
The Hardware Abstraction Layer (HAL) hides the specific features
86
of each supported CPU and platform, so that the kernel and other
87
run-time components can be implemented in a portable fashion.
88
89
90
 
91
92
Support for µITRON and POSIX Application Programmer
93
Interfaces (APIs). It also includes a fully featured, thread-safe ISO
94
standard C library and math library.
95
96
97
 
98
99
Support for a wide variety of devices including many serial
100
devices, ethernet controllers and FLASH memories. There is also
101
support for PCMCIA, USB and PCI interconnects.
102
103
104
 
105
106
A fully featured TCP/IP stack implementing IP, IPv6, ICMP, UDP
107
and TCP over ethernet and serial interfaces. Support for SNMP, HTTP,
108
TFTP, PPP and FTP is also present.
109
110
111
 
112
113
A lightweight TCP/IP stack (lwIP) implementing IP, ICMP, UDP
114
and TCP over ethernet and serial interfaces.
115
116
117
 
118
119
A lightweight implementation of the C++ Standard Template
120
Library (uSTL).
121
122
123
 
124
125
The RedBoot ROM monitor is an application that uses the
126
eCos HAL for portability. It provides
127
serial and ethernet based booting and debug services during
128
development.
129
130
131
 
132
133
Many components include test programs that validate the
134
components behaviour. These can be used both to check that hardware is
135
functioning correctly, and as examples of
136
eCos usage.
137
138
139
 
140
141
eCos documentation included this User
142
Guide, the Reference Manual and the Components Writer's Guide. These
143
are being continually updated as the system develops.
144
145
146
 
147
148
 
149
150
 
151
152
 
153
154
<productname>eCos</productname> Overview
155
 
156
eCos is an open source, configurable,
157
        portable, and royalty-free embedded real-time operating
158
        system. The following text expands on these core aspects that
159
        define eCos.
160
 
161
eCos is provided as an open source
162
        runtime system supported by the GNU open source development
163
        tools. Developers have full and unfettered access to all
164
        aspects of the runtime system. No parts of it are proprietary
165
        or hidden, and you are at liberty to examine, add to, and
166
        modify the code as you deem necessary. These rights are
167
        granted to you and protected by the GNU Public License (GPL).
168
        An exception clause has been added to the eCos license which
169
        limits the circumstances in which the license applies to other
170
        code when used in conjunction with eCos. This exception grants
171
        you the right to freely develop and distribute applications
172
        based on eCos. You are not expected
173
        or required to make your embedded applications or any
174
        additional components that you develop freely available so
175
        long as they are not derived from
176
        eCos code. We of course welcome all
177
        contributions back to eCos such as
178
        board ports, device drivers and other components, as this
179
        helps the growth and development of
180
        eCos, and is of benefit to the
181
        entire eCos community. See 
182
        LINKEND="ecos-licensing"> for more details.
183
 
184
One of the key technological innovations in
185
        eCos is the configuration
186
        system. The configuration system allows the application writer
187
        to impose their requirements on the run-time components, both
188
        in terms of their functionality and implementation, whereas
189
        traditionally the operating system has constrained the
190
        application's own implementation. Essentially, this enables
191
        eCos developers to create their own
192
        application-specific operating system and makes
193
        eCos suitable for a wide range of
194
        embedded uses. Configuration also ensures that the resource
195
        footprint of eCos is minimized as
196
        all unnecessary functionality and features are removed. The
197
        configuration system also presents
198
        eCos as a component
199
        architecture. This provides a standardized mechanism for
200
        component suppliers to extend the functionality of
201
        eCos and allows applications to be
202
        built from a wide set of optional configurable run-time
203
        components. Components can be provided from a variety of
204
        sources including: the standard
205
        eCos release; commercial third
206
        party developers or open source contributors.
207
 
208
The royalty-free nature of eCos means that you can develop and
209
deploy your application using the standard eCos release without
210
incurring any royalty charges. In addition, there are no up-front
211
license charges for the eCos runtime source code and associated
212
tools. We provide, without charge, everything necessary for basic
213
embedded applications development.
214
 
215
eCos is designed to be portable to a
216
wide range of target architectures and target platforms including 16,
217
32, and 64 bit architectures, MPUs, MCUs and DSPs. The
218
eCos kernel, libraries and runtime
219
components are layered on the Hardware Abstraction Layer (HAL), and
220
thus will run on any target once the HAL and relevant device drivers
221
have been ported to the target's processor architecture and
222
board. Currently eCos supports a large
223
range of different target architectures:
224
 
225
 
226
227
 
228
ARM, Cortex-M, Intel StrongARM and XScale
229
 
230
Fujitsu FR-V, FR30
231
 
232
Hitachi SH2/3/4
233
 
234
Hitachi H8/300H, H8S 
235
 
236
Intel x86
237
 
238
MIPS
239
 
240
Matsushita AM3x
241
 
242
Freescale PowerPC
243
 
244
Freescale 68k/Coldfire
245
 
246
NEC V850
247
 
248
Sun SPARC
249
 
250
251
 
252
253
including many of the popular variants of these architectures
254
and evaluation boards.
255
 
256
eCos has been designed to support
257
applications with real-time requirements, providing features such as
258
full preemptability, minimal interrupt latencies, and all the
259
necessary synchronization primitives, scheduling policies, and
260
interrupt handling mechanisms needed for these type of
261
applications. eCos also provides all the
262
functionality required for general embedded application support
263
including device drivers, memory management, exception handling, C,
264
math libraries, etc. In addition to runtime support, the
265
eCos system includes all the tools
266
necessary to develop embedded applications, including
267
eCos software configuration and build
268
tools, and GNU based compilers, assemblers, linkers, debuggers, and
269
simulators.
270
 
271
To get the most out of eCos you
272
should visit the eCos open source
273
developers site: 
274
URL="http://ecos.sourceware.org/">http://ecos.sourceware.org/.
275
276
 
277
The site is dedicated to the eCos
278
      developer community and contains a rich set of resources
279
      including news, FAQ, online documentation, installation guide,
280
      discussion and announcement mailing lists, and runtime and
281
      development tools downloads. The site also supports anonymous
282
      CVS and WEBCVS access to provide direct access to the latest
283
      eCos source base. 
284
 
285
eCos is released as open source
286
      software because we believe that this is the most effective
287
      software development model, and that it provides the greatest
288
      benefit to the embedded developer community as a whole. As part
289
      of this endeavor, we seek the input and participation of
290
      eCos developers in its continuing
291
      evolution. Participation can take many forms including:
292
293
294
providing us with feedback on how eCos might be made more
295
useful to you - by taking part in the ongoing mailing list discussions
296
and by submitting problem reports covering bugs, documentation issues,
297
and missing features
298
299
300
contributing bug fixes and enhancement patches
301
302
303
contributing new code including device drivers, board
304
ports, libraries, and other runtime components
305
306
307
 
308
Our long term aim is to make eCos a
309
rich and ubiquitous standard infrastructure for the development of
310
deeply embedded applications.  This will be achieved with the
311
assistance of the eCos developer community
312
cooperating to improve eCos for all. We
313
would like to take this opportunity to extend our thanks to the many
314
eCos developers who have already
315
contributed feedback, ideas, patches, and code that have augmented and
316
improved this release.
317
 
318
 
319
320
The eCos Maintainers
321
322
 
323
324
 
325
326
 
327
328
<productname>eCos</productname> Licence Overview
329
 
330
As of May 2002, eCos is released
331
under a modified version of the well known 
332
url="http://www.gnu.org/copyleft/gpl.html">GNU General Public License
333
(GPL), now making it an 
334
url="http://www.gnu.org/philosophy/license-list.html">official
335
GPL-compatible Free Software License. An exception clause has
336
been added to the eCos license which limits
337
the circumstances in which the license applies to other code when used
338
in conjunction with eCos. The exception
339
clause is as follows:
340
 
341
342
 As a special exception, if other files instantiate templates or use macros
343
 or inline functions from this file, or you compile this file and link it
344
 with other works to produce a work based on this file, this file does not
345
 by itself cause the resulting work to be covered by the GNU General Public
346
 License. However the source code for this file must still be made
347
 available in accordance with section (3) of the GNU General Public
348
 License.
349
 
350
 This exception does not invalidate any other reasons why a work based on
351
 this file might be covered by the GNU General Public License.
352
353
 
354
The goal of the license is to serve the
355
eCos user community as a whole. It allows
356
all eCos users to develop products without
357
paying anybody anything, no matter how many developers are working on
358
the product or how many units will be shipped. The license also
359
guarantees that the eCos source code will
360
always be freely available. This applies not only to the core
361
eCos code itself but also to any changes
362
that anybody makes to the core. In particular, it should prevent any
363
company or individual contributing code to the system and then later
364
claiming that all eCos users are now guilty
365
of copyright or patent infringements and have to pay royalties. It
366
should also prevent any company from making some small improvements,
367
calling the result a completely new system, and releasing this under a
368
new and less generous license.
369
 
370
The license does not require users to
371
release the source code of any applications that
372
are developed with eCos. However, if
373
anybody makes any changes to code covered by the
374
eCos license, or writes new files derived
375
in any way from eCos code, then we believe
376
that the entire user community should have the opportunity to benefit
377
from this. The license stipulates that these changes must be made
378
available in source code form to all recipients of binaries based on
379
the modified code, either by including the sources along with the
380
binaries you deliver (or with any device containing such binaries) or
381
with a written offer to supply the source code to the general public
382
for three years. It is perhaps most practical for
383
eCos developers to make the source code
384
available online and inform those who are receiving binaries
385
containing eCos code, and probably also the
386
eCos maintainers, about the location of the
387
code. See the full
388
text of the GPL for the most authoritative definition of the
389
obligations.
390
 
391
Although it is not strictly necessary to contribute the modified
392
code back to the eCos open source project,
393
we are always pleased to receive code contributions and hope that
394
developers will also be keen to give back in return for what they
395
received from the eCos project completely
396
free of charge.  The eCos maintainers are
397
responsible for deciding whether such contributions should be applied
398
to the public repository. In addition, a 
399
url="http://ecos.sourceware.org/assign.html">copyright
400
assignment is required for any significant changes to the core
401
eCos packages.
402
 
403
The result is a royalty-free system with minimal obligations on
404
the part of application developers. This has resulted in the rapid
405
uptake of eCos. At the same time,
406
eCos is fully open source with all the
407
benefits that implies in terms of quality and innovation. We believe
408
that this is a winning combination.
409
 
410
411
Questions and answers
412
 
413
The following queries provide some clarification as to the
414
implications of the eCos license. They do
415
not consititute part of the legal meaning of the license.
416
 
417
Q. What is the effect of the
418
eCos license?
419
 
420
A. In the simplest terms, when you
421
distribute anything containing eCos code,
422
you must make the source code to eCos
423
available under the terms of the GPL.
424
 
425
Q. What if I make changes to
426
eCos, or write new code based on
427
eCos code?
428
 
429
A. Then you must make those changes
430
available as well.
431
 
432
Q. Do I have to distribute the source
433
code to my application? Isn't the GPL "viral"?
434
 
435
A. You do not have to distribute any
436
code under the terms of the GPL other than
437
eCos code or code derived from
438
eCos. For example, if you write a HAL port
439
based on copying an existing eCos HAL in
440
any way, you must make the source code available with the
441
binary. However you would not need to make available any other code,
442
such as the code of a wholly separate application linked with
443
eCos.
444
 
445
Q. I would rather stick with the
446
RHEPL code, but I updated my anonymous CVS checkout.
447
 
448
A. You can check out the final
449
version of anonymous CVS before the license change using the CVS tag
450
last-rhepl. See 
451
url="http://ecos.sourceware.org/anoncvs.html">the anonymous CVS
452
access page
453
for details.
454
 
455
456
 
457
458
Previous License
459
 
460
461
 
462
Prior to May 2002, eCos was released under
463
the Red
464
Hat eCos Public License (RHEPL). The RHEPL required any
465
modifications to eCos code to be made
466
available under preferential terms to Red Hat and was therefore
467
incompatible with code licensed under the GPL.  The use of
468
eCos source code which was licensed under
469
the RHEPL is not affected by the switch to the modified GPL for later
470
revisions.
471
472
 
473
474
 
475
476
 
477
478
 
479
480
Notation and Conventions
481
 
482
483
Since there are many supported target architectures, notation
484
conventions are used in this manual to avoid repeating instructions
485
that are very similar.
486
487
 
488
489
GDB and <!-- <index></index> -->GCC Command Notation
490
 
491
492
Cross-development commands like gcc and
493
gdb will be shown with a
494
TARGET- prefix. You need to replace
495
TARGET- with the correct prefix before
496
using the command. Just using gcc or
497
gdb will use the tools for the host, which is not
498
(usually) what you want.
499
500
 
501
502
For example use arm-elf-gcc and
503
arm-elf-gdb for ARM, Thumb, and StrongARM targets.
504
Use xscale-elf-gcc and
505
xscale-elf-gdb for Intel Xscale targets.
506
Use i386-elf-gcc and
507
i386-elf-gdb for IA32 targets. And so on, the exact
508
prefix to use is shown in the documentation for each target.
509
510
 
511
Note that some versions of the GCC cross compiler generate
512
executable files with the .exe suffix on Windows,
513
but not on Linux. The suffix .exe will be omitted
514
from executable file names, so you will see hello
515
instead of hello.exe.
516
 
517
518
 
519
520
Directory and File System Conventions
521
 
522
The default directory for installing
523
eCos on Windows (usually
524
C:/Program Files/eCos) is different from that on
525
Linux (usually /opt/ecos).  Since many command
526
line examples in the tutorials use these paths, this default (base)
527
directory will be cited as BASE_DIR.
528
 
529
Windows and Linux have a similar file system syntax, but the
530
MS-DOS command interpreter on Windows uses the backslash character
531
(\) as a path separator, while Linux and POSIX shells (including
532
the Cygwin bash shell for windows) use the forward slash (/).
533
 
534
This document will use the POSIX shell convention of forward
535
slashes throughout.
536
 
537
538
 
539
540
 
541
542
Version Conventions
543
 
544
545
This manual does not refer explicitly to any particular version of
546
eCos. However, version numbers form part of
547
many file path names. In all of these places the version number will
548
be shown like this: &Version;.
549
550
 
551
552
If you have used anonymous CVS to check
553
eCos out of the CVS repository, the version
554
number will always be current, since that is the
555
name of the directory in the repository. When a stable release is made
556
this directory name is changed, in the release, to the number of the
557
release, for example v2_0 or
558
v2_1.
559
560
 
561
562
 
563
 
564
565
 
566
 
567
 
568
569
Documentation Roadmap
570
 
571
572
The eCos documentation is divided into a
573
three main parts:
574
575
 
576
577
578
User Guide
579
580
This document. It includes the following sections:
581
 
582
  
583
  
584
  Installing eCos
585
  
586
  
587
  This section describes how to install the
588
  eCos software, how to set up your
589
  hardware and how to test that it is all working.
590
  
591
  
592
  
593
 
594
  
595
  Programming Under eCos
596
  
597
  
598
  This section describes how to write programs that run under
599
  eCos by running through some examples.
600
  
601
  
602
  
603
 
604
  
605
  The eCos Configuration Tool
606
  
607
  
608
  This section describes the eCos graphical
609
  configuration tool and how to use it to change how
610
  eCos behaves.
611
  
612
  
613
 
614
  
615
  eCos Programming Concepts and Techniques
616
  
617
  An explanation of the eCos programming
618
            cycle, and a description of some debugging facilities that
619
            eCos offers.
620
  
621
  
622
  
623
 
624
  
625
  Configuration and the Package
626
              Repository
627
  
628
  Information on how to configure eCos
629
              manually, including a reference on the
630
              ecosconfig command, memory layouts,
631
              and information on how to manage a package repository
632
              using the eCos Package Administration
633
              Tool.
634
            
635
  
636
  
637
 
638
 
639
  
640
 
641
642
643
 
644
645
Reference Guide
646
647
 
648
The Reference Guide provides detailed documentation on various
649
aspects of eCos. This document is being
650
constantly updated, so the following list just mentions the more
651
important sections, take a look at the guide itself for the full
652
story.
653
 
654
  
655
 
656
  
657
  The eCos Kernel
658
  
659
  In-depth description of eCos"s
660
              native C kernel API Important considerations are given
661
              for programming the eCos
662
              kernel. The semantics for each kernel function are
663
              described, including how they are affected by
664
              configuration. 
665
  
666
  
667
 
668
  
669
  POSIX and µITRON APIs
670
  
671
  A description of the POSIX and µITRON APIs and how they
672
  are supported under eCos.
673
  
674
  
675
  
676
 
677
  
678
  The eCos Hardware Abstraction Layer (HAL)
679
  
680
  A description of the structure and functionality of the
681
  eCos HAL. This section also includes a
682
  porting guide to help moving eCos to
683
  different platforms.
684
  
685
  
686
  
687
 
688
  
689
  Device Drivers
690
  
691
  A description of the philosophy behind
692
              eCos device drivers, as well as a
693
              presentation of the C language APIs for using the current
694
              device drivers. 
695
  
696
    Device driver support includes serial, ethernet and FLASH devices,
697
    and support for PCI, PCMCIA and USB interconnects.
698
  
699
  
700
  
701
 
702
  
703
  RedBoot User's Guide
704
  
705
  This describes RedBoot, which provides a complete bootstrap
706
        environment for a range of embedded operating systems, such as
707
        embedded Linux and eCos, and
708
        includes facilities such as network downloading and
709
        debugging. It also provides a simple flash file system for
710
        boot images.
711
  
712
  
713
  
714
 
715
  
716
  TCP/IP Stack Support
717
  
718
  This describes the Common Networking for
719
        eCos package, which provides
720
        support for a complete TCP/IP networking stack. The design
721
        allows for the actual stack to be modular and at the current
722
        time two different implementations, one based on OpenBSD from
723
        2000 and a new version based on FreeBSD, are available.
724
  
725
  Other components related to networking, including support for
726
        SNMP, DNS, HTTP and FTP, are also described.
727
  
728
  
729
  
730
 
731
  
732
 
733
734
735
 
736
737
Component Writer's Guide
738
739
The Component Writer's Guide is intended for developers who need
740
to add or modify parts of eCos itself. It
741
describes the following things:
742
743
 
744
  
745
  
746
  Overview
747
  
748
  An explanation of the configuration technology used in
749
  eCos, why it is done this way, how it
750
  works and the terminology used.
751
  
752
  
753
  
754
 
755
  
756
  Package Organization
757
  
758
  A description of the eCos package
759
  repository, how it is organized and how packages themselves are
760
  organized.
761
  
762
  
763
  
764
 
765
  
766
  The CDL Language
767
  
768
  A description of the CDL language and how it is used to
769
  control the configuration of eCos
770
  components. The document also contains a complete specification of
771
  the language.
772
  
773
  
774
  
775
 
776
  
777
  The Build Process
778
  
779
  A description of what happens once a configuration has been
780
  created and must be built into a set of executables.
781
  
782
  
783
  
784
 
785
  
786
 
787
788
789
790
 
791
792
 
793
 
794

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.