eCosPro Reference Manual

Documentation licensing terms
Trademarks
eCos and RedBoot Warranty
eCosPro Warranty
Other copyrights

29 March 2022

About this reference manual

This reference manual is for eCos and eCosPro. It forms part of the eCosPro Developer's kit and includes documentation of the standard features of eCos as well documentation of eCosPro libraries and runtime features. Not all the eCosPro features or libraries documented in this reference manual may be available in the runtime code due to licensing restrictions. Some eCosPro features are subject to the eCosPro Evaluation License and require seperate licensing exclusively from eCosCentric when included in a product.


Table of Contents

I. The eCos Kernel
Kernel Overview — Overview of the eCos Kernel
SMP Support — Support Symmetric Multiprocessing Systems
Thread creation — Create a new thread
Thread information — Get basic thread information
Thread control — Control whether or not a thread is running
Thread termination — Allow threads to terminate
Thread priorities — Examine and manipulate thread priorities
Per-thread data — Manipulate per-thread data
Thread destructors — Call functions on thread termination
Exception handling — Handle processor exceptions
Counters — Count event occurrences
Clocks — Provide system clocks
Alarms — Run an alarm function when a number of events have occurred
Mutexes — Synchronization primitive
Condition Variables — Synchronization primitive
Semaphores — Synchronization primitive
Mail boxes — Synchronization primitive
Event Flags — Synchronization primitive
Spinlocks — Low-level Synchronization Primitive
Scheduler Control — Control the state of the scheduler
Interrupt Handling — Manage interrupt handlers
Kernel Real-time Characterization — Measure the performance of the eCos kernel
Kernel thread-aware debugging — Overview of eCos Kernel thread-aware debugging
II. The eCos Hardware Abstraction Layer (HAL)
1. Introduction
2. Architecture, Variant and Platform
3. General principles
4. HAL Interfaces
4.1. Base Definitions
4.1.1. Byte order
4.1.2. Label Translation
4.1.3. Base types
4.1.4. Atomic types
4.2. Architecture Characterization
4.2.1. Register Save Format
4.2.2. Thread Context Initialization
4.2.3. Thread Context Switching
4.2.4. Bit indexing
4.2.5. Idle thread activity
4.2.6. Reorder barrier
4.2.7. Breakpoint support
4.2.8. GDB support
4.2.9. Setjmp and longjmp support
4.2.10. Stack Sizes
4.2.11. Address Translation
4.2.12. Global Pointer
4.3. Interrupt Handling
4.3.1. Vector numbers
4.3.2. Interrupt state control
4.3.3. ISR and VSR management
4.3.4. Interrupt controller management
4.4. Clocks and Timers
4.4.1. Clock Control
4.4.2. Microsecond Delay
4.4.3. Clock Frequency Definition
4.5. HAL I/O
4.5.1. Register address
4.5.2. Register read
4.5.3. Register write
4.6. HAL Unique-ID
4.6.1. HAL_UNIQUE_ID_LEN
4.6.2. HAL_UNIQUE_ID
4.7. Cache Control
4.7.1. Cache Dimensions
4.7.2. Global Cache Control
4.7.3. Cache Line Control
4.8. Linker Scripts
4.9. Diagnostic Support
4.10. SMP Support
4.10.1. Target Hardware Limitations
4.10.2. HAL Support
5. Exception Handling
5.1. HAL Startup
5.2. Vectors and VSRs
5.3. Default Synchronous Exception Handling
5.4. Default Interrupt Handling
6. HAL GDB File I/O Routines
HAL GDB File I/O Routines — access host file system
7. Porting Guide
7.1. Introduction
7.2. HAL Structure
7.2.1. HAL Classes
7.2.2. File Descriptions
7.3. Virtual Vectors (eCos/ROM Monitor Calling Interface)
7.3.1. Virtual Vectors
7.3.2. The COMMS channels
7.3.3. The calling Interface API
7.3.4. IO channels
7.4. HAL Coding Conventions
7.4.1. Implementation issues
7.4.2. Source code details
7.4.3. Nested Headers
7.5. Platform HAL Porting
7.5.1. HAL Platform Porting Process
7.5.2. HAL Platform CDL
7.5.3. Platform Memory Layout
7.5.4. Platform Serial Device Support
7.6. Variant HAL Porting
7.6.1. HAL Variant Porting Process
7.6.2. HAL Variant CDL
7.6.3. Cache Support
7.7. Architecture HAL Porting
7.7.1. HAL Architecture Porting Process
7.7.2. CDL Requirements
8. Future developments
III. The ISO Standard C and Math Libraries
9. C and math library overview
9.1. Included non-ISO functions
9.2. Math library compatibility modes
9.2.1. matherr()
9.2.2. Thread-safety and re-entrancy
9.3. Some implementation details
9.4. Thread safety
9.5. C library startup
10. Overview of ISO Standards Compliance
10.1. Definitions
10.2. Scope
10.3. General Overview
10.4. Common C/C++ headers
10.4.1. <assert.h>
10.4.2. <complex.h>
10.4.3. <ctype.h>
10.4.4. <errno.h>
10.4.5. <fenv.h>
10.4.6. <float.h>
10.4.7. <inttypes.h>
10.4.8. <iso646.h>
10.4.9. <limits.h>
10.4.10. <locale.h>
10.4.11. <math.h>
10.4.12. <setjmp.h>
10.4.13. <signal.h>
10.4.14. <stdarg.h>
10.4.15. <stdbool.h>
10.4.16. <stddef.h>
10.4.17. <stdint.h>
10.4.18. <stdio.h>
10.4.19. <stdlib.h>
10.4.20. <string.h>
10.4.21. <tgmath.h>
10.4.22. <time.h>
10.4.23. <wchar.h>
10.4.24. <wctype.h>
10.5. C11 specific headers
10.5.1. <stdalign.h>
10.5.2. <stdatomic.h>
10.5.3. <threads.h>
10.5.4. <uchar.h>
IV. eCosPro Standard C++ library support package
11. Introduction
11.1. Overview of features
12. Usage
12.1. Requirements
12.2. Issues to consider
12.2.1. Using C++ exceptions
12.2.2. Application size
12.2.3. C++ exceptions in callbacks
12.2.4. Licensing
12.2.5. Standards Compliance
12.2.6. Open issues
13. Testing
14. Toolchain
V. eCos Support for Dynamic Memory Allocation
Memory Allocation — Access the System Heap
Memory Pool Functions — Additional Memory Pools
Memory Debug Data — Analyze Memory Usage
VI. I/O Package (Device Drivers)
15. Introduction
16. User API
17. Serial driver details
17.1. Raw Serial Driver
17.1.1. Runtime Configuration
17.1.2. API Details
17.2. TTY driver
17.2.1. Runtime configuration
17.2.2. API details
18. How to Write a Driver
18.1. How to Write a Serial Hardware Interface Driver
18.1.1. DevTab Entry
18.1.2. Serial Channel Structure
18.1.3. Serial Functions Structure
18.1.4. Callbacks
18.2. Serial testing with ser_filter
18.2.1. Rationale
18.2.2. The Protocol
18.2.3. The Serial Tests
18.2.4. Serial Filter Usage
18.2.5. A Note on Failures
18.2.6. Debugging
19. Device Driver Interface to the Kernel
19.1. Interrupt Model
19.2. Synchronization
19.3. SMP Support
19.4. Device Driver Models
19.5. Synchronization Levels
19.6. The API
19.6.1. cyg_drv_isr_lock
19.6.2. cyg_drv_isr_unlock
19.6.3. cyg_drv_spinlock_init
19.6.4. cyg_drv_spinlock_destroy
19.6.5. cyg_drv_spinlock_spin
19.6.6. cyg_drv_spinlock_clear
19.6.7. cyg_drv_spinlock_try
19.6.8. cyg_drv_spinlock_test
19.6.9. cyg_drv_spinlock_spin_intsave
19.6.10. cyg_drv_spinlock_clear_intsave
19.6.11. cyg_drv_dsr_lock
19.6.12. cyg_drv_dsr_unlock
19.6.13. cyg_drv_mutex_init
19.6.14. cyg_drv_mutex_destroy
19.6.15. cyg_drv_mutex_lock
19.6.16. cyg_drv_mutex_trylock
19.6.17. cyg_drv_mutex_unlock
19.6.18. cyg_drv_mutex_release
19.6.19. cyg_drv_cond_init
19.6.20. cyg_drv_cond_destroy
19.6.21. cyg_drv_cond_wait
19.6.22. cyg_drv_cond_signal
19.6.23. cyg_drv_cond_broadcast
19.6.24. cyg_drv_interrupt_create
19.6.25. cyg_drv_interrupt_delete
19.6.26. cyg_drv_interrupt_attach
19.6.27. cyg_drv_interrupt_detach
19.6.28. cyg_drv_interrupt_mask
19.6.29. cyg_drv_interrupt_mask_intunsafe
19.6.30. cyg_drv_interrupt_unmask
19.6.31. cyg_drv_interrupt_unmask_intunsafe
19.6.32. cyg_drv_interrupt_acknowledge
19.6.33. cyg_drv_interrupt_configure
19.6.34. cyg_drv_interrupt_level
19.6.35. cyg_drv_interrupt_set_cpu
19.6.36. cyg_drv_interrupt_get_cpu
19.6.37. cyg_ISR_t
19.6.38. cyg_DSR_t
19.7. Instrumentation
VII. File System Support Infrastructure
20. Introduction
21. File System Table
22. Mount Table
23. File Table
24. Directories
25. Synchronization
26. Initialization and Mounting
27. Automounter
28. Sockets
29. Select
30. Devices
31. Writing a New Filesystem
VIII. FAT File System Support
32. Introduction
33. Configuring the FAT Filesystem
33.1. Including FAT Filesystem in a Configuration
33.2. Configuring the FAT Filesystem
34. Using the FAT Filesystem
35. Removable Media Support
36. Non-ASCII Character Set Support
37. Formatting Support
38. Testing
IX. Multimedia File System
39. Introduction
40. Disk Data Structure
40.1. Directory
40.2. Free List
40.3. Block Allocation Tables
40.4. Data Area
41. Runtime Filesystem Organization
41.1. FILEIO Interface
41.2. File and Directory Handling
41.3. Caches
41.4. Disk Interface
41.5. Scan and Format
42. Configuration
42.1. Configuration Options
42.1.1. General Options
42.1.2. Formatting Options
42.1.3. Footprint Options
42.2. Configuration Guidelines
42.2.1. Block Size
42.2.2. BAT Size
42.2.3. Directory Size
42.2.4. Cache Sizes
43. Usage
43.1. FILEIO Interface
43.2. MMFSLib
43.2.1. MMFSLib API
43.2.2. Example
44. Testing
X. Disk IO Package
45. Introduction
46. Configuring the DISK I/O Package
46.1. Including DISK I/O in a Configuration
46.2. Configuring the DISK I/O Package
47. Usage
48. Hardware Driver Interface
48.1. DevTab Entry
48.2. Disk Controller Structure
48.3. Disk Channel Structure
48.4. Disk Functions Structure
48.5. Callbacks
48.6. Putting It All Together
XI. USB Mass Storage Support
Overview — eCosPro Support for USB Mass Storage
XII. MMC, SD, SDHC and SDIO Media Card Disk Driver
Device Driver for MMC, SD, SDHC and SDIO media Cards — eCos Support for MMC, SD, SDHC and SDIO media Cards
XIII. MMC/SD Card Device Drivers
49. Atmel SAM series Multimedia Card Interface (MCI) driver
Overview — Using MMC/SD cards with block drivers and filesystems
XIV. The Yaffs filesystem
50. What is Yaffs?
51. Getting started with Yaffs
51.1. Licensing considerations
51.2. Installation
51.2.1. Installation via the eCos Configuration Tool
51.2.2. Installing from the command-line
51.3. Configuration and Building
51.3.1. Package dependencies
51.3.2. Configuration options
51.4. Using Yaffs
51.4.1. Mounting a filesystem
51.4.2. Data flushing
51.4.3. Checkpointing
51.4.4. Limitations
51.5. Memory requirements
51.5.1. Worked example
51.6. Testing
52. Using Yaffs with RedBoot
52.1. Memory considerations under RedBoot
XV. eCos NAND I/O
53. eCos NAND Flash Library
53.1. Description
53.1.1. Structure of the library
53.1.2. Device support
53.2. Danger, Will Robinson! Danger!
53.3. Differences between NAND and NOR flash
53.4. Preparing for deployment
54. Using the NAND library
54.1. Configuring the NAND library
54.2. The NAND Application API
54.2.1. Device initialisation and lookup
54.2.2. NAND device addressing
54.2.3. Manipulating the NAND array
54.2.4. Ancillary NAND functions
55. Writing NAND device drivers
55.1. Planning a port
55.1.1. Driver structure and layout
55.1.2. Chip partitions
55.1.3. Locking against concurrent access
55.1.4. Required CDL declarations
55.2. High-level (chip) functions
55.2.1. Device initialisation
55.2.2. Reading, writing and erasing data
55.2.3. Searching for factory-bad blocks
55.2.4. Declaring the function set
55.3. Low-level (board) functions
55.3.1. Talking to the chip
55.3.2. Setting up the chip partition table
55.3.3. Putting it all together…
55.4. ECC implementation
55.4.1. The ECC interface
56. Tests and utilities
56.1. Unit and functional tests
56.2. Ancillary NAND utilities
57. eCos configuration store
57.1. Overview
57.1.1. Design limitations
57.2. Using the config store
57.2.1. Locking
57.2.2. Configuration
57.2.3. Storage details
57.2.4. Padding
57.2.5. Scanning
XVI. NAND Device Drivers
58. Samsung K9 family NAND chips
58.1. Overview
58.2. Using this driver in a board port
58.2.1. Memory usage
58.2.2. Low-level functions required from the platform HAL
59. ST Microelectronics NANDxxxx3a chips
59.1. Overview
59.1.1. Using this driver in a board port
59.1.2. Memory usage note
59.1.3. Low-level functions required from the platform HAL
60. Micron MT29F family NAND chips
60.1. Overview
60.2. Using this driver in a board port
60.2.1. Memory usage
60.2.2. Low-level functions required from the platform HAL
Synthetic Target NAND Flash Device — Emulate NAND flash hardware in the synthetic target
XVII. Journalling Flash File System v2 (JFFS2)
Journalling Flash File System v2 overview — Provides Journalling file system for Flash
Using JFFS2 — Description of how to use JFFS2
XVIII. NOR Flash Support
61. The eCos NOR FLASH Library
61.1. Notes on using the NOR FLASH library
61.2. Danger, Will Robinson! Danger!
62. The Version 2 eCos FLASH API
62.1. FLASH user API
62.1.1. Initializing the FLASH library
62.1.2. Retrieving information about FLASH devices
62.1.3. Reading from FLASH
62.1.4. Erasing areas of FLASH
62.1.5. Programming the FLASH
62.1.6. Locking and unlocking blocks
62.1.7. Locking FLASH mutexes
62.1.8. Configuring diagnostic output
62.1.9. Return values and errors
62.2. FLASH device API
62.2.1. The FLASH device Structure
63. The legacy Version 1 eCos FLASH API
63.1. FLASH user API
63.1.1. Initializing the FLASH library
63.1.2. Retrieving information about the FLASH
63.1.3. Reading from FLASH
63.1.4. Erasing areas of FLASH
63.1.5. Programming the FLASH
63.1.6. Locking and unlocking blocks
63.1.7. Return values and errors
63.1.8. Notes on using the FLASH library
63.2. FLASH device API
63.2.1. The flash_info structure
63.2.2. Initializing the device driver
63.2.3. Querying the FLASH
63.2.4. Erasing a block of FLASH
63.2.5. Programming a region of FLASH
63.2.6. Reading a region from FLASH
63.2.7. Locking and unlocking FLASH blocks
63.2.8. Mapping FLASH error codes to FLASH IO error codes
63.2.9. Determining if code is in FLASH
63.2.10. Implementation Notes
64. FLASH I/O devices
64.1. Overview and CDL Configuration
64.2. Using FLASH I/O devices
65. AMD AM29xxxxx Flash Device Driver
eCos Support for AMD AM29xxxxx Flash Devices and Compatibles — Overview
Instantiating an AM29xxxxx Device — including the driver in an eCos target
66. Atmel AT45xxxxxx DataFlash Device Driver
Overview — eCos Support for Atmel AT45xxxxxx DataFlash Devices and Compatibles
Instantiating a DataFlash Device — including the driver in an eCos target
67. Freescale MCFxxxx CFM Flash Device Driver
Freescale MCFxxxx CFM Flash Support — eCos Flash Driver for MCFxxxx CFM On-chip Flash
68. Intel Strata Flash Device Driver
Overview — eCos Support for Intel Strata Flash Devices and Compatibles
Instantiating a Strata Device — including the driver in an eCos target
Strata-Specific Functions — driver-specific functions
69. SST 39VFXXX Flash Device Driver
Overview — eCos Support for SST 39VFXXX Flash Devices and Compatibles
Instantiating an 39vfxxx Device — including the driver in an eCos target
XIX. ecoflash Flash Programming Utility
ecoflash Flash Programming Utility — Flash Programming Utility
XX. Flash Safe
Flash Safe — provide safe storage for data in flash memory
Flash Safe Programmer Interface — API Details
XXI. PCI Library
70. The eCos PCI Library
70.1. PCI Library
70.1.1. PCI Overview
70.1.2. Initializing the bus
70.1.3. Scanning for devices
70.1.4. Generic config information
70.1.5. Specific config information
70.1.6. Allocating memory
70.1.7. Interrupts
70.1.8. Activating a device
70.1.9. Links
70.2. PCI Library reference
70.2.1. PCI Library API
70.2.2. Definitions
70.2.3. Types and data structures
70.2.4. Functions
70.2.5. Resource allocation
70.2.6. PCI Library Hardware API
70.2.7. HAL PCI support
XXII. SPI Support
71. SPI Support
Overview — eCos Support for SPI, the Serial Peripheral Interface
SPI Interface — allow applications and other packages to access SPI devices
Porting to New Hardware — Adding SPI support to new hardware
72. Freescale MCFxxxx ColdFire QSPI Bus Driver
Freescale MCFxxxx Coldfire QSPI Bus Driver — eCos Support for the Freescale Coldfire QSPI Bus
73. Microchip (Atmel) USART-as-SPI Bus Driver
Microchip (Atmel) SAM E70/S70/V70/V71 USART-as-SPI Bus Driver — eCos Support for the Microchip (Atmel) USART-as-SPI Bus
XXIII. I²C Support
74. I²C Support
Overview — eCos Support for I²C, the Inter IC Bus
I²C Interface — allow applications and other packages to access I²C devices
Porting to New Hardware — Adding I²C support to new hardware
75. Freescale MCFxxxx ColdFire I2C Bus Driver
Freescale MCFxxxx Coldfire I2C Bus Driver — eCos Support for the Freescale Coldfire I2C Bus
XXIV. ADC Support
76. ADC Support
eCos Support for Analog/Digital Converters — Overview
ADC Device Drivers — ADC Device Drivers
77. STM32 ADC Driver
STM32 ADC Driver — ADC Driver
78. STR7XX ADC Driver
STR7XX ADC Driver — ADC Driver
79. TSC ADC Driver
TSC ADC Driver — ADC Driver
80. Atmel AFEC (ADC) Driver
Atmel AFEC ADC Driver — ADC Driver
XXV. Pulse Width Modulation (PWM) Support
81. PWM Support
Overview — eCos Support for PWM, the Inter IC Bus
XXVI. Framebuffer Support
82. Framebuffer Support
Overview — eCos Support for Framebuffer Devices
Framebuffer Parameters — determining framebuffer capabilities
Framebuffer Control Operations — managing a framebuffer
Framebuffer Colours — formats and palette management
Framebuffer Drawing Primitives — updating the display
Framebuffer Pixel Manipulation — iterating over the display
Writing a Framebuffer Device Driver — writing a new framebuffer device driver
83. CSB337/900 Framebuffer Device Driver
CSB337/900 Framebuffer Device Driver — eCos framebuffer support for a CSB337/900
84. i.MXxx Framebuffer Device Driver
i.MXxx Framebuffer Device Driver — eCos Support for the i.MXxx framebuffer
85. iPAQ Framebuffer Device Driver
iPAQ Framebuffer Device Driver — eCos Support for the iPAQ framebuffer
86. PC VGA Framebuffer Device Driver
PC VGA Framebuffer Device Driver — eCos Support for PC VGA Cards
87. Synthetic Target Framebuffer Device
Synthetic Target Framebuffer Device — Emulate framebuffer hardware in the synthetic target
XXVII. CAN Support
88. CAN Support
Overview — eCos Support for CAN, the Controller Area Network
CAN Interface — allow applications and other packages to access CAN devices
Configuration — CAN subsystem configuration
Device Drivers — Writing new CAN device drivers
89. FlexCAN CAN Driver
FlexCAN CAN Driver — CAN Driver
90. MSCAN CAN Driver
MSCAN CAN Driver — CAN Driver
91. LPC2XXXX CAN Driver
LPC2XXX CAN Driver — CAN Driver
92. Atmel SAM CAN Driver
Atmel SAM CAN Driver — CAN Driver
93. Atmel MCAN CAN Driver
Atmel MCAN CAN Driver — CAN Driver
94. SJA1000 CAN Driver
SJA1000 CAN Driver — CAN Driver
95. BXCAN CAN Driver
BXCAN CAN Driver — CAN Driver
96. STR7XX CAN Driver
STR7XX CAN Driver — CAN Driver
XXVIII. Coherent Connection Bus
97. Coherent Connection Bus overview
97.1. Introduction
98. Configuration
98.1. Configuration Overview
98.1.1. Quick Start
98.1.2. Configuring the CCB memory footprint
98.1.3. Configuring the CCB control thread
98.1.4. Configuring the CCB master server
99. API Overview
99.1. Application support API
cyg_ccb_build_message — Construct message
cyg_ccb_check_response — Check response
99.2. I/O Device Driver Interface
100. Internals
101. Debug and Test
101.1. Debugging
101.1.1. Asserts
101.1.2. Diagnostic Output
101.2. Testing
101.2.1. ccb_ut
101.2.2. ccb_master
XXIX. STM32 Coherent Connection Bus Driver
102. STM32 Coherent Connection Bus Driver overview
102.1. Introduction
103. Configuration
103.1. Configuration Overview
103.1.1. Configuring the STM32 CCB driver
104. Debug and Test
104.1. Debugging
104.1.1. Asserts
104.1.2. Diagnostic Output
XXX. MODBUS
105. MODBUS overview
105.1. Introduction
106. Configuration
106.1. Configuration Overview
106.1.1. Quick Start
106.1.2. Configuring the MODBUS server
106.1.3. Configuring the ModbusTCP Server
107. API Overview
107.1. Application API
cyg_modbus_server_start — Start MODBUS server
cyg_modbus_server_stop — Stop MODBUS server
107.2. Backend API
cyg_modbus_response — Provide MODBUS response
cyg_modbus_raw_pdu — Access raw PDU buffer
cyg_modbus_response_nocopy — Provide MODBUS response (no copy)
cyg_modbus_response_exception — Provide MODBUS exception response
cyg_modbus_get_uid — Read “Unit ID” of request
107.3. ModbusTCP specific API
cyg_modbus_acm_add — Add client address to Access Control Mechanism pool
cyg_modbus_acm_remove — Remove ACM registered client address
107.4. MODBUS Exceptions
107.5. Backend Interface
cyg_mbop_read_discrete_inputs — Read discrete inputs
cyg_mbop_read_coils — Read coils
cyg_mbop_write_single_coil — Write single coil
cyg_mbop_write_multiple_coils — Write multiple coils
cyg_mbop_read_input_regs — Read input registers
cyg_mbop_read_holding_regs — Read holding registers
cyg_mbop_write_single_reg — Write single holding register
cyg_mbop_write_multiple_regs — Write multiple holding registers
cyg_mbop_rw_multiple_regs — Read and/or write multiple holding registers
cyg_mbop_mask_reg — Mask holding register
cyg_mbop_read_fifo_queue — Read FIFO contents
cyg_mbop_read_file_record — Read file records
cyg_mbop_write_file_record — Write file records
cyg_mbop_read_id — Return specific extended device ID
cyg_mbop_canopen — Perform CANOPEN operation
107.6. Example backend
108. Internals
109. Debug and Test
109.1. Debugging
109.1.1. Asserts
109.1.2. Diagnostic Output
109.2. Testing
109.2.1. modbus_ut
109.2.2. modbus_server
XXXI. Direct Memory Access Controller (DMAC) Device Drivers
110. Atmel DMA Controller (DMAC)
Atmel DMAC Driver — eCos Support for the Atmel DMA Controller
111. Atmel DMA Controller (XDMAC)
Atmel XDMAC Driver — eCos Support for the Atmel XDMAC Controller
XXXII. RPMSG Support
Overview — eCosPro Support for RPMSG
RPMSG Application API — Functions
XXXIII. Serial Device Drivers
112. Freescale MCFxxxx Serial Driver
MCFxxxx Serial Driver — eCos Support for the MCFxxxx On-chip Serial Devices
113. NXP PNX8310 Serial Driver
PNX8310 Serial Driver — eCos Support for the PNX8310 On-chip UARTs
114. Nios II Avalon UART Serial Driver
Nios II Avalon UART Serial Driver — eCos Serial Driver for Nios II Avalon UARTs
XXXIV. USB Support
Overview — eCosPro Support for USB
Configuration — USB System Configuration
Transfer Objects — Structure and Interface
Host Device Objects — Structure and Interface
Class Drivers — Structure and Interface
Host Controller Drivers — Structure and Interface
Target Objects — Structure and Interface
Peripheral Controller Drivers — Structure and Interface
XXXV. USB Serial Support
115. USB Serial Support
Overview — eCosPro Support for USB Serial devices
116. USB Target CDC ACM Protocol Driver
Overview — eCosPro Support for CDC ACM Protocol in Peripheral Mode
117. USB Host CDC ACM Protocol Driver
Overview — eCosPro Support for CDC ACM Protocol in Host Mode
118. USB Host FTDI Protocol Driver
Overview — eCosPro Support for FTDI Protocol in Host Mode
XXXVI. VirtIO Support
Overview — eCosPro Support for VirtIO
Virtio API — Functions
XXXVII. Wallclock Device Drivers
119. Wallclock Support
Wallclock support — eCos Support Wallclock devices
C API — Details
120. Dallas DS1302 Wallclock Device Driver
Dallas DS1302 Wallclock Device Driver — eCos Support for the Dallas DS1302 Real-Time Clock
121. Dallas DS1306 Wallclock Device Driver
Dallas DS1306 Wallclock Device Driver — eCos Support for the Dallas DS1306 Real-Time Clock
122. Dallas DS1307 Wallclock Device Driver
Dallas DS1307 Wallclock Device Driver — eCos Support for the Dallas DS1307 Serial Real-Time Clock
123. Dallas DS1390 Wallclock Device Driver
Dallas DS1390 Wallclock Device Driver — eCos Support for the Dallas DS1390 Serial Real-Time Clock
124. Freescale MCFxxxx On-Chip Wallclock Device Driver
Freescale MCFxxxx On-Chip Wallclock Device Driver — eCos Support for the Freescale MCFxxxx On-Chip Real-Time Clock
125. Intersil ISL1208 Wallclock Device Driver
Intersil ISL1208 Wallclock Device Driver — eCos Support for the Intersil ISL1208 Real-Time Clock
126. Intersil ISL12028 Wallclock Device Driver
Intersil ISL12028 Wallclock Device Driver — eCos Support for the Intersil ISL12028 Real-Time Clock
127. ST M41TXX Wallclock Device Driver
ST M41TXX Wallclock Device Driver — eCos Support for the ST M41TXX Serial Real-Time Clock
128. ST M48T Wallclock Device Driver
ST M48T Wallclock Device Driver — eCos Support for the ST M48T TimeKeeper SRAM chips and compatibles
XXXVIII. Watchdog Drivers
129. Freescale Kinetis Watchdog Driver
Kinetis Watchdog Driver — eCos Support for the Kinetis on-chip Watchdog timer device (WDOG)
130. Freescale MCFxxxx SCM Watchdog Driver
MCFxxxx SCM Watchdog Driver — eCos Support for the MCFxxxx SCM On-chip Watchdog Device
131. Freescale MCFxxxx Watchdog Driver
MCFxxxx Watchdog Driver — eCos Support for the MCFxxxx On-chip Watchdog Device
132. Freescale MCF5272 Watchdog Driver
MCF5272 Watchdog Driver — eCos Support for the MCF5272 On-chip Watchdog Device
133. Freescale MCF5282 Watchdog Driver
MCF5282 Watchdog Driver — eCos Support for the MCF5282 On-chip Watchdog Device
134. Freescale MCF532x Watchdog Driver
MCF532x Watchdog Driver — eCos Support for the MCF532x On-chip Watchdog Device
135. Nios II Avalon Timer Watchdog Driver
Nios II Avalon Timer Watchdog Driver — eCos Support for a Nios II Avalon Timer-based Watchdog Device
136. NXP PNX8310 Watchdog Driver
PNX8310 Watchdog Driver — eCos Support for the PNX8310 On-chip Watchdog Device
137. NXP PNX8330 Watchdog Driver
PNX8330 Watchdog Driver — eCos Support for the PNX8330 On-chip Watchdog Device
138. Synthetic Target Watchdog Device
Synthetic Target Watchdog Device — Emulate watchdog hardware in the synthetic target
XXXIX. eCos POSIX compatibility layer
139. POSIX Standard Support
139.1. Process Primitives [POSIX Section 3]
139.1.1. Functions Implemented
139.1.2. Functions Omitted
139.1.3. Notes
139.2. Process Environment [POSIX Section 4]
139.2.1. Functions Implemented
139.2.2. Functions Omitted
139.2.3. Notes
139.3. Files and Directories [POSIX Section 5]
139.3.1. Functions Implemented
139.3.2. Functions Omitted
139.3.3. Notes
139.4. Input and Output [POSIX Section 6]
139.4.1. Functions Implemented
139.4.2. Functions Omitted
139.4.3. Notes
139.5. Device and Class Specific Functions [POSIX Section 7]
139.5.1. Functions Implemented
139.5.2. Functions Omitted
139.5.3. Notes
139.6. C Language Services [POSIX Section 8]
139.6.1. Functions Implemented
139.6.2. Functions Omitted
139.6.3. Notes
139.7. System Databases [POSIX Section 9]
139.7.1. Functions Implemented
139.7.2. Functions Omitted
139.7.3. Notes
139.8. Data Interchange Format [POSIX Section 10]
139.9. Synchronization [POSIX Section 11]
139.9.1. Functions Implemented
139.9.2. Functions Omitted
139.9.3. Notes
139.10. Memory Management [POSIX Section 12]
139.10.1. Functions Implemented
139.10.2. Functions Omitted
139.10.3. Notes
139.11. Execution Scheduling [POSIX Section 13]
139.11.1. Functions Implemented
139.11.2. Functions Omitted
139.11.3. Notes
139.12. Clocks and Timers [POSIX Section 14]
139.12.1. Functions Implemented
139.12.2. Functions Omitted
139.12.3. Notes
139.13. Message Passing [POSIX Section 15]
139.13.1. Functions Implemented
139.13.2. Functions Omitted
139.13.3. Notes
139.14. Thread Management [POSIX Section 16]
139.14.1. Functions Implemented
139.14.2. Functions Omitted
139.14.3. Notes
139.15. Thread-Specific Data [POSIX Section 17]
139.15.1. Functions Implemented
139.15.2. Functions Omitted
139.15.3. Notes
139.16. Thread Cancellation [POSIX Section 18]
139.16.1. Functions Implemented
139.16.2. Functions Omitted
139.16.3. Notes
139.17. Non-POSIX Functions
139.17.1. General I/O Functions
139.17.2. Socket Functions
139.17.3. Notes
References and Bibliography
XL. µITRON
140. µITRON API
140.1. Introduction to µITRON
140.2. µITRON and eCos
140.3. Task Management Functions
140.3.1. Error checking
140.4. Task-Dependent Synchronization Functions
140.4.1. Error checking
140.5. Synchronization and Communication Functions
140.5.1. Error checking
140.6. Extended Synchronization and Communication Functions
140.7. Interrupt management functions
140.7.1. Error checking
140.8. Memory pool Management Functions
140.8.1. Error checking
140.9. Time Management Functions
140.9.1. Error checking
140.10. System Management Functions
140.10.1. Error checking
140.11. Network Support Functions
140.12. µITRON Configuration FAQ
XLI. TCP/IP Stack Support for eCos
141. Ethernet Driver Design
142. Sample Code
143. Configuring IP Addresses
144. Tests and Demonstrations
144.1. Loopback tests
144.2. Building the Network Tests
144.3. Standalone Tests
144.4. Performance Test
144.5. Interactive Tests
144.6. Maintenance Tools
145. Support Features
145.1. TFTP
145.2. DHCP
146. TCP/IP Library Reference
146.1. getdomainname
146.2. gethostname
146.3. byteorder
146.4. ethers
146.5. getaddrinfo
146.6. gethostbyname
146.7. getifaddrs
146.8. getnameinfo
146.9. getnetent
146.10. getprotoent
146.11. getrrsetbyname
146.12. getservent
146.13. if_nametoindex
146.14. inet
146.15. inet6_option_space
146.16. inet6_rthdr_space
146.17. inet_net
146.18. ipx
146.19. iso_addr
146.20. link_addr
146.21. net_addrcmp
146.22. ns
146.23. resolver
146.24. accept
146.25. bind
146.26. connect
146.27. getpeername
146.28. getsockname
146.29. getsockopt
146.30. ioctl
146.31. listen
146.32. poll
146.33. select
146.34. send
146.35. shutdown
146.36. socket
XLII. FreeBSD TCP/IP Stack port for eCos
147. Networking Stack Features
148. Freebsd TCP/IP stack port
148.1. Targets
148.2. Building the Network Stack
149. APIs
149.1. Standard networking
XLIII. eCos PPP User Guide
150. Features
151. Using PPP
152. PPP Interface
cyg_ppp_options_init() — Initialize PPP link options
cyg_ppp_up() — Bring PPP connection up
cyg_ppp_down() — Bring PPP connection down
cyg_ppp_wait_up() — Wait for PPP connection to come up
cyg_ppp_wait_down() — Wait for PPP connection to terminate
cyg_ppp_chat() — Execute chat script
153. Installing and Configuring PPP
153.1. Including PPP in a Configuration
153.2. Configuring PPP
154. CHAT Scripts
154.1. Chat Script
154.2. ABORT Strings
154.3. TIMEOUT
154.4. Sending EOT
154.5. Escape Sequences
155. PPP Enabled Device Drivers
156. Testing
156.1. Test Programs
156.2. Test Script
XLIV. lwIP - the lightweight IP stack for eCosPro
157. lwIP overview
157.1. Introduction
157.2. lwIP sources and ports
157.3. External documentation
157.4. Licensing
158. Basic concepts
158.1. Structure
158.2. Application Programming Interfaces (APIs)
158.3. Protocol implementations
158.4. Packet data buffers
158.5. Configurability
158.6. Limitations
158.7. Quick Start
159. Port
159.1. Port status
159.2. Implementation
159.2.1. System Configuration
159.2.2. System Source
159.2.3. Threads
159.3. Extensions
159.4. eCos API reference
cyg_lwip_init — Initialise lwIP network stack
cyg_lwip_netif_print_info — Output network interface address information
cyg_net_eth_phy_ctx_acquire — Allocate PHY event context
cyg_net_eth_phy_dsr — Notify lwIP stack of PHY event
cyg_lwip_tick_to_msec — Convert eCos kernel clock ticks to millisecond count
cyg_lwip_msec_to_tick — Convert millisecond count to eCos kernel clock ticks
cyg_lwip_statistics — Statistics output
160. Configuration
160.1. Configuration Overview
160.2. Configuring the lwIP stack
160.3. Performance and Footprint Tuning
160.3.1. Performance
160.3.2. Optimizations
160.3.3. Memory Footprint
161. Sequential API
161.1. Overview
161.2. Comparison with BSD sockets
161.2.1. BSD API Restrictions
161.3. Netbufs
161.4. TCP/IP thread
161.5. Usage
161.5.1. API declarations
161.5.2. Types
161.6. API reference
netbuf_new() — Allocate a netbuf structure
netbuf_delete() — Deallocate a netbuf structure
netbuf_alloc() — Allocate space in a netbuf
netbuf_free() — Deallocate buffer memory associated with a netbuf
netbuf_ref() — Associate a data pointer with a netbuf
netbuf_len() — Obtain the total length of a netbuf
netbuf_data() — Obtain a pointer to netbuf data
netbuf_next() — Traverse internal fragments in a netbuf
netbuf_first() — Reset fragment pointer to start of netbuf
netbuf_copy() — Copy all netbuf data to memory pointer
netbuf_copy_partial() — Copy some netbuf data to memory pointer
netbuf_chain() — Chain two netbufs together
netbuf_fromaddr() — Obtain the sender's IPv4 address for a netbuf
netbuf_fromaddr_ip6() — Obtain the sender's IPv6 address for a netbuf
netbuf_fromport() — Obtain the sender's port number for a netbuf
netconn_new() — Create a new connection structure
netconn_new_with_callback() — Create a new connection structure with a callback
netconn_new_with_proto_and_callback() — Create a new connection structure with a callback for a specific protocol
netconn_delete() — Deallocate a netconn
netconn_type() — Obtain the type of netconn
netconn_peer() — Obtain the remote host IP address/port of a netconn
netconn_addr() — Obtain the local host IPv4 address/port of a netconn
netconn_bind() — Set local IP address/port of a netconn
netconn_bind_ip6() — Set local IPv6 address/port of a netconn
netconn_connect() — Connect netconn to remote peer
netconn_connect_ip6() — Connect netconn to remote peer
netconn_disconnect() — Disconnect UDP connection
netconn_listen() — Make a listening TCP netconn
netconn_accept() — Wait for incoming connections
netconn_recv() — Wait for data
netconn_recv_tcp_pbuf() — Wait for data
netconn_recved() — Update receive window
netconn_write() — Send data on TCP connection
netconn_send() — Send data on UDP connection
netconn_close() — Close a connection
netconn_shutdown() — Shutdown a connection
netconn_set_noautorecved() — Set the connection no-auto-recved state
netconn_get_noautorecved() — Get the connection no-auto-recved state
netconn_err() — Obtain connection error status
162. Raw API
162.1. Overview
162.2. Usage
162.3. Callbacks
tcp_arg() — Set the application connection state
162.4. TCP connection setup
tcp_new() — Create a new TCP PCB
tcp_bind() — Bind PCB to local IP address and port
tcp_listen() — Make PCB listen for incoming connections
tcp_accept() — Set callback used for new incoming connections
tcp_connect() — Open connection to remote host
162.5. Sending TCP data
tcp_write() — Enqueue data for transmission
tcp_sent() — Set callback for successful transmission
162.6. Receiving TCP data
tcp_recv() — Set callback for incoming data
tcp_recved() — Indicate receipt of data
162.7. Application polling
tcp_poll() — Set application poll callback
162.8. Closing connections, aborting connections and errors
tcp_close() — Close the connection
tcp_abort() — Abort the connection
tcp_err() — Set callback for errors
162.9. Lower layer TCP interface
162.10. UDP interface
udp_new() — Create a new UDP pcb
udp_remove() — Remove a UDP pcb
udp_bind() — Bind PCB to local IP address and port
udp_connect() — Set remote UDP peer
udp_disconnect() — Set remote UDP peer
udp_send() — Send UDP packet
udp_recv() — Set callback for incoming UDP data
162.11. System initialization
162.11.1. Initialization detail
163. Debug and Test
163.1. Debugging
163.1.1. Asserts
163.1.2. Memory Allocations
163.1.3. Statistics
163.1.4. GDB/RedBoot
163.1.5. Host Tools
163.2. Testing
163.2.1. lwipsnmp
163.2.2. lwipsntp
163.2.3. lwiperf
163.2.4. unitwrap
163.2.5. socket
163.2.6. tcpecho
163.2.7. udpecho
163.2.8. frag
163.2.9. nc_test_slave
163.2.10. httpd
163.2.11. httpd2
163.2.12. lookup
163.2.13. sys_timeout
163.2.14. lwiphttpd
XLV. Ethernet Device Support
164. Writing Ethernet Device Drivers
164.1. Generic Ethernet API
164.2. Review of the functions
164.2.1. Init function
164.2.2. Start function
164.2.3. Stop function
164.2.4. Control function
164.2.5. Can-send function
164.2.6. Send function
164.2.7. Deliver function
164.2.8. Receive function
164.2.9. Poll function
164.2.10. Interrupt-vector function
164.3. Upper Layer Functions
164.3.1. Callback Init function
164.3.2. Callback Tx-Done function
164.3.3. Callback Receive function
164.4. Calling graph for Transmission and Reception
164.4.1. Transmission
164.4.2. Receive
165. lwIP Direct Ethernet Device Driver
165.1. Introduction
165.2. API reference
165.3. Multiple direct drivers
166. CDC-EEM Target USB driver
166.1. Introduction
166.2. API
166.3. Configuration
166.3.1. Configuration Overview
166.4. Debug and Test
166.4.1. Debugging
167. RNDIS Target USB driver
167.1. Introduction
167.2. API
167.3. Configuration
167.3.1. Configuration Overview
167.4. Debug and Test
167.4.1. Debugging
168. Ethernet PHY Device Support
168.1. Ethernet PHY Device API
169. Synopsys DesignWare Ethernet GMAC Driver
Synopsys DesignWare Ethernet GMAC Driver — eCos Support for Synopsys DesignWare Ethernet GMAC Devices
170. Freescale ColdFire Ethernet Driver
Freescale ColdFire Ethernet Driver — eCos Support for Freescale ColdFire On-chip Ethernet Devices
171. Nios II Triple Speed Ethernet Driver
Nios II Triple Speed Ethernet Driver — eCos Support for Nios II Triple-Speed Ethernet Devices
172. SMSC LAN9118 Ethernet Driver
SMSC LAN9118 Ethernet Driver — eCos Support for SMSC LAN9118 Ethernet Devices
173. Synthetic Target Ethernet Driver
Synthetic Target Ethernet Driver — Allow synthetic target applications to perform ethernet I/O
XLVI. DNS for eCos and RedBoot
174. DNS
174.1. DNS API
174.2. DNS Client Testing
XLVII. eCosPro-SecureSockets
175. OpenSSL eCos Support
175.1. Introduction
175.1.1. Licensing, Copyrights and Patents
175.2. Configuration
175.2.1. Full Configuration
175.2.2. Default Configuration
175.2.3. Kernel Configuration
175.2.4. Serial Line Support
175.2.5. File System Dependencies
175.2.6. Configuring OpenSSL
175.3. openssl Command Tool
175.4. Thread Safety
175.5. eCos Customization
175.5.1. Random Number Support
175.5.2. BIO_diag
175.6. Tests
175.7. Limitations
176. OpenSSL Manual
176.1. openssl Command Line Tool
openssl — OpenSSL command line tool
asn1parse — ASN.1 parsing tool
ca — sample minimal CA application
ciphers — SSL cipher display and cipher list tool.
cms — CMS utility
crl — CRL utility
crl2pkcs7 — Create a PKCS#7 structure from a CRL and certificates.
dgst — message digests
dhparam — DH parameter manipulation and generation
dsa — DSA key processing
dsaparam — DSA parameter manipulation and generation
ec — EC key processing
ecparam — EC parameter manipulation and generation
enc — symmetric cipher routines
errstr — lookup error codes
gendsa — generate a DSA private key from a set of parameters
genpkey — generate a private key
genrsa — generate an RSA private key
nseq — create or examine a netscape certificate sequence
ocsp — Online Certificate Status Protocol utility
passwd — compute password hashes
pkcs12 — PKCS#12 file utility
pkcs7 — PKCS#7 utility
pkcs8 — PKCS#8 format private key conversion tool
pkey — public or private key processing tool
pkeyparam — public key algorithm parameter processing tool
pkeyutl — public key algorithm utility
rand — generate pseudo-random bytes
req — PKCS#10 certificate request and certificate generating utility.
rsa — RSA key processing tool
rsautl — RSA utility
s_client — SSL/TLS client program
s_server — SSL/TLS server program
s_time — SSL/TLS performance timing program
sess_id — SSL/TLS session handling utility
smime — S/MIME utility
speed — test library performance
spkac — SPKAC printing and generating utility
ts — Time Stamping Authority tool (client/server)
verify — Utility to verify certificates.
version — print OpenSSL version information
x509 — Certificate display and signing utility
config — OpenSSL CONF library configuration files
x509v3_config — X509 V3 certificate extension configuration format
176.2. Cryptographic functions
crypto — OpenSSL cryptographic library
ASN1_generate_nconf — ASN1 generation functions
ASN1_OBJECT_new — object allocation functions
ASN1_STRING_length — ASN1_STRING utility functions
ASN1_STRING_new — ASN1_STRING allocation functions
ASN1_STRING_print_ex — ASN1_STRING output routines.
bio — I/O abstraction
BIO_ctrl — BIO control operations
BIO_f_base64 — base64 BIO filter
BIO_f_buffer — buffering BIO
BIO_f_cipher — cipher BIO filter
BIO_find_type — BIO chain traversal
BIO_f_md — message digest BIO filter
BIO_f_null — null filter
BIO_f_ssl — SSL BIO
BIO_new_CMS — CMS streaming filter BIO
BIO_new — BIO allocation and freeing functions
BIO_push — add and remove BIOs from a chain.
BIO_read — BIO I/O functions
BIO_s_accept — accept BIO
BIO_s_bio — BIO pair BIO
BIO_s_connect — connect BIO
BIO_set_callback — BIO callback functions
BIO_s_fd — file descriptor BIO
BIO_s_file — FILE bio
BIO_should_retry — BIO retry functions
BIO_s_mem — memory BIO
BIO_s_null — null data sink
BIO_s_socket — socket BIO
blowfish — Blowfish encryption
bn — multiprecision integer arithmetics
bn_internal — BIGNUM library internal functions
BN_add — arithmetic operations on BIGNUMs
BN_add_word — arithmetic functions on BIGNUMs with integers
BN_BLINDING_new — blinding related BIGNUM functions.
BN_bn2bin — format conversions
BN_cmp — BIGNUM comparison and test functions
BN_copy — copy BIGNUMs
BN_CTX_new — allocate and free BN_CTX structures
BN_CTX_start — use temporary BIGNUM variables
BN_generate_prime — generate primes and test for primality
BN_mod_inverse — compute inverse modulo n
BN_mod_mul_montgomery — Montgomery multiplication
BN_mod_mul_reciprocal — modular multiplication using reciprocal
BN_new — allocate and free BIGNUMs
BN_num_bytes — get BIGNUM size
BN_rand — generate pseudo-random number
BN_set_bit — bit operations on BIGNUMs
BN_swap — exchange BIGNUMs
BN_zero — BIGNUM assignment operations
buffer — simple character array structure, with some standard C library equivalents
CMS_add0_cert — CMS certificate and CRL utility functions
CMS_add1_recipient_cert — add recipients to a CMS enveloped data structure
CMS_compress — create a CMS CompressedData structure
CMS_decrypt — decrypt content from a CMS envelopedData structure
CMS_encrypt — create a CMS envelopedData structure
CMS_final — finalise a CMS_ContentInfo structure
CMS_get0_RecipientInfos — CMS envelopedData RecipientInfo routines
CMS_get0_SignerInfos — CMS signedData signer functions.
CMS_get0_type — get and set CMS content types and content
CMS_get1_ReceiptRequest — CMS signed receipt request functions.
CMS_add1_signer — add a signer to a CMS_ContentInfo signed data structure.
CMS_sign — create a CMS SignedData structure
CMS_sign_receipt — create a CMS signed receipt
CMS_uncompress — uncompress a CMS CompressedData structure
CMS_verify — verify a CMS SignedData structure
CMS_verify_receipt — verify a CMS signed receipt
CONF_modules_free — OpenSSL configuration cleanup functions
CONF_modules_load_file — OpenSSL configuration functions
CRYPTO_set_ex_data — internal application specific data functions
d2i_ASN1_OBJECT — ASN1 OBJECT IDENTIFIER functions
d2i_CMS_ContentInfo — CMS ContentInfo functions
d2i_DHparams — PKCS#3 DH parameter functions.
d2i_DSAPublicKey — DSA key encoding and parsing functions.
d2i_ECPrivateKey — Encode and decode functions for saving and reading EC_KEY structures
d2i_PKCS8PrivateKey — PKCS#8 format private key functions
d2i_PrivateKey — decode and encode functions for reading and saving EVP_PKEY structures.
d2i_RSAPublicKey — RSA public and private key encoding functions.
d2i_X509_ALGOR — AlgorithmIdentifier functions.
d2i_X509_CRL — PKCS#10 certificate request functions.
d2i_X509_NAME — X509_NAME encoding functions
d2i_X509 — X509 encode and decode functions
d2i_X509_REQ — PKCS#10 certificate request functions.
d2i_X509_SIG — DigestInfo functions.
des — DES encryption
des_modes — the variants of DES and other crypto algorithms of OpenSSL
dh — Diffie-Hellman key agreement
DH_generate_key — perform Diffie-Hellman key exchange
DH_generate_parameters — generate and check Diffie-Hellman parameters
DH_get_ex_new_index — add application specific data to DH structures
DH_new — allocate and free DH objects
DH_set_method — select DH method
DH_size — get Diffie-Hellman prime size
dsa — Digital Signature Algorithm
DSA_do_sign — raw DSA signature operations
DSA_dup_DH — create a DH structure out of DSA structure
DSA_generate_key — generate DSA key pair
DSA_generate_parameters — generate DSA parameters
DSA_get_ex_new_index — add application specific data to DSA structures
DSA_new — allocate and free DSA objects
DSA_set_method — select DSA method
DSA_SIG_new — allocate and free DSA signature objects
DSA_sign — DSA signatures
DSA_size — get DSA signature size
ecdsa — Elliptic Curve Digital Signature Algorithm
engine — ENGINE cryptographic module support
err — error codes
ERR_clear_error — clear the error queue
ERR_error_string — obtain human-readable error message
ERR_get_error — obtain error code and data
ERR_GET_LIB — get library, function and reason code
ERR_load_crypto_strings — load and free error strings
ERR_load_strings — load arbitrary error strings
ERR_print_errors — print error messages
ERR_put_error — record an error
ERR_remove_state — free a thread's error queue
ERR_set_mark — set marks and pop errors until mark
evp — high-level cryptographic functions
EVP_BytesToKey — password based encryption routine
EVP_DigestInit — EVP digest routines
EVP_DigestSignInit — EVP signing functions
EVP_DigestVerifyInit — EVP signature verification functions
EVP_EncodeInit — EVP base 64 encode/decode routines
EVP_EncryptInit — EVP cipher routines
EVP_OpenInit — EVP envelope decryption
EVP_PKEY_cmp — public key parameter and comparison functions
EVP_PKEY_CTX_ctrl — algorithm specific control operations
EVP_PKEY_CTX_new — public key algorithm context functions.
EVP_PKEY_decrypt — decrypt using a public key algorithm
EVP_PKEY_derive — derive public key algorithm shared secret.
EVP_PKEY_encrypt — encrypt using a public key algorithm
EVP_PKEY_get_default_digest — get default signature digest
EVP_PKEY_keygen — key and parameter generation functions
EVP_PKEY_new — private key allocation functions.
EVP_PKEY_print_private — public key algorithm printing routines.
EVP_PKEY_set1_RSA — EVP_PKEY assignment functions.
EVP_PKEY_sign — sign using a public key algorithm
EVP_PKEY_verify — signature verification using a public key algorithm
EVP_PKEY_verify_recover — recover signature using a public key algorithm
EVP_SealInit — EVP envelope encryption
EVP_SignInit — EVP signing functions
EVP_VerifyInit — EVP signature verification functions
hmac — HMAC message authentication code
i2d_CMS_bio_stream — output CMS_ContentInfo structure in BER format.
i2d_PKCS7_bio_stream — output PKCS7 structure in BER format.
lhash — dynamic hash table
lh_stats — LHASH statistics
md5 — MD2, MD4, and MD5 hash functions
mdc2 — MDC2 hash function
OBJ_nid2obj — ASN1 object utility functions
OpenSSL_add_all_algorithms — add algorithms to internal table
OPENSSL_Applink — glue between OpenSSL BIO and Win32 compiler run-time
OPENSSL_config — simple OpenSSL configuration functions
OPENSSL_ia32cap — finding the IA-32 processor capabilities
OPENSSL_load_builtin_modules — add standard configuration modules
OPENSSL_VERSION_NUMBER — get OpenSSL version number
pem — PEM routines
PEM_write_bio_CMS_stream — output CMS_ContentInfo structure in PEM format.
PEM_write_bio_PKCS7_stream — output PKCS7 structure in PEM format.
PKCS12_create — create a PKCS#12 structure
PKCS12_parse — parse a PKCS#12 structure
PKCS7_decrypt — decrypt content from a PKCS#7 envelopedData structure
PKCS7_encrypt — create a PKCS#7 envelopedData structure
PKCS7_sign_add_signer — add a signer PKCS7 signed data structure.
PKCS7_sign — create a PKCS#7 signedData structure
PKCS7_verify — verify a PKCS#7 signedData structure
rand — pseudo-random number generator
RAND_add — add entropy to the PRNG
RAND_bytes — generate random data
RAND_cleanup — erase the PRNG state
RAND_egd — query entropy gathering daemon
RAND_load_file — PRNG seed file
RAND_set_rand_method — select RAND method
rc4 — RC4 encryption
ripemd — RIPEMD-160 hash function
rsa — RSA public key cryptosystem
RSA_blinding_on — protect the RSA operation from timing attacks
RSA_check_key — validate private RSA keys
RSA_generate_key — generate RSA key pair
RSA_get_ex_new_index — add application specific data to RSA structures
RSA_new — allocate and free RSA objects
RSA_padding_add_PKCS1_type_1 — asymmetric encryption padding
RSA_print — print cryptographic parameters
RSA_private_encrypt — low level signature operations
RSA_public_encrypt — RSA public key cryptography
RSA_set_method — select RSA method
RSA_sign_ASN1_OCTET_STRING — RSA signatures
RSA_sign — RSA signatures
RSA_size — get RSA modulus size
sha — Secure Hash Algorithm
SMIME_read_CMS — parse S/MIME message.
SMIME_read_PKCS7 — parse S/MIME message.
SMIME_write_CMS — convert CMS structure to S/MIME format.
SMIME_write_PKCS7 — convert PKCS#7 structure to S/MIME format.
threads — OpenSSL thread support
ui_compat — Compatibility user interface functions
ui — New User Interface
x509 — X.509 certificate handling
X509_NAME_add_entry_by_txt — X509_NAME modification functions
X509_NAME_ENTRY_get_object — X509_NAME_ENTRY utility functions
X509_NAME_get_index_by_NID — X509_NAME lookup and enumeration functions
X509_NAME_print_ex — X509_NAME printing routines.
X509_new — X509 certificate ASN1 allocation functions
X509_STORE_CTX_get_error — get or set certificate verification status information
X509_STORE_CTX_get_ex_new_index — add application specific data to X509_STORE_CTX structures
X509_STORE_CTX_new — X509_STORE_CTX initialisation
X509_STORE_CTX_set_verify_cb — set verification callback
X509_STORE_set_verify_cb_func — set verification callback
X509_verify_cert — discover and verify X509 certificte chain
X509_VERIFY_PARAM_set_flags — X509 verification parameters
176.3. SSL Functions
ssl — OpenSSL SSL/TLS library
d2i_SSL_SESSION — convert SSL_SESSION object from/to ASN1 representation
SSL_accept — wait for a TLS/SSL client to initiate a TLS/SSL handshake
SSL_alert_type_string — get textual description of alert information
SSL_CIPHER_get_name — get SSL_CIPHER properties
SSL_clear — reset SSL object to allow another connection
SSL_COMP_add_compression_method — handle SSL/TLS integrated compression methods
SSL_connect — initiate the TLS/SSL handshake with an TLS/SSL server
SSL_CTX_add_extra_chain_cert — add or clear extra chain certificates
SSL_CTX_add_session — manipulate session cache
SSL_CTX_ctrl — internal handling functions for SSL_CTX and SSL objects
SSL_CTX_flush_sessions — remove expired sessions
SSL_CTX_free — free an allocated SSL_CTX object
SSL_CTX_get_ex_new_index — internal application specific data functions
SSL_CTX_get_verify_mode — get currently set verification parameters
SSL_CTX_load_verify_locations — set default locations for trusted CA certificates
SSL_CTX_new — create a new SSL_CTX object as framework for TLS/SSL enabled functions
SSL_CTX_sessions — access internal session cache
SSL_CTX_sess_number — obtain session cache statistics
SSL_CTX_sess_set_cache_size — manipulate session cache size
SSL_CTX_sess_set_get_cb — provide callback functions for server side external session caching
SSL_CTX_set_cert_store — manipulate X509 certificate verification storage
SSL_CTX_set_cert_verify_callback — set peer certificate verification procedure
SSL_CTX_set_cipher_list — choose list of available SSL_CIPHERs
SSL_CTX_set_client_CA_list — set list of CAs sent to the client when requesting a client certificate
SSL_CTX_set_client_cert_cb — handle client certificate callback function
SSL_CTX_set_default_passwd_cb — set passwd callback for encrypted PEM file handling
SSL_CTX_set_generate_session_id — manipulate generation of SSL session IDs (server only)
SSL_CTX_set_info_callback — handle information callback for SSL connections
SSL_CTX_set_max_cert_list — manipulate allowed for the peer's certificate chain
SSL_CTX_set_mode — manipulate SSL engine mode
SSL_CTX_set_msg_callback — install callback for observing protocol messages
SSL_CTX_set_options — manipulate SSL options
SSL_CTX_set_psk_client_callback — set PSK client callback
SSL_CTX_set_quiet_shutdown — manipulate shutdown behaviour
SSL_CTX_set_read_ahead — manage whether to read as many input bytes as possible
SSL_CTX_set_session_cache_mode — enable/disable session caching
SSL_CTX_set_session_id_context — set context within which session can be reused (server side only)
SSL_CTX_set_ssl_version — choose a new TLS/SSL method
SSL_CTX_set_timeout — manipulate timeout values for session caching
SSL_CTX_set_tlsext_status_cb — OCSP Certificate Status Request functions
SSL_CTX_set_tmp_dh_callback — handle DH keys for ephemeral key exchange
SSL_CTX_set_tmp_rsa_callback — handle RSA keys for ephemeral key exchange
SSL_CTX_set_verify — set peer certificate verification parameters
SSL_CTX_use_certificate — load certificate and key data
SSL_CTX_use_psk_identity_hint — set PSK identity hint to use
SSL_do_handshake — perform a TLS/SSL handshake
SSL_free — free an allocated SSL structure
SSL_get_ciphers — get list of available SSL_CIPHERs
SSL_get_client_CA_list — get list of client CAs
SSL_get_current_cipher — get SSL_CIPHER of a connection
SSL_get_default_timeout — get default session timeout value
SSL_get_error — obtain result code for TLS/SSL I/O operation
SSL_get_ex_data_X509_STORE_CTX_idx — get ex_data index to access SSL structure from X509_STORE_CTX
SSL_get_ex_new_index — internal application specific data functions
SSL_get_fd — get file descriptor linked to an SSL object
SSL_get_peer_cert_chain — get the X509 certificate chain of the peer
SSL_get_peer_certificate — get the X509 certificate of the peer
SSL_get_psk_identity — get PSK client identity and hint
SSL_get_rbio — get BIO linked to an SSL object
SSL_get_session — retrieve TLS/SSL session data
SSL_get_SSL_CTX — get the SSL_CTX from which an SSL is created
SSL_get_verify_result — get result of peer certificate verification
SSL_get_version — get the protocol version of a connection.
SSL_library_init — initialize SSL library by registering algorithms
SSL_load_client_CA_file — load certificate names from file
SSL_new — create a new SSL structure for a connection
SSL_pending — obtain number of readable bytes buffered in an SSL object
SSL_read — read bytes from a TLS/SSL connection.
SSL_rstate_string — get textual description of state of an SSL object during read operation
SSL_SESSION_free — free an allocated SSL_SESSION structure
SSL_SESSION_get_ex_new_index — internal application specific data functions
SSL_SESSION_get_time — retrieve and manipulate session time and timeout settings
SSL_session_reused — query whether a reused session was negotiated during handshake
SSL_set_bio — connect the SSL object with a BIO
SSL_set_connect_state — prepare SSL object to work in client or server mode
SSL_set_fd — connect the SSL object with a file descriptor
SSL_set_session — set a TLS/SSL session to be used during TLS/SSL connect
SSL_set_shutdown — manipulate shutdown state of an SSL connection
SSL_set_verify_result — override result of peer certificate verification
SSL_shutdown — shut down a TLS/SSL connection
SSL_state_string — get textual description of state of an SSL object
SSL_want — obtain state information TLS/SSL I/O operation
SSL_write — write bytes to a TLS/SSL connection.
XLVIII. Mbed TLS
177. Mbed TLS overview
177.1. Introduction
178. Configuration
178.1. Configuration Overview
178.1.1. Quick Start
179. eCos port
179.1. Overview
179.2. Entropy
180. Test Programs
180.1. Test Programs
XLIX. eCosPro-SecureShell
eCos Dropbear Port — provide ssh support
Dropbear Ssh Daemon — Ssh daemon support
Dropbear Ssh Client — Ssh client support
Dropbear Scp Client — scp client support
L. FTP Client for eCos TCP/IP Stack
181. FTP Client API and Configuration
181.1. FTP Client API
181.1.1. Support API
181.1.2. ftp_delete
181.1.3. ftpclient_printf
181.1.4. Basic FTP Client API
181.1.5. ftp_get
181.1.6. ftp_put
181.1.7. ftp_get_var
181.1.8. ftp_put_var
181.1.9. Extended FTP Client API
181.1.10. ftp_get_extended
181.1.11. ftp_put_extended
181.1.12. ftp_get_extended_var
181.1.13. ftp_put_extended_var
181.2. FTP Client Configuration
LI. FTP Server Support
Overview — Overview
FTP Server API — describe FTP server API, callback and configuration
Test Programs — describe the test programs and their host-side support
LII. Embedded HTTP Server
182. Embedded HTTP Server
182.1. Introduction
182.2. Server Organization
182.3. Server Configuration
182.4. Support Functions and Macros
182.4.1. HTTP Support
182.4.2. General HTML Support
182.4.3. Table Support
182.4.4. Forms Support
182.4.5. Predefined Handlers
182.5. System Monitor
LIII. SNMP
183. SNMP for eCos
183.1. Version
183.2. SNMP packages in the eCos source repository
183.3. MIBs supported
183.4. Changes to eCos sources
183.5. Starting the SNMP Agent
183.6. Configuring eCos
183.6.1. Version usage (v1, v2 or v3)
183.6.2. Traps
183.6.3. snmpd.conf file
183.7. Test cases
183.8. SNMP clients and package use
183.9. Unimplemented features
183.10. MIB Compiler
183.11. snmpd.conf
LIV. mDNS Responder and DNS-SD
184. mDNS overview
184.1. Introduction
185. API
185.1. API
cyg_mdns_init — Initialise mDNS Responder
cyg_mdns_terminate — Terminate mDNS Responder
cyg_mdns_enable — Enable mDNS
cyg_mdns_disable — Disable mDNS
cyg_mdns_service_register — Register set of services
cyg_mdns_service_unregister — Remove registered services
cyg_mdns_sethostname — Set base hostname
cyg_mdns_hostname_callback_register — Register hostname generation callback
cyg_mdns_gethostname — Get current hostname value
cyg_mdns_setservicelabel — Set service label
cyg_mdns_getservicelabel — Get current service label value
cyg_mdns_servicelabel_callback_register — Register service label generation callback
cyg_mdns_hinfo_register — Register HINFO record data
cyg_mdns_discovery_callback_register — Register DNS-SD response callback
cyg_mdns_discovery_callback_unregister — Unregister DNS-SD response callback
cyg_mdns_discovery_callback_flags — Read/Modify DNS-SD response callback control flags
cyg_mdns_discovery_query — Issue a DNS-SD query
185.2. Example Responder
185.3. Example DNS-SD Queries
186. Support API
186.1. Support API
cyg_mdns_strlen — Calculate uncompressed length of (possibly compressed) string
cyg_mdns_name_uncompress — Uncompress encoded string
cyg_mdns_strlen_vector — Calculate uncompressed length of string vector
cyg_mdns_strlen_uncompressed — Length of uncompressed encoded string
cyg_mdns_name — Convert encoded name into dot-notation
cyg_mdns_build_txt_vector — Build vector of pointers to individual TXT Record fields
cyg_mdns_build_strtab_vector — Build vector of pointers to individual encoded string fields
cyg_mdns_strcasecmp_strtab — Compare two encoded string-tables ignoring case
187. Configuration
187.1. Configuration Overview
187.1.1. Quick Start
187.1.2. Configuring the mDNS Responder
187.1.3. Configuring the mDNS DNS-SD support
187.2. Tuning
187.2.1. Footprint
188. Debug and Test
188.1. Debugging
188.1.1. Asserts
188.1.2. Diagnostic Output
188.2. Testing
188.2.1. mdns_example
188.2.2. dnssd_example
188.2.3. mdns_testp
188.2.4. mdns_farm
188.2.5. Bonjour Conformance Test
188.2.6. DNS-SD Example
LV. NTP Client Support
Overview — Overview
NTP Client API — NTP client API and configuration
Test Programs — Describe the test programs and their host-side support
LVI. Simple Network Time Protocol Client
189. The SNTP Client
189.1. Starting the SNTP client
189.2. What it does
189.3. Configuring the unicast list of NTP servers
189.4. Warning: timestamp wrap around
189.5. The SNTP test program
LVII. WLAN
190. WLAN overview
190.1. Introduction
191. Configuration
191.1. Configuration Overview
191.2. Configuration Options
192. WLAN API
192.1. API
wlan_diag_dump_ascii — Output human-readable string
193. Testing
193.1. wlan_scan
193.2. wlan_switch
LVIII. Cypress WWD WLAN
194. Cypress WWD overview
194.1. Introduction
194.2. WICED-SDK Installation
195. Configuration
195.1. Configuration Overview
195.2. Chipset Firmware
195.3. Configuration Options
196. Platform/Variant HAL
LIX. Common Clock Services
197. Overview
197.1. Introduction
197.2. Functionality
197.3. Concepts and structure
198. Dependencies
198.1. HAL
198.2. Kernel
198.3. Wallclock (RTC)
198.4. C library and POSIX layers
199. Configuration
200. API reference
cyg_clock_get_systime() — Retrieve the current system time
cyg_clock_get_systime_res — Obtain the resolution of the system clock
cyg_clock_set_systime() — Sets the system clock to the supplied time
cyg_clock_sync_wallclock() — Force the wallclock to be updated from system time
cyg_clock_adjust_systime() — Adjust the system time
Time change notification — Registering and deregistering for notification of changes to system time
cyg_clock_sysclock_handle() — Return a handle to the system clock
Time conversions — Converting between clock ticks and calendar time
LX. Object Loader
Object Loader — eCos Support for Dynamic Module Loading
Extending the Object Loader — Extending the Object Loader
LXI. CPU load measurements
201. CPU Load Measurements
201.1. CPU Load API
201.1.1. cyg_cpuload_calibrate
201.1.2. cyg_cpuload_create
201.1.3. cyg_cpuload_delete
201.1.4. cyg_cpuload_get
201.1.5. Implementation details
201.1.6. SMP Support
LXII. gprof Profiling Support
Profiling — eCos Support for the gprof profiling tool
LXIII. gcov Test Coverage Support
Test Coverage — eCos Support for the gcov test coverage tool
LXIV. CRC Algorithms
202. CRC Functions
202.1. CRC API
202.1.1. cyg_posix_crc32
202.1.2. cyg_crc32
202.1.3. cyg_ether_crc32
202.1.4. cyg_crc16
LXV. LibTomCrypt Cryptography Library
LibTomCrypt Cryptography Library — Cryptography
LXVI. LibTomMath Multi-Precision Math Package
LibTomMath Multi-Precision Math Package — Multi-Precision Maths
LXVII. BootUp ROM loader
203. BootUp overview
203.1. Introduction
203.2. Configuration
203.2.1. Platform Support
203.2.2. Building BootUp
203.3. Applications using VALID_ALT
LXVIII. Bundle image support
204. Bundle overview
204.1. Introduction
204.2. Configuration
205. Bundle format
205.1. Introduction
205.2. Internal Structure
206. Bundle API
206.1. API
cyg_bundle_access_direct — Initialise “direct” bundle context
cyg_bundle_access_file — Initialise “file” bundle context
cyg_bundle_access_flash — Initialise “flash” bundle context
cyg_bundle_access_init — Common bundle context initialisation
cyg_bundle_access_release — Release bundle context
cyg_bundle_verify — Verify bundle and initialise context references
cyg_bundle_item_find — Provide handle onto bundle item
cyg_bundle_item_release — Release reference to specific bundle item
cyg_bundle_enumerate — Enumerate bundle contents
cyg_bundle_info — Length of raw item
cyg_bundle_read — Extract data from a bundle item
207. Host tool
207.1. Introduction
208. Bundle tests
208.1. bundle1
LXIX. RedBoot User's Guide
209. Getting Started with RedBoot
209.1. More information about RedBoot on the web
209.2. Installing RedBoot
209.3. User Interface
209.4. RedBoot Editing Commands
209.5. RedBoot Command History
209.6. RedBoot Startup Mode
209.7. RedBoot Resource Usage
209.7.1. Flash Resources
209.7.2. RAM Resources
209.8. Configuring the RedBoot Environment
209.8.1. Target Network Configuration
209.8.2. Host Network Configuration
209.8.3. Verification
210. RedBoot Commands and Examples
210.1. Introduction
210.2. Common Commands
210.3. Flash Image System (FIS)
210.4. Filesystem Interface
210.5. Persistent State Flash-based Configuration and Control
210.6. Persistent State in a NAND-based environment
210.6.1. Manipulating persistent state stored on NAND
210.7. Executing Programs from RedBoot
210.8. NAND configuration commands
210.9. NAND manipulation commands
211. Rebuilding RedBoot
211.1. Introduction
211.2. Variables
211.3. Building RedBoot using ecosconfig
211.4. Rebuilding RedBoot from the eCos Configuration Tool
212. Updating RedBoot
212.1. Introduction
212.2. Load and start a RedBoot RAM instance
212.3. Update the primary RedBoot flash image
212.4. Reboot; run the new RedBoot image
213. Initial Installation
213.1. Hardware Installation
213.1.1. What to Expect
LXX. Robust Boot Loader
Robust Boot Loader — provide a robust boot service
RedBoot Commands — access RBL functionality via the RedBoot prompt
Application Library — allow applications to access RBL services
Application Library Extensions — allow applications to access RBL services
LXXI. RedBoot Extra Initialization
RedBoot Extra Initialization — provide extra RedBoot initialization
LXXII. Synthetic Target Architecture
214. eCos Synthetic Target
Overview — Overview
Installation — Preparing to use the synthetic target
Running a Synthetic Target Application — Arguments and configuration files
The I/O Auxiliary's User Interface — Controlling the I/O Auxiliary
The Console Device — Show output from the eCos application
System Calls — Access Linux system facilities
Writing New Devices - target — extending the synthetic target, target-side
Writing New Devices - host — extending the synthetic target, host-side
Porting — Adding support for other hosts
LXXIII. ARM7/ARM9/XScale/Cortex-A Architecture
215. ARM Architectural Support
ARM Architectural HAL — eCos Support for the ARM Architecture
Configuration — Configuring the ARM Architectural HAL Package
The HAL Port — Implementation Details
216. Atmel AT91 Processor Variant Support
Overview of Atmel AT91 Processor Variant — Overview
Hardware definitions — Details on obtaining hardware definitions for AT91
Interrupt Controller — Advanced Interrupt Controller definitions and usage
Timers — Use of on-chip Timer
Serial UARTs — Configuration and implementation details of serial UART support
217. Atmel AT91SAM7 Processor Variant Support
eCos Support for the Atmel AT91SAM7 Processor Variant — Overview
Hardware definitions — Details on obtaining hardware definitions for AT91
Interrupt Vector Definitions — Advanced Interrupt Controller vector definitions
218. Atmel AT91SAM7A2-EK Board Support
eCos Support for the Atmel AT91SAM7A2-EK — Overview
Setup — Preparing the AT91SAM7A2-EK board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
219. Atmel AT91SAM7A3-EK Board Support
eCos Support for the Atmel AT91SAM7A3-EK — Overview
Setup — Preparing the AT91SAM7A3-EK board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
220. Atmel AT91SAM7S-EK Board Support
eCos Support for the Atmel AT91SAM7S-EK — Overview
Setup — Preparing the AT91SAM7S-EK board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
221. Atmel AT91SAM7X-EK Board Support
eCos Support for the Atmel AT91SAM7X-EK — Overview
Setup — Preparing the AT91SAM7X-EK board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
222. NXP LPC2xxx variant HAL
Overview — Overview
On-chip subsystems and peripherals — Hardware support
The HAL Port — Implementation Details
223. Ashling EVBA7 Eval Board Support
Overview — Overview
Setup — Preparing the EVBA7 Eval Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
224. Embedded Artists LPC2468 OEM Board Support
Overview — Overview
Setup — Preparing the LPC2468 OEM Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
225. Embedded Artists QuickStart Board Support
Overview — Overview
Setup — Preparing the EA QuickStart Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
226. IAR KickStart Card Support
Overview — Overview
Setup — Preparing the IAR KickStart Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
227. Keil MCB2387 Board Support
Overview — Overview
Setup — Preparing the MCB2387 Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
228. Phytec phyCORE LPC2294 Board Support
Overview — Overview
Setup — Preparing the phyCORE LPC2294 Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
229. ST STR7XX variant HAL
Overview — Overview
On-chip Subsystems and Peripherals — Hardware Support
The HAL Port — Implementation Details
Power Management — Details
230. ST STR710-EVAL Board HAL
Overview — Overview
Setup — Preparing the STR710-EVAL Board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
231. Atmel AT91RM9200 Processor Support
eCos Support for the Atmel AT91RM9200 Processor — Overview
Hardware definitions — Details on obtaining hardware definitions for AT91RM9200
Interrupt controller — Advanced Interrupt Controller definitions and usage
Timer counters — Use of on-chip timer counters
Serial UARTs — Configuration and implementation details of serial UART support
Multimedia Card Interface (MCI) driver — Using MMC/SD cards with block drivers and filesystems
Two-Wire Interface (TWI) driver — Configuration and implementation details of TWI (I²C®) driver
Power saving support — Extensions for saving power
232. Atmel AT91RM9200 Development Kit/Evaluation Kit Board Support
eCos Support for the Atmel AT91RM9200 Development Kit/Evaluation Kit — Overview
Setup — Preparing the AT91RM9200-EK and AT91RM9200-DK boards for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
233. Cogent CSB337 Board Support
Overview — Overview
Setup — Preparing the CSB337 board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
234. SSV DNP/9200 with DNP/EVA9 Board Support
Overview — Overview
Setup — Preparing the DNP/9200 with DNP/EVA9 evaluation board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
235. KwikByte KB920x Board Family Support
Overview — Overview
Setup — Preparing the KB920x boards for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
236. Motorola MX1ADS/A Board Support
Overview — Overview
Setup — Preparing the MX1ADS/A board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
237. Texas Instruments OMAP L1xx Processor Support
Overview — Overview
Hardware definitions — Details on obtaining hardware definitions for OMAP
Interrupt Controller — Advanced Interrupt Controller Definitions And usage
Timers — Use of on-chip timers
Serial UARTs — Configuration and Implementation Details of Serial UART Support
Multimedia Card Interface (MMC/SD) Driver — Using MMC/SD cards with block drivers and filesystems
I2C Two Wire Interface — Using I²C devices
Pin Configuration and GPIO Support — Use of pin configuration and GPIO
Peripheral Power Control — Description
DMA Support — Description
238. Atmel SAM9 Processor Support
Overview — Overview
Hardware definitions — Details on obtaining hardware definitions for SAM9
Interrupt controller — Advanced Interrupt Controller definitions and usage
Timers — Use of on-chip timers
Serial UARTs — Configuration and implementation details of serial UART support
Two-Wire Interface (TWI) driver — Configuration and implementation details of TWI (I²C®) driver
Power saving support — Extensions for saving power
239. Atmel AT91SAM9260 Evaluation Kit Board Support
Overview — Overview
Setup — Preparing the AT91SAM9260-EK board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
240. Atmel AT91SAM9261 Evaluation Kit Board Support
Overview — Overview
Setup — Preparing the AT91SAM9261-EK board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
241. Atmel AT91SAM9263 Evaluation Kit Board Support
Overview — Overview
Setup — Preparing the AT91SAM9263-EK board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
242. Atmel AT91SAM9G20 Evaluation Kit Board Support
Overview — Overview
Setup — Preparing the AT91SAM9G20-EK board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
243. Atmel AT91SAM9G45-EKES Evaluation Kit Board Support
Overview — Overview
Setup — Preparing the AT91SAM9G45-EKES board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
244. ARM Versatile 926EJ-S Board Support
Overview — Overview
Setup — Preparing the VPB926EJS board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
245. Spectrum Digital OMAP-L137 Board Support
Overview — Overview
Setup — Preparing the SD-L137 board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
246. Logic Zoom Board Support
Overview — Overview
Setup — Preparing the Zoom board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
247. Freescale i.MXxx Processor Support
Overview — Overview
Hardware definitions — Details on obtaining hardware definitions for i.MXxx
Interrupt Controller — Advanced Interrupt Controller Definitions And Usage
Timers — Use of on-chip timers
Serial UARTs — Configuration and Implementation Details of Serial UART Support
Pin Configuration and GPIO Support — Use of pin configuration and GPIO
Peripheral Clock Control — Description
248. Freescale MCIMX25WPDK Board Support
Overview — Overview
Setup — Preparing the board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
249. Intel IQ80321 Board Support
Overview — Overview
Setup — Preparing the IQ80321 board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
250. Intel XScale IXP4xx Network Processor Support
Overview — Overview
IXP4xx hardware definitions — Details on obtaining hardware definitions for IXP4xx
IXP4xx interrupt controller — Interrupt controller definitions and usage
General-purpose timers — Use of IXP4xx general-purpose timers
Watchdog — Describes use of the hardware watchdog
Serial UARTs — Configuration and implementation details of serial UART support
PCI bus controller — PCI bus controller support implementation details
PCI bus IDE controllers — Configuring and using IDE controllers on the PCI bus
CompactFlash cards in TrueIDE mode — Using CompactFlash cards in TrueIDE mode on the IXP4xx expansion bus
GPIO — General purpose I/O
251. Intel XScale IXDP425 Network Processor Evaluation Board Support
Overview — Overview
Setup — Setting up the IXDP425 board
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
252. Altera Hard Processor System Support
Overview — Overview
Hardware definitions — Details on obtaining hardware definitions for HPS
Interrupt Controller — Advanced Interrupt Controller Definitions And usage
Timers — Use of on-chip timers
Serial UARTs — Configuration and Implementation Details of Serial UART Support
Multimedia Card Interface (MMC/SD) Driver — Using MMC/SD cards with block drivers and filesystems
I2C Interface — Using I²C devices
Pin Configuration and GPIO Support — Use of pin configuration and GPIO
253. Broadcom IProc Support
Overview — Overview
Hardware definitions — Details on obtaining hardware definitions for IProc
Interrupt Controller — Advanced Interrupt Controller Definitions and Usage
Timers — Use of on-chip timers
Serial UARTs — Configuration and Implementation Details of Serial UART Support
254. Broadcom BCM283X Processor Support
Overview — Overview
Hardware Definitions — Details on obtaining hardware definitions for BCM283X
Interrupt Controller — Interrupt Controller Definitions and Usage
Timers — Use of on-chip timers
Serial UARTs — Configuration and Implementation Details of Serial UART Support
I²C Interface — Using I²C devices
GPIO Support — Use of GPIO
DMA Support — Description
GPU Communication Support — Use of GPU mailbox
Frequency Control — control ARM and CORE frequencies
255. Broadcom BCM56150 Reference Board Support
Overview — Overview
Setup — Preparing the BCM56150 Reference board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
256. Altera Cyclone V SX Board Support
Overview — Overview
Setup — Preparing the Cyclone V SX board for eCos Development
Configuration — Platform-specific Configuration Options
SMP Development and Debugging Support — Usage
The HAL Port — Implementation Details
257. Atmel ATSAMA5D3 Variant HAL
Atmel SAMA5D3 Variant HAL — eCos Support for the Atmel SAMA5D3 Microprocessor Family
Hardware definitions — Details on obtaining hardware definitions for SAMA5D3
Bootstrap — System startup
On-chip Subsystems and Peripherals — Hardware Support
GPIO Support on SAMA5D3 processors — Details
Peripheral clock control — Details
DMA Support — Details
Configuration — Common SAMA5D3 configuration options
Test Programs — Details
258. Atmel SAMA5D3x-MB (MotherBoard) Platform HAL
SAMA5D3x-MB Platform HAL — eCos Support for the SAMA5D3x-MB Board
Setup — Preparing the SAMA5D3x-MB Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
BootUp Integration — Detail
259. Atmel SAMA5D3x-CM (CPU Module) Platform HAL
SAMA5D3x-CM Platform HAL — eCos Support for the SAMA5D3x-CM CPU Module
The HAL Port — Implementation Details
260. Atmel SAMA5D3 Xplained Platform HAL
SAMA5D3 Xplained Platform HAL — eCos Support for the SAMA5D3 Xplained platform
Setup — Preparing the SAMA5D3-XPLD Board for eCos Development
Configuration — Platform-specific configuration options
The HAL Port — Implementation Details
BootUp Integration — Detail
261. Raspberry Pi Board Support
Overview — Overview
Setup — Preparing the Raspberry Pi for eCos Development
JTAG Debugger Support — Usage
Configuration — Platform-specific Configuration Options
SMP Development and Debugging Support — Usage
The HAL Port — Implementation Details
RedBoot Extensions — Usage
262. Virtual Machine Support
Overview — Overview
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
263. QEMU Virtual Machine Support
Overview — Overview
Setup — Preparing for eCos Development
Configuration — Platform-specific Configuration Options
SMP Development and Debugging Support — Usage
The HAL Port — Implementation Details
264. Xvisor Virtual Machine Support
Overview — Overview
Setup — Preparing for eCos Development
Configuration — Platform-specific Configuration Options
SMP Development and Debugging Support — Usage
The HAL Port — Implementation Details
LXXIV. Cortex-M Architecture
265. Cortex-M Architectural Support
Cortex-M Architectural HAL — eCos Support for the Cortex-M Architecture
Configuration — Configuring the Cortex-M Architectural HAL Package
Floating Point support — Overview of use of floating point
The HAL Port — Implementation Details
Cortex-M Hardware Debug — Overview of hardware debug features
266. Kinetis Variant HAL
Kinetis Variant HAL — eCos Support for the Kinetis Microprocessor Family
On-chip Subsystems and Peripherals — Hardware Support
267. Freescale TWR-K60N512 and TWR-K60D100M Platform HAL
Freescale TWR-K60N512/TWR-K60D100M Platform HAL — eCos Support for the Freescale TWR-K60N512 and TWR-K60D100M boards
Setup — Preparing the TWR-K60N512/TWR-K60D100M Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
268. Freescale TWR-K70F120M Platform HAL
Freescale TWR-K70F120M Platform HAL — eCos Support for the Freescale TWR-K70F120M board
Setup — Preparing the TWR-K70F120M Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
269. LM3S Variant HAL
LM3S Variant HAL — eCos Support for the LM3S Microprocessor Family
On-chip Subsystems and Peripherals — Hardware Support
GPIO Support — Details
270. LM3S8962-EVAL Platform HAL
LM3S8962 EVAL Platform HAL — eCos Support for the LM3S8962-EVAL Board
Setup — Preparing the LM3S8962-EVAL Board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
271. LPC1XXX Variant HAL
LPC1XXX Variant HAL — eCos Support for the LPC1XXX Microprocessor Family
On-chip Subsystems and Peripherals — Hardware Support
GPIO Support — Details
Peripheral Clock and Power Control — Description
272. MCB1700 Platform HAL
MCB1700 Platform HAL — eCos Support for the MCB1700 Board
Setup — Preparing the MCB1700 Board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
273. SAM3/4/x70 Variant HAL
SAM3/4/X70 Variant HAL — eCos Support for the SAM3/4 Microprocessor Family
On-chip Subsystems and Peripherals — Hardware Support
GPIO Support on SAM Processors — Details
Peripheral clock control — Details
274. Atmel SAM4E-EK Platform HAL
SAM4E-EK Platform HAL — eCos Support for the SAM4E-EK Board
Setup — Preparing the SAM4E-EK Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
275. Atmel SAMX70-EK Platform HAL
SAMX70-EK Platform HAL — eCos Support for the SAMX70-EK Board
Setup — Preparing the SAMX70-EK Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
276. STM32 Variant HAL
STM32 Variant HAL — eCos Support for the STM32 Microprocessor Family
On-chip Subsystems and Peripherals — Hardware Support
GPIO Support on STM32F processors — Details
Peripheral clock control — Details
DMA Support — Details
Test Programs — Details
277. STM3210C-EVAL Platform HAL
STM3210C EVAL Platform HAL — eCos Support for the STM3210C-EVAL Board
Setup — Preparing the STM3210C-EVAL Board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
278. STM3210E-EVAL Platform HAL
STM3210E EVAL Platform HAL — eCos Support for the STM3210E-EVAL Board
Setup — Preparing the STM3210E-EVAL Board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
279. STM32X0G-EVAL Platform HAL
STM32X0G EVAL Platform HAL — eCos Support for the STM3220G-EVAL, STM3240G-EVAL and STM3241G-EVAL Boards
Setup — Preparing the STM32X0G-EVAL Board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
280. STM32F429I-DISCO Platform HAL
STM32F429I-DISCO Platform HAL — eCos Support for the STM32F429I-DISCO Board
Setup — Preparing the STM32F429I-DISCO Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
281. STM32F746G-DISCO Platform HAL
STM32F746G-DISCO Platform HAL — eCos Support for the STM32F746G-DISCO Board
Setup — Preparing the STM32F746G-DISCO Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
282. STM32H735-DISCO Platform HAL
STM32H735-DISCO Platform HAL — eCos Support for the STM32H735-DISCO Board
Setup — Preparing the STM32H735-DISCO Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
283. STM32H7 Nucleo-144 Platform HAL
STM32H7 Nucleo-144 Platform HAL — eCos Support for the STM32H7 Nucleo-144 Board
Setup — Preparing the STM32H7 Nucleo-144 Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
284. STM32F4DISCOVERY Platform HAL
STM32F4DISCOVERY Platform HAL — eCos Support for the STM32F4DISCOVERY Board
Setup — Preparing the STM32F4DISCOVERY Board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG/SWD debugging support — Usage
The HAL Port — Implementation Details
285. STM324X9I-EVAL Platform HAL
STM324X9I-EVAL Platform HAL — eCos Support for the STM324X9I-EVAL Board
Setup — Preparing the STM324X9I-EVAL Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
BootUp Integration — Detail
286. STM32F7XX-EVAL Platform HAL
STM32F7XX-EVAL Platform HAL — eCos Support for the STM32F7XX-EVAL Board
Setup — Preparing the STM32F7XX-EVAL Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
BootUp Integration — Detail
287. STM32L476-DISCO Platform HAL
STM32L476-DISCO Platform HAL — eCos Support for the STM32L476-DISCO Board
Setup — Preparing the STM32L476-DISCO Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
BootUp Integration — Detail
288. BCM943362WCD4 Platform HAL
BCM943362WCD4 Platform HAL — eCos Support for the BCM943362WCD4 WICED Module
Setup — Preparing the Broadcom BCM943362WCD4 for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
289. BCM943364WCD1 Platform HAL
BCM943364WCD1 Platform HAL — eCos Support for the BCM943364WCD1 WICED Module
Setup — Preparing the Broadcom BCM943364WCD1 for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
290. STM32L4R9-DISCO Platform HAL
STM32L4R9-DISCO Platform HAL — eCos Support for the STM32L4R9-DISCO Board
Setup — Preparing the STM32L4R9-DISCO Board for eCos Development
Configuration — Platform-specific Configuration Options
Hardware debugging support — Usage
The HAL Port — Implementation Details
Test Programs — Details
BootUp Integration — Detail
291. STM32L4R9-EVAL Platform HAL
292. NXP i.MX RT10XX Variant HAL
NXP i.MX RT10XX Variant HAL — eCos Support for the NXP i.MX RT10XX Microprocessor Family
On-chip Subsystems and Peripherals — Hardware Support
Hardware Configuration Support on IMX Processors — Details
293. NXP MIMXRT1050-EVK Platform HAL
NXP MIMXRT1050-EVK Platform HAL — eCos Support for the MIMXRT1050-EVK Board
Setup — Preparing the MIMXRT1050-EVK Board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
LXXV. H8300 Architecture
294. H8/300 Architectural Support
Overview — eCos Support for the H8/300 Family of Processors
Configuration — Configuring the H8/300 Architectural Package
The HAL Port — Implementation Details
LXXVI. i386 Architecture
295. I386 PC Support
eCos Support for the i386 PC — Overview
Setup — Preparing a PC for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
296. STPC Atlas Support
STPC Atlas Processor — eCos Support for the STPC Atlas Processor
LXXVII. M68000 / ColdFire Architecture
297. M68000 / ColdFire Architectural Support
Overview — eCos Support for the M68K Family of Processors
Configuration — Configuring the M68K Architectural Package
The HAL Port — Implementation Details
298. Freescale MCFxxxx Variant Support
MCFxxxx ColdFire Processors — eCos Support for Freescale MCFxxxx Processors
299. Freescale MCF5272 Processor Support
The MCF5272 ColdFire Processor — eCos Support for the Freescale MCF5272 Processor
300. Freescale M5272C3 Board Support
Overview — Overview
Setup — Preparing the M5272C3 board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
301. Freescale MCF5275 Processor Support
The MCF5275 ColdFire Processor Family — eCos Support for Freescale MCF5275 Processors
302. Freescale MCF5282 Processor Support
The MCF5282 ColdFire Processor — eCos Support for the Freescale MCF5282 Processor
303. Freescale M5282EVB Board Support
Overview — Overview
Setup — Preparing the M5282EVB board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
304. Freescale M5282LITE Board Support
Overview — Overview
Setup — Preparing the M5282LITE board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
305. SSV DNP/5280 Board Support
Overview — Overview
Setup — Preparing the DNP/5280 board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
306. Motorola MCF521x Processor Support
The MCF521x ColdFire Processor Family — eCos Support for Freescale MCF521x Processors
307. Motorola M5213EVB Board Support
M5213EVB Board — eCos Platform HAL
308. Freescale M5208EVBe Platform HAL
Overview — Overview
Setup — Preparing the M5208EVBe board for eCos Development
Configuration — Platform-specific Configuration Options
Test Programs — Details
309. Motorola MCF532x Processor Support
The MCF532x ColdFire Processor Family — eCos Support for Freescale MCF532x Processors
310. senTec Cobra5329 Board Support
Overview — Overview
Setup — Preparing the Cobra5329 board for eCos Development
Configuration — Platform-specific Configuration Options
311. Motorola MCF520x Processor Support
The MCF520x ColdFire Processor Family — eCos Support for Freescale MCF520x Processors
LXXVIII. MIPS Architecture
312. MIPS Architectural HAL
MIPS Architectural HAL — eCos Support for the MIPS Architecture
Configuration — Configuring the MIPS Architectural HAL Package
The HAL Port — Implementation Details
313. MIPS32 Variant HAL
MIPS32 Variant HAL — eCos Support for the MIPS32 Architecture Variant
Configuration — Configuring the MIPS32 Variant HAL Package
The MIPS32 HAL Port — Implementation Details
314. MIPS SEAD3 Board Support
Overview — Overview
Setup — Preparing the SEAD3 board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
JTAG Debugging — Using System Navigator
315. MIPS Malta Board Support
Overview — Overview
Setup — Preparing the Malta board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
316. NXP PNX83xx Common Support
PNX83xx Processors — eCos Support for NXP PNX83xx Processors
317. NXP PNX8310 Processor Support
The NXP PNX8310 Processor — eCos Support for the NXP PNX8310 Processor
318. NXP STB200 Board Support
Overview — Overview
Setup — Preparing the STB200 board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
319. NXP PNX8330 Processor Support
The NXP PNX8330 Processor — eCos Support for the NXP PNX8330 Processor
320. NXP STB220 Board Support
Overview — Overview
Setup — Preparing the STB220 board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
LXXIX. NIOS2 Architecture
321. Nios II Architectural Support
Nios II Architectural HAL — eCos Support for the Nios II Architecture
Generic Installation Instructions — Generic Instructions
Configuration — Configuring the Nios II Architectural HAL Package
The HAL Port — Implementation Details
322. Nios II Stratix II/2s60_RoHS and Cyclone II/2c35 Platform HAL
Overview — eCos Platform HAL Support for the Stratix II/2s60-RoHS and Cyclone II/2c35 Boards
323. Nios II Cyclone II/2c35 Standard H/W Design HAL
Cyclone II Standard Hardware Design HAL — eCos Support for the Standard Hardware Design on a Cyclone II/2c35 Board
324. Nios II Cyclone II/2c35 TSEplus H/W Configuration HAL
Cyclone II TSEplus Hardware Design HAL — eCos Support for the TSEplus Hardware Design on a Cyclone II/2c35 Board
325. Nios II Stratix II/2s60_RoHS Standard H/W Design HAL
Stratix II Standard Hardware Design HAL — eCos Support for the Standard Hardware Design on a Stratix II/2s60-RoHS Board
326. Nios II Stratix II/2s60_RoHS TSEplus H/W Design HAL
Stratix II TSEplus Hardware Design HAL — eCos Support for the TSEplus Hardware Design on a Stratix II/2s60-RoHS Board
327. Board-level Support for the Nios II Embedded Evaluation Kit, Cyclone III edition
Overview — eCos Platform HAL Support for the Nios II Embedded Evaluation Kit, Cyclone III Edition
328. Nios II Embedded Evaluation Kit, Cyclone III Edition, appselector H/W Design HAL
Nios II Embedded Evaluation Kit, Cyclone III Edition, appselector Hardware Design HAL — eCos Support for the Appselector Hardware Design on a Nios II Embedded Evaluation Kit, Cyclone III Edition
LXXX. PowerPC Architecture
329. A&M Adder Board Support
Overview — Overview
Setup — Preparing the Adder board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
330. ADS512101 Board Support
Overview — Overview
Setup — Preparing the ADS512101 board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
331. Freescale MPC5554DEMO Board Support
Overview — Overview
Setup — Preparing the MPC5554DEMO board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
332. MPC8309KIT Board Support
Overview — Overview
Setup — Preparing the MPC8309KIT board for eCos Development
Configuration — Platform-specific Configuration Options
JTAG debugging support — Usage
The HAL Port — Implementation Details
GPIO Support — Details
Test Programs — Details
333. MPC512X Variant Support
MPC512X Variant HAL — eCos Support for the MPC512X Microprocessor Family
On-chip Subsystems and Peripherals — Hardware Support
SPI Slave support — Hardware Support for SPI Slave Device
LXXXI. SH Architecture
334. Renesas SDK7780 Development Board Support
Overview — Overview
Setup — Preparing the SDK7780 board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
335. SuperH SH4-202 MicroDev Board Support
Overview — Overview
Setup — Preparing the MicroDev board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
336. STMicroelectronics ST40 Evaluation Board Support
Overview — Overview
Setup — Preparing the ST40EB board for eCos Development
Configuration — Platform-specific Configuration Options
The HAL Port — Implementation Details
LXXXII. TILE-Gx Architecture
337. TILE-Gx Architectural Support
Overview — eCos Support for the TILE-Gx Family of Processors
Hardware Setup — preparing the hardware for eCos development
eCos Configuration Options — Configuring the TILE-Gx Architectural HAL Package
The HAL Port — Implementation Details
338. TILE-Gx TMC Library
Overview — eCos Port of a Subset of the TMC Library
Real-time characterization of selected targets

List of Figures

53.1. Library layout diagram
2. I/O auxiliary Dialog, Files
3. I/O auxiliary Dialog, Logging
74.1. I²C wiring specification
87.1. Synthetic Target Framebuffer X Window
194.1. Example WICED-Studio installation complete
194.2. Example WICED-Studio WiFi directory copy and rename
194.3. Example WICED-SDK installation
205.1. <bundle> image
205.2. <arbitrary> chunk
205.3. <hash> chunk
205.4. Uncompressed <item>
205.5. Compressed <item>
257.1. ROMRAM RedBoot
257.2. ROM RedBoot
258.1. On-chip RomBOOT executes
258.2. On-chip RomBOOT copies second-level boot code from NVM to on-chip SRAM
258.3. SRAM loaded second-level boot code is executed
258.4. Final application ROMRAM is located in SPI or NOR NVM
258.5. Second-level boot copies ROMRAM from NVM to DDR2-SDRAM
258.6. Application is started
258.7. Second-level boot code built with AES-256 key
258.8. Stored key is used to decrypt NVM application into RAM
258.9. Decrypted application is started
260.1. SAM-BA Board Connection
260.2. Enabling DDRAM
260.3. Enabling NAND
260.4. Programming the Second-Stage bootstrap
260.5. Programming the Application
285.1. On-chip flash
285.2. NVM bundle
285.3. BootUp and Application
285.4. Application Update image
286.1. On-chip flash
286.2. NVM bundle
286.3. BootUp and Application
286.4. Application Update image
287.1. BootUp and Application
287.2. Application Update image
293.1. Checksum of QSPI image and Execution of RedBoot
293.2. RedBoot Output
293.3. Initialise Flash
293.4. Loading RedBoot QSPI boot image into memory
293.5. RedBoot cksum of memory image
293.6. Program RedBoot into QSPI from memory image

List of Examples

1. Mounting and unmounting a JFFS2 filesystem
2. Secure erase usage
161.1. This example shows the basic mechanisms for using netbufs.
161.2. This example shows a simple use of the netbuf_ref()
161.3. This example shows how to use the netbuf_next() function
161.4. This example shows a simple use of netbuf_copy()
161.5. This example shows how to open a TCP server on port 2000
161.6. This example demonstrates usage of the netconn_recv() function
161.7. This example demonstrates basic usage of the netconn_write() function
161.8. This example demonstrates basic usage of the netconn_send() function
177.1. Apache 2.0 License
180.1. lb_ssl test run
188.1. doc/bct_stm32f207_result.txt
209.1. Sample DHCP configuration file
209.2. Sample /etc/named.conf for most Linux distributions
218.1. at91sam7a2ek Real-time characterization
219.1. at91sam7a3ek Real-time characterization
220.1. at91sam7sek Real-time characterization
221.1. at91sam7xek Real-time characterization
225.1. ea_quickstart Real-time characterization
226.1. iar_kickstart Real-time characterization
232.1. atmel-at91rm9200-kits Real-time characterization
234.1. dnp_sk23 Real-time characterization
235.1. kb9200 Real-time characterization
239.1. sam9260ek Real-time characterization
240.1. sam9261ek Real-time characterization
241.1. sam9263ek Real-time characterization
242.1. sam9g20ek Real-time characterization
243.1. sam9g45ek Real-time characterization
246.1. zoom_l138 Real-time characterization
248.1. mcimx25x Real-time characterization
255.1. bcm56150_ref Real-time characterization
256.1. cyclone5_sx Real-time characterization
259.1. sama5d3x_cm Real-time characterization
260.1. sama5d3xpld Real-time characterization
261.1. Raspberry Pi3 Real-time characterization
263.1. VM Real-time characterization
264.1. VM Real-time characterization
267.1. twr_k60n512 Real-time characterization
268.1. twr_k70f120m Real-time characterization
274.1. sam4e_ek Real-time characterization
275.1. samv71-XULT Real-time characterization
279.1. stm32x0g_eval Real-time characterization
280.1. stm32f429i_disco Real-time characterization
281.1. stm32f746g_disco Real-time characterization
282.1. stm32h735_disco Real-time characterization
283.1. nucleo144_stm32h723 Real-time characterization
284.1. stm32f4dis Real-time characterization
285.1. stm324x9i_eval Real-time characterization
286.1. stm32f7xx_eval Real-time characterization
287.1. stm32l476_disco Real-time characterization
288.1. bcm943362wcd4 Real-time characterization
289.1. bcm943364wcd1 Real-time characterization
290.1. stm32l4r9_disco Real-time characterization
293.1. MIMXRT1050-EVK Real-time characterization
307.1. m5213evb Real-time characterization
330.1. ads512101 Real-time characterization
331.1. mpc5554demo Real-time characterization
332.1. mpc8309kit Real-time characterization