Author Anthony J. Massa shows you how to save thousands of dollars and hundreds of programming hours by effectively using the open-source eCos environment from market leader Red Hat. This workbook shows developers and managers the advantages of using eCos -- the Embedded Configurable Operating System -- over proprietary or commercial embedded operating systems. Overview - How to build low-cost, royalty-free embedded solutions with eCos
- Covers eCos architecture, installation, configuration, coding, debugging, bootstrapping, porting, and more
- Incorporates additional open-source software components to extend the features and functionality of eCos, meeting the requirements of a wide range of embedded systems
- Includes open-source tools for a complete embedded software development environment with eCos as the core
- Contains extensive code examples and complete application case study
"Anthony's book is easily the most complete treatment of eCos system development. I believe it is destined to become part of every eCos developer's library." —Michael Tiemann, CTO, Red Hat Software and Co-founder of Cygnus Solutions The Embedded Configurable Operating System (eCos) gives professionals a low-cost, royalty-free embedded software development solution that works in highly constrained hardware environments, while scaling smoothly to larger products. In this start-to-finish guide to eCos solution building, Anthony Massa covers eCos architecture, installation, configuration, coding, deployment, and the entire eCos open-source development system. Additional open-source tools are included to configure a complete embedded software development environment. Massa's code examples and application case study illuminate techniques for building virtually any embedded system, from the simplest device to complex Internet-enabled wireless systems. Coverage includes: - Understanding eCos architecture: kernel, hardware abstraction layer, and other components
- Preparing your eCos embedded development environment
- Incorporating additional open-source tools for a complete embedded software development environment
- Working with exceptions, interrupts, and virtual vectors
- Managing threads and synchronization
- Utilizing the eCos networking stack, I/O system, and file system
- Covering additional eCos functionality, including third-party open-source contributions
- Using RedBoot, the standardized embedded debug and bootstrap solution
- Porting eCos to new hardware platforms
The accompanying CD-ROM contains the complete eCos development environment, along with all the code presented in this book. Table of Contents Foreword Preface 1. An Introduction to the eCos World 1.1 Where It All Started — Cygnus Solutions 1.2 The Origins of eCos 1.2.1 In a Word: Configurability 1.2.2 The eCos Configuration Method 1.2.3 eCos Core Components 1.2.4 Processor and Evaluation Platform Support 1.2.5 eCos Support 1.3 Architecture Overview 1.3.1 eCos Terminology 1.3.1.1 Component Framework 1.3.1.2 Component Repository 1.3.1.3 Configuration Options 1.3.1.4 Components and Packages 1.3.1.5 Targets 1.3.1.6 Templates 1.4 Summary 2. The Hardware Abstraction Layer 2.1 Overview 2.1.1 HAL Directory Structure 2.1.1.1 Example HAL Function Call Trace 2.1.2 HAL Macro Definitions 2.1.3 HAL Configuration 2.1.3.1 Common Configuration Components 2.1.3.2 Architecture-Specific Configuration Components 2.1.4 HAL Startup 2.2 Summary 3. Exceptions and Interrupts 3.1 Exceptions 3.1.1 HAL and Kernel Exception Handling 3.1.2 Application Exception Handling 3.2 Interrupts 3.2.1 eCos Interrupt Model 3.2.1.1 Interrupt and Scheduler Synchronization 3.2.2 Interrupt Configuration 3.2.3 Interrupt Handling 3.2.4 Interrupt Control 3.2.4.1 Interrupt Service Routine Management 3.2.4.2 Interrupt State Management 3.2.4.3 Interrupt Controller Management 3.3 Summary 4. Virtual Vectors 4.1 Virtual Vectors 4.1.1 Virtual Vector Configuration 4.1.2 Virtual Vector Table Initialization 4.1.2.1 Communication Channels 4.2 Summary 5. The Kernel 5.1 The Kernel 5.1.1 Kernel Directory Structure 5.1.2 Kernel Startup 5.1.3 The Scheduler 5.1.3.1 Multilevel Queue Scheduler 5.1.3.2 Bitmap Scheduler 5.1.3.3 Priority Levels 5.1.3.4 Scheduler Configuration 5.2 Summary 6. Threads and Synchronization Mechanisms 6.1 Threads 6.1.1 Thread Stacks and Stack Sizes 6.2 Synchronization Mechanisms 6.2.1 Mutexes 6.2.2 Semaphores 6.2.3 Condition Variables 6.2.4 Flags 6.2.5 Message Boxes 6.2.6 Spinlocks 6.3 Summary 7. Other eCos Architecture Components 7.1 Counters, Clocks, Alarms, and Timers 7.1.1 Counters 7.1.2 Clocks 7.1.3 Alarms 7.1.4 Timers 7.2 Asserts and Tracing 7.3 ISO C and Math Libraries 7.4 I/O Control System 7.4.1 I/O Sub-System 7.4.2 Device Drivers 7.5 Summary 8. Additional Functionality and Third-Party Contributions 8.1 Compatibility Layers 8.1.1 POSIX 8.1.1.1 EL/IX 8.1.2 µITRON 8.2 ROM Monitors 8.2.1 CygMon 8.2.2 RedBoot 8.2.3 GDB Stub 8.3 File Systems 8.3.1 ROM File System 8.3.2 RAM File System 8.3.3 Journalling Flash File System Version 2 8.4 PCI Support 8.4.1 PCI Library API 8.5 USB Support 8.6 Networking Support 8.6.1 OpenBSD 8.6.2 FreeBSD 8.6.3 lwIP 8.6.4 Networking Threads 8.6.5 Networking Configuration 8.6.6 Networking Tests 8.6.7 DNS Support 8.7 SNMP Support 8.8 The GoAhead Embedded WebServer 8.9 Symmetric Multi-Processing Support 8.10 Additional Features 8.11 Summary 9. The RedBoot ROM Monitor 9.1 Overview 9.2 RedBoot Directory Structure 9.3 Installation and Configuration 9.3.1 RedBoot Configuration 9.3.2 Host Configuration 9.3.2.1 Serial 9.3.2.2 Ethernet 9.4 User Interface and Command Set 9.4.1 RedBoot Commands 9.4.1.1 Boot Scripting 9.5 Summary 10. The Host Development Platform 10.1 Overview 10.2 Configuring the Windows Host 10.2.1 Installing the Cygwin Native Tools 10.2.1.1 Cygwin Tools Directory Structure 10.2.1.2 Upgrading the Cygwin Tools 10.2.2 Installing the Platform-Specific Cross-Development Tools 10.2.3 Installing the eCos Development Kit 10.2.3.1 eCos Development Kit Directory Structure 10.2.4 Accessing the Online eCos Source Code Repository 10.2.4.1 Installing WinCVS 10.2.4.2 Setting WinCVS Preferences 10.2.4.3 WinCVS Update Commands 10.3 Summary 11. The eCos Toolset 11.1 Packages 11.1.1 Package Directory Structure 11.1.2 The Component Definition Language Overview 11.1.2.1 CDL Script Files 11.2 The Configuration Tool 11.2.1 Screen Layout 11.2.1.1 Saving Configurations 11.2.1.2 Importing and Exporting Configurations 11.2.1.3 Configuration Window 11.2.1.4 Conflicts Window 11.2.1.5 Properties Window 11.2.1.6 Short Description Window 11.2.1.7 Output Window 11.2.1.8 Memory Layout Window 11.2.1.9 Memory Layout Manipulation 11.2.2 eCos Repository Database 11.2.3 Graphical Representation of CDL Script Files 11.2.4 Using Templates 11.2.4.1 Conflicts and Resolutions 11.2.5 Package Control 11.3 Other eCos Tools 11.3.1 The Package Administration Tool 11.3.2 The Command-Line Configuration Tool 11.4 Building the eCos Tools 11.5 Additional Open-Source Tools 11.5.1 Source-Navigator 11.5.2 Splint 11.6 Summary 12. An Example Application Using eCos 12.1 The eCos Build Process 12.1.1 A Closer Look 12.2 Examples Overview 12.2.1 Development Hardware Setup 12.2.2 eCos Tools 12.3 RedBoot 12.3.1 Building RedBoot 12.3.2 Installing RedBoot 12.3.3 Booting RedBoot 12.4 eCos 12.4.1 Building eCos 12.5 Application 12.5.1 Building the Application 12.5.2 Loading the Application 12.5.3 Debugging the Application 12.5.3.1 Using the GDB Command-Line Interface 12.6 The eCos Tests 12.7 Simulators 12.8 Summary 13. Porting eCos 13.1 Overview of Porting 13.2 A Platform Porting Example 13.2.1 PowerPC HAL Directory and File Structure 13.2.2 Porting Hints 13.3 Summary Appendix A - Supported Processors and Evaluation Platforms Appendix B - eCos License B.1 eCos License B.2 GNU General Public License B.2.1 Version 2, June 1991 B.2.2 Preamble B.2.3 How to Apply These Terms to Your New Programs Appendix C - Cygwin Tools Upgrade Procedure Appendix D - Building the GNU Cross-Development Tools About the Author Index About the CD-ROM Paperback; 399 pages.
|