Price 9,000 ILS
/ 30 Tcs


Course Overview

Building and Configuring a VxWorks Real-Time System

  • General Purpose Platform Component Overview
  • Setting Up a Cross-Development Environment
  • Using the Application Development Perspective
  • Managing Projects
  • Building Applications
  • Debugging and Analyzing Real-Time Applications
  • Using Host Shell Interpreters for Interacting with the Target
  • Debugging Applications Using the Embedded Debug
  • Perspective
  • Using Wind River System Viewer for Analyzing Applications
  • Detecting and Reporting Errors
  • Using the VxWorks API to Design Real-Time Applications
  • Real-Time Processes Programming Model Usage
  • Multitasking Environment Overview
  • Task API Usage
  • Synchronization Solutions
  • Protecting Shared Resources
  • Intertask Communication
  • Interprocess Communication Using Message Channels
  • Basic Memory Management
  • Exception Handling
  • Interrupts
  • Timers for Periodic Code Execution


Lab Description:

In addition to the frontal lectures it is possible, per customer needs/request, to include in the course one or several labs.
The labs topics can cover several topics presented in the lectures, for example can dealing with writing programs using the cross development platform tools and OS.
Such labs can greatly help in understanding and mastering the topics that will be covered in the lectures.
While lectures will deal with general theory and principles, the lab assignments will deal specifically with hands-on experience.
Following is a list of possible labs. Of course the specific issues and topics will be determined after discussing them with the customer.

Lab 1- The main purposes of this experiment are: to become familiar with all the hardware (sensors, track, A-D, I/O board, CPU, cage, etc.); to be introduced to TORNADO development environment; and to become familiar with loading and executing code on a target system.

Lab 2 – In this lab you will design, implement, and test a small real time program. This lab is intended to (1) let you become more familiar with both the development environment and with the needs of real time programming, (2) teach you programming with semaphores, (3) expose you to the concept of running multiple tasks, and (4) determine how to avoid collisions.

Lab 3 – In this lab you will investigate different scheduling orders on a series of tasks which must work in a real time environment.
The objective is to understand how to analyze off-line and then implement EDF scheduling on a commercial kernel. You will learn how to organize a task structure, and control the polling of sensors in these circumstances. You will learn how to use watchdog timers.

Lab 4 – In this lab you will investigate the design and implementation of an interrupt service routine for a real time system. This lab is a modification of lab 3. In lab 3 the program used a watchdog timer to react to changes on the track sensors. This can be replaced with an interrupt driven sensor routine. The DIO board can be programmed to generate an interrupt whenever bits on port 0 achieve a programmer specified level. This will allow a user written Interrupt Service Routine (ISR) to execute only when a car passes a sensor. The main objective is to gain a basic understanding of task design and scheduling when using interrupt service routines.

Course Outline:

1. Getting Started

• General Purpose Platform Components Overview
• Available Tools
• General Purpose Platform Feature Overview
• Directory Structure
• Help Resources
• Setting Up the Host Environment
• Booting a Target
• Connecting Host and Target
• VxWorks Simulator
• Getting Started Lab

2. Project Management

• Introduction to VxWorks Projects
• Project Explorer Overview
• Application Projects
• Build Specifications
• Project Management Lab

3. Debugging

• Debugger
• Feature Overview
• Configuration
• GUI and Usage Overview (setting breakpoints, etc.)
• Kernel-Space and Application-Space Debugging
• Debugging Lab

4. Using VxWorks Shells

• Introduction to VxWorks Shells
• Host Shell and Shell Interpreters
• Kernel Shell
• VxWorks Shell Lab

5. Real-Time Multitasking

• Multitasking Environment Overview
• Task Creation and Deletion
• Other Task APIs (taskDelay(), task variables, task hooks, etc.)
• Nonexecutable Stack Pages
• NULL Pointer Dereference Detection
• Text Segment Write Protection
• System Tasks
• Real-Time Multitasking Lab

6. VxWorks Events

• Event Register
• Task Synchronization
• Events Lab

7. Semaphores

• Semaphores and Synchronization
• Mutual Exclusion Semaphores
• Semaphores Lab

8. Intertask Communication

• Shared Memory
• Message Queues
• Pipes
• Intertask Communications Lab

9. Memory

• Memory Allocation
• Memory Partitions
• Memory Lab

10. Real-Time Processes (RTPs)

• RTP Overview
• RTP File Generation
• Starting an Application
• Shared Data Usage
• Shared Library Usage
• Real-Time Processes Lab

11. Exceptions, Interrupts, and Timers

• Exceptions
• Using Signals to Recover from Hardware Exceptions/Fatal

12. Errors

• Interrupts
• Interrupt Flow Example
• ISR Stack, ISR Restrictions
• Timers
• Watchdog Interface and Polling
• Auxiliary Clock for Polling at Higher Speed
• Exceptions, Interrupts, and Timers Lab

13. Error Management

• Error Reporting Framework
• Persistent Memory
• Error Records
• Error Detection and Reporting Configuration
• Error Detection and Reporting Lab

14. Summary