VxWorks 6.x Device Drivers
Acquire the skills necessary to develop device drivers using both legacy VxWorks and VxBus device driver models.
Course Description
The VxWorks® 6.x Device Drivers workshop provides engineers with an efficient way to acquire the skills necessary to develop device drivers using both legacy VxWorks and VxBus device driver models.
Course Results
After this course, participants will be able to perform the following:
- Optimize the development of a new device driver from scratch
- Use coding conventions for ease of debugging and driver portability
- Utilize common techniques for driver development
- Write standard VxWorks I/O drivers
- Distinguish between legacy VxWorks and VxBus drivers and determine which driver model is appropriate for a particular application
- Design and integrate custom VxBus drivers
- Migrate proprietary and legacy drivers to VxBus
Products Supported
- VxWorks 6.8
- Wind River® Workbench 3.2
Who Should Attend
- Developers with general experience writing device drivers for embedded hardware systems
- Engineers who will develop VxBus-enabled device drivers
Course Format
- This four-day expert-led course consists of lectures and lab sessions.
- Attendees use VxWorks 6.8 and Wind River Workbench 3.2 to gain experience with the topics presented.
- Participants examine and exercise simulated network topologies in hands-on labs.
- Participants receive individual guidance from an expert engineer who has extensive experience with Wind River technologies.
Syllabus
Day 1
Introduction to VxWorks Device Drivers
- Overview
- VxWorks device driver models
- Introduction to VxBus
- VxBus terminology
- VxWorks target initialization
- VxWorks development environment
- LAB: Getting started (booting, shells)
Driver Design Guidelines
- Design goals
- VxWorks coding conventions
- Control structures
- Error handling
- Driver documentation and other resources
- LAB: Common driver interactions
Day 2
VxBus Integration
- Introduction
- Location of resources
- Required files
- Essential source file elements
- BSP configuration
- VxWorks component configuration
- LAB: Integrating a VxBus driver
VxBus Initialization
- VxBus driver initialization sequence
- Other driver features
- VxBus show routines
- Services available to VxBus drivers
- LAB: Initializing a VxBus driver
Day 3
VxWorks I/O Interface
- Introduction
- Standard I/O
- Support routines
- Supporting select( )
- I/O access from user space
- LAB: VxWorks I/O interface
VxWorks Serial Drivers
- Overview
- ttyDrv
- Driver routines
- Initialization
- Supporting the WDB agent
Polling and Interrupts
- Interrupt handling
- Polling
- Design considerations
- LAB: Polling and interrupts
Day 4
Using VxBus Drivers
- Using methods
- Using a standard I/O model to integrate a VxBus driver into a VIP
- Dynamic loading/unloading
- Removing a device
- LAB: Using VxBus
Migration to VxBus
- Generic migration strategy
- Porting OS-agnostic drivers to VxBus
- LAB: Migrating a legacy LED driver to VxBus
VxBus Class-Specific Drivers
- Interrupt handling
- Interrupt controllers
- PLB and PCI buses
- VxBus-compliant serial drivers
- VxBus-compliant network drivers
- VxBus-compliant timer drivers
USE CASE: CUSTOM END DRIVER
Prerequisites
Prerequisite Course
Prerequisite Skills
- Three to five years OS/programming experience
- One year embedded device programming experience
- Familiarity with device drivers
- Basic understanding of reading and writing device registers
COURSE DETAILS SUMMARY
- Duration: 4 Days
- Course Information: View
- Format: Lectures and Labs
- Type: Instructor-led