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

Subversion Repositories openrisc

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

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

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

powered by: WebSVN 2.1.0

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