BSP and Device Driver Development Guide¶
BSP and Device Driver Development Guide¶
COPYRIGHT (c) 1988 - 2015.On-Line Applications Research Corporation (OAR).
The authors have used their best efforts in preparing this material. These efforts include the development, research, and testing of the theories and programs to determine their effectiveness. No warranty of any kind, expressed or implied, with regard to the software or the material contained in this document is provided. No liability arising out of the application or use of any product described in this document is assumed. The authors reserve the right to revise this material and to make changes from time to time in the content hereof without obligation to notify anyone of such revision or changes.
The RTEMS Project is hosted at http://www.rtems.org. Any inquiries concerning RTEMS, its related support components, or its documentation should be directed to the Community Project hosted at http://www.rtems.org.
RTEMS Online Resources
Home | https://www.rtems.org/ |
Developers | https://devel.rtems.org/ |
Documentation | https://docs.rtems.org/ |
Bug Reporting | https://devel.rtems.org/query |
Mailing Lists | https://lists.rtems.org/ |
Git Repositories | https://git.rtems.org/ |
- 1. Introduction
- 2. Target Dependent Files
- 3. Makefiles
- 4. Linker Script
- 5. Miscellaneous Support Files
- 5.1. GCC Compiler Specifications File
- 5.2. README Files
- 5.3. Times
- 5.4. Tools Subdirectory
- 5.5. bsp.h Include File
- 5.6. tm27.h Include File
- 5.7. Calling Overhead File
- 5.8. sbrk() Implementation
- 5.9. bsp_fatal_extension() - Cleanup the Hardware
- 5.10. Configuration Macros
- 5.11. set_vector() - Install an Interrupt Vector
- 5.12. Interrupt Delay Profiling
- 5.13. Programmable Interrupt Controller API
- 6. Ada95 Interrupt Support
- 7. Initialization Code
- 7.1. Introduction
- 7.2. Required Global Variables
- 7.3. Board Initialization
- 7.3.1. Start Code - Assembly Language Initialization
- 7.3.2. boot_card() - Boot the Card
- 7.3.3. bsp_work_area_initialize() - BSP Specific Work Area Initialization
- 7.3.4. bsp_start() - BSP Specific Initialization
- 7.3.5. bsp_predriver_hook() - BSP Specific Predriver Hook
- 7.3.6. Device Driver Initialization
- 7.3.7. RTEMS Postdriver Callback
- 7.4. The Interrupt Vector Table
- 7.5. Chip Select Initialization
- 7.6. Integrated Processor Registers Initialization
- 7.7. Data Section Recopy
- 7.8. The RTEMS Configuration Table
- 8. Console Driver
- 9. Clock Driver
- 10. Timer Driver
- 11. Real-Time Clock Driver
- 12. ATA Driver
- 13. IDE Controller Driver
- 14. Non-Volatile Memory Driver
- 14.1. Major and Minor Numbers
- 14.2. Non-Volatile Memory Driver Configuration
- 14.3. Initialize the Non-Volatile Memory Driver
- 14.4. Disable Read and Write Handlers
- 14.5. Open a Particular Memory Partition
- 14.6. Close a Particular Memory Partition
- 14.7. Read from a Particular Memory Partition
- 14.8. Write to a Particular Memory Partition
- 14.9. Erase the Non-Volatile Memory Area
- 15. Networking Driver
- 15.1. Introduction
- 15.2. Learn about the network device
- 15.3. Understand the network scheduling conventions
- 15.4. Network Driver Makefile
- 15.5. Write the Driver Attach Function
- 15.6. Write the Driver Start Function.
- 15.7. Write the Driver Initialization Function.
- 15.8. Write the Driver Transmit Task
- 15.9. Write the Driver Receive Task
- 15.10. Write the Driver Interrupt Handler
- 15.11. Write the Driver IOCTL Function
- 15.12. Write the Driver Statistic-Printing Function
- 16. Shared Memory Support Driver
- 17. Frame Buffer Driver
- 18. Analog Driver
- 18.1. Major and Minor Numbers
- 18.2. Analog Driver Configuration
- 18.3. Initialize an Analog Board
- 18.4. Open a Particular Analog
- 18.5. Close a Particular Analog
- 18.6. Read from a Particular Analog
- 18.7. Write to a Particular Analog
- 18.8. Reset DACs
- 18.9. Reinitialize DACS
- 18.10. Get Last Written Values
- 19. Discrete Driver
- 19.1. Major and Minor Numbers
- 19.2. Discrete I/O Driver Configuration
- 19.3. Initialize a Discrete I/O Board
- 19.4. Open a Particular Discrete Bitfield
- 19.5. Close a Particular Discrete Bitfield
- 19.6. Read from a Particular Discrete Bitfield
- 19.7. Write to a Particular Discrete Bitfield
- 19.8. Disable Discrete Outputs
- 19.9. Enable Discrete Outputs
- 19.10. Reinitialize Outputs
- 19.11. Get Last Written Values
- 20. Command and Variable Index