VxWorks Board Support Packages and Device Drivers
The VxWorks® Board Support Packages and Device Drivers course provides engineers with a fast, cost-effective way to acquire the knowledge necessary to port VxWorks to customer hardware.
COURSE DESCRIPTION
The VxWorks® Board Support Packages and Device Drivers course provides engineers with a fast, cost-effective way to acquire the knowledge necessary to port VxWorks to customer hardware.
After this course, participants will be able to perform the following:
- Explain the architecture of the VxWorks board support package (BSP)
- Create a flattened device tree file
- Boot VxWorks with U-Boot boot loader
- Explain the kernel initialization sequence and its routines
- Create and make add-on VxWorks kernel components available in the kernel configuration editor
- Implement a VxWorks I/O system driver and access I/O devices from both user and kernel space
- Explain the VxBus general architecture and describe how VxBus device drivers are managed and integrated
- Explain the roles of ttyDrv, tyLib, and implement and integrate a serial driver
- Implement and integrate a timer driver
- Implement PCI Controller Driver Routines
- Initialize, configure, and integrate END drivers
Hands-on exercises are included, using the Wind River Simics® virtual target.
PRODUCTS SUPPORTED
- VxWorks 22.09
- Wind River Workbench 4
COURSE FORMAT
- This three-day expert-led course consists of lectures and lab sessions.
- Attendees use VxWorks, Workbench 4, and Simics to gain experience with the topics presented.
- Participants receive individual guidance from an expert engineer who has extensive experience with Wind River technologies.
AUDIENCE
- Developers planning to write a BSP for a new board on a supported architecture
- Device driver developers
- Application programmers interested in learning what occurs at the hardware level of a VxWorks image
- Senior engineers who will decide on a final production image of their product
PREREQUISITE SKILLS
- C programming, including experience with structures, pointers, pointers to structures, typedefs, macros, and bitwise operators
- Functional knowledge of Linux or Windows host operating system.
- Experience using the Workbench debugger to debug target code
PREREQUISITE COURSES
- Real-Time Programming for Embedded Systems
- VxWorks and Workbench Essentials
RELATED COURSES
- VxWorks 6.9 to VxWorks 7 Migration
SYLLABUS
Day 1
Introduction to VxWorks BSPs
- BSP overview
- BSP high level architecture
- LAB: Getting Started with VxWorks BSPs and Device Drivers
Flattened Device Tree
- Flattened device tree overview
- Flattened device tree syntax
- Flattened device tree initialization
- Device discovery
- LAB: Porting a BSP to Support a Board Variant
Boot Loaders for VxWorks
- VxWorks Boot Loaders Overview
- U-Boot for PowerPC, ARM and RISC-V
- Boot Loaders for Intel
- VxWorks Boot Application
- LAB: Using Boot Loaders for VxWorks
VxWorks BSP Infrastructure
- BSP infrastructure overview
- BSP board layer
- Processor support library (PSL)
- Board subsystem
- Quick steps for BSP development
VxWorks Kernel Initialization
- Pre-kernel initialization overview
- Pre-kernel early debug options
- Kernel initialization overview
- kernelInit() function
- usrRoot( ) function
- Hardware initialization
- LAB: Browsing VxWorks Initialization Code
Day 2
Component Description Language
- Language and file essentials
- Adding components examples
- LAB: Adding VxWorks Components
VxWorks I/O Interface
- VxWorks I/O system
- I/O system structure
- User space and I/O facilities
- LAB: Creating a VxWorks I/O Device Driver
VxBus and Device Drivers Fundamentals
- VxBus architecture
- The VXB_DRV structure
- Device driver methods
- VxBus initialization sequence
- Device discovery
- Resource management
- Dealing with device interdependency
- Driver debug aids
- Using I/O System with VxBus-Compatible Drivers
- LAB: Integrating a VxWorks I/O Device Driver with VxBus
Day 3
VxWorks Serial Drivers
- Serial drivers overview
- High level serial driver architecture
- Serial driver data structures
- Header files
- Serial driver routines
- VxBus driver methods
- Configuring and initializing serial drivers
- Implementing driver routines
- LAB: Creating a Serial Driver
VxWorks Timer Drivers
- Timer Drivers overview
- VxBus driver methods
- Timer driver routines
- Header files
- Configuring and initializing timer drivers
- Integrating timer drivers
- Implementing driver routines
- LAB: Examining Timer Drivers Implementations
PCI Drivers
- Overview
- PCI hardware architecture
- PCI controller driver description
- PCI bridge driver description
- Data structures
- Header files
- Configuring and initializing PCI controller and bridge drivers
- Implementing PCI controller driver routines
VxWorks Network Drivers
- Network drivers overview
- VxBus driver methods
- END
- Network framing
- Receiving packets
- Sending packets
- Contexts of execution
- MDIO
- LAB: Adding Polling Mode to the VxBus Network Driver
COURSE DETAILS SUMMARY
- Duration: Estimated Course Duration: 3 Days
- Course Information: View
- Format: Instructor-led lectures and hands-on lab sessions; instructor-led Live
Remote delivery available - Type: Instructor-led