eCosPro User Guide

Open Publication License
eCosPro Non-Commercial Public License
Trademarks

10 December 2024


Table of Contents

I. Introduction
1. Key Features
2. eCos Overview
3. Licensing
3.1. eCosPro Non-Commercial Public Licence Overview
3.2. eCosPro Licence Overview
3.3. eCos Licence Overview
3.3.1. Questions and answers
3.4. Previous eCos License
3.5. Documentation License
4. Notation and Conventions
4.1. GDB and GCC Command Notation
4.2. Directory and File System Conventions
4.3. Version Conventions
5. Documentation Roadmap
II. Programming With eCos
6. Programming With eCos
6.1. The Development Process
6.1.1. eCos Configuration
6.1.2. Integrity check of the eCos configuration
6.1.3. Application Development - Target Neutral Part
6.1.4. Application Development - Target Specific Part
7. Configuring and Building eCos from Source
7.1. eCos Start-up Configurations
7.2. Configuration Tool on Windows and Linux Quick Start
7.3. ecosconfig on Windows and Linux Quick Start
7.3.1. Selecting a Target
8. Running an eCos Test Case
8.1. Using the Configuration Tool
8.2. Using the command line
8.3. Testing Filters
9. Building and Running Sample Applications
9.1. eCos Hello World
9.1.1. eCos hello world program listing
9.2. A Sample Program with Two Threads
9.2.1. eCos two-threaded program listing
10. More Features — Clocks and Alarm Handlers
10.1. A Sample Program with Alarms
III. The eCos Configuration Tool
11. Getting Started
11.1. Introduction
11.2. Environment Variables
11.3. Invoking the eCos Configuration Tool
11.3.1. On Linux
11.3.2. On Windows
11.3.3. Configuration Tool
11.4. Profiles and the Component Repository
11.4.1. Profiles
11.4.2. Legacy Profile and Compatibility with eCosPro v2.0.x and 3.0.x
11.4.3. Migrating configurations to a new repository profile
11.4.4. Profile Dialog
11.5. eCos Configuration Tool Documents
11.5.1. Configuration Save File
11.5.2. Build and Install Trees
12. Getting Help
12.1. Context-sensitive Help for Dialogs
12.2. Context-sensitive Help for Other Windows
12.3. Context-sensitive Help for Configuration Items
12.4. Methods of Displaying HTML Help
13. Customization
13.1. Window Placement
13.2. Settings
13.2.1. Settings: Display tab
13.2.2. Settings: Viewers tab
14. Screen Layout
14.1. Configuration Window
14.1.1. Disabled items
14.1.2. Conflicts Window
15. The Configuration
15.1. Adding and Removing Packages
15.2. Switching Targets, Repositories and Versions
15.3. Platform Selection
15.4. Using Templates
15.4.1. Resolving conflicts
15.4.2. Automatic resolution
15.5. Configuration Information
16. Searching
17. Building
17.1. Selecting Build Tools
17.2. Selecting Host Tools
18. Execution
18.1. Properties
18.1.1. Download Timeout
18.1.2. Run time Timeout
18.1.3. Debug Connection
18.1.4. Target Reset
18.1.5. Output Connection
18.2. Executables Tab
18.3. Output Tab
18.4. Summary Tab
19. Creating a Shell
20. Keyboard Accelerators
21. Checking for updates
IV. eCos Programming Concepts and Techniques
22. CDL Concepts
22.1. About this chapter
22.1.1. Background
22.1.2. Configurations
22.2. Component Repository
22.3. Component Definition Language
22.4. Packages
22.5. Configuration Items
22.5.1. Expressions
22.5.2. Properties
22.5.3. Inactive Items
22.6. Conflicts
22.7. Templates
23. The Component Repository and Working Directories
23.1. Component Repository
23.1.1. Purpose
23.1.2. How is it modified?
23.1.3. When is it edited manually?
23.1.4. User Applications
23.1.5. Examples of files in this hierarchy:
23.2. Build Tree
23.2.1. Purpose
23.2.2. How is it modified?
23.2.3. User applications
23.2.4. Examples of files in this hierarchy
23.3. Install Tree
23.3.1. Purpose
23.3.2. How is it modified?
23.3.3. When is it edited manually?
23.3.4. User applications
23.3.5. Examples of files in this hierarchy
23.4. Application Build Tree
24. Compiler and Linker Options
24.1. Compiling a C Application
24.2. Compiling a C++ Application
25. Debugging Techniques
25.1. Tracing
25.2. Instrumentation
25.2.1. Kernel Instrumentation
25.2.2. Embedded (non-loaded) information
25.2.3. Adding new instrumentation
25.2.4. Memory buffer instrumentation
V. Configuration and the Package Repository
26. Manual Configuration
26.1. Directory Tree Structure
26.2. Creating the Build Tree
26.2.1. ecosconfig qualifiers
26.2.2. ecosconfig commands
26.3. Conflicts and constraints
26.4. Building the System
26.5. Packages
26.6. Coarse-grained Configuration
26.7. Fine-grained Configuration
26.8. Editing an eCos Savefile
26.8.1. Header
26.8.2. Toplevel Section
26.8.3. Conflicts Section
26.8.4. Data Section
26.8.5. Tcl Syntax
26.9. Editing the Sources
26.10. Modifying the Memory Layout
27. Managing the Package Repository
27.1. Package Installation
27.1.1. Using the Package Administration Tool
27.1.2. Using the command line
27.2. Package Structure
27.2.1. Integration with Revision Control Systems
VI. Fixes and Patches
28. Applying a patch
28.1. Pre-process patchfile
28.2. Applying a patch
28.2.1. Patch Prefix (-pn)
28.2.2. Example: Applying a patch on Linux
28.2.3. Example: Applying a patch on Windows
29. Problems applying a patch
29.1. Cannot find file
29.2. Hunk FAILED
29.3. Hunk succeeded
29.4. Malformed patch
29.5. Reversed patch
VII. Appendixes and Index
A. Target Setup
B. Real-time characterization
C. GNU General Public License