RTEMS Documentation Project
RTEMS BSP and Driver Guide
1. Introduction
2. Target Dependent Files
2.1. CPU Dependent
2.2. Board Dependent
2.3. Peripheral Dependent
2.4. Questions to Ask
2.5. CPU Dependent Executive Files
2.6. Board Support Package Structure
3. Linker Script
3.1. What is a “linkcmds” file?
3.2. Program Sections
3.3. Image of an Executable
3.4. Example Linker Command Script
3.5. Initialized Data
4. Miscellaneous Support Files
4.1. README Files
4.2. Times
4.3. Tools Subdirectory
4.4. bsp.h Include File
4.5. tm27.h Include File
4.6. sbrk() Implementation
4.7. bsp_fatal_extension() - Cleanup the Hardware
4.8. Configuration Macros
4.9. set_vector() - Install an Interrupt Vector
4.10. Interrupt Delay Profiling
4.11. Programmable Interrupt Controller API
5. System Initialization
5.1. Introduction
5.2. Low-Level Initialization via Start Code in the Start File (start.o)
5.3. High-Level Initialization via boot_card()
5.3.1. Early BSP Initialization
5.3.2. Memory Information
5.3.3. BSP Initialization
5.4. Error Handling
6. Console Driver
6.1. Introduction
6.2. Build System and Files
6.3. Driver Functioning Modes
6.4. Polled Mode
6.5. Interrupt Driven Mode
6.6. First Open
6.7. Last Close
6.8. Set Attributes
6.9. IO Control
6.10. Flow Control
6.11. General Initialization
7. Clock Driver
7.1. Introduction
7.2. Initialization
7.2.1. Timecounter Variant
7.2.2. Simple Timecounter Variant
7.2.3. Clock Tick Only Variant
7.3. Install Clock Tick Interrupt Service Routine
7.4. Support At Tick
7.5. System Shutdown Support
7.6. SMP Support
7.7. Multiple Clock Driver Ticks Per Clock Tick
7.8. Clock Driver Ticks Counter
8. Target Hash
9. Entropy Source
10. I2C Driver
11. SPI Driver
12. Real-Time Clock Driver
12.1. Introduction
12.2. Initialization
12.3. setRealTimeToRTEMS
12.4. setRealTimeFromRTEMS
12.5. getRealTime
12.6. setRealTime
12.7. checkRealTime
13. Networking Driver
13.1. Introduction
13.2. Learn about the network device
13.3. Understand the network scheduling conventions
13.4. Network Driver Makefile
13.5. Write the Driver Attach Function
13.6. Write the Driver Start Function.
13.7. Write the Driver Initialization Function.
13.8. Write the Driver Transmit Task
13.9. Write the Driver Receive Task
13.10. Write the Driver Interrupt Handler
13.11. Write the Driver IOCTL Function
13.12. Write the Driver Statistic-Printing Function
14. Frame Buffer Driver
14.1. Introduction
14.2. Driver Function Overview
14.2.1. Initialization
14.2.2. Opening the Frame Buffer Device
14.2.3. Closing the Frame Buffer Device
14.2.4. Reading from the Frame Buffer Device
14.2.5. Writing to the Frame Buffer Device
14.2.6. Frame Buffer IO Control
15. Ada95 Interrupt Support
15.1. Introduction
15.2. Mapping Interrupts to POSIX Signals
15.3. Example Ada95 Interrupt Program
15.4. Version Requirements
16. Shared Memory Support Driver
16.1. Shared Memory Configuration Table
16.2. Primitives
16.2.1. Convert Address
16.2.2. Get Configuration
16.2.3. Locking Primitives
16.2.3.1. Initializing a Shared Lock
16.2.3.2. Acquiring a Shared Lock
16.2.3.3. Releasing a Shared Lock
16.3. Installing the MPCI ISR
17. Timer Driver
17.1. Benchmark Timer
17.1.1. benchmark_timer_initialize
17.1.2. Read_timer
17.1.3. benchmark_timer_disable_subtracting_average_overhead
17.2. gen68340 UART FIFO Full Mode
18. ATA Driver
18.1. Terms
18.2. Introduction
18.3. Initialization
18.4. ATA Driver Architecture
18.4.1. ATA Driver Main Internal Data Structures
18.4.2. Brief ATA Driver Core Overview
19. IDE Controller Driver
19.1. Introduction
19.2. Initialization
19.3. Read IDE Controller Register
19.4. Write IDE Controller Register
19.5. Read Data Block Through IDE Controller Data Register
19.6. Write Data Block Through IDE Controller Data Register
20. Command and Variable Index
21. Doxygen Recommendations for BSPs
21.1. BSP Basics
21.2. Common Features Found In BSPs
21.3. Shared Features
21.4. Rationale
21.5. The Structure of the bsps/ directory
21.6. Doxygen
21.7. Doxygen Basics
21.8. Doxygen Headers
21.9. The @defgroup Command
21.10. The @ingroup Command
21.11. The @brief Command
21.12. The Two Types of Doxygen Headers
21.13. Generating Documentation
21.14. Doxygen in bsps/
21.15. Group Naming Conventions
21.16. Where to place @defgroup
21.17. @defgroups for CPU Architectures and Shared Directories
21.18. @defgroups for BSPs
21.19. @defgroups for Everything Else
21.20. Look Common Features Implemented
21.21. Check out the Makefile
21.22. Start with a .h, and look for files that include it
21.23. Files with similar names
21.24. Where to place @ingroup
21.25. @ingroup in the first type of Doxygen Header
21.26. @ingroup in the second type of Doxygen Header
21.27. @ingroup for shared code
Index
RTEMS BSP and Driver Guide
20.
Command and Variable Index
20.
Command and Variable Index
¶
There are currently no Command and Variable Index entries.