Normally, you time models from which you plan to generate code from a periodic interrupt source (for example, a hardware timer). Blocks in a periodically clocked single-rate model run at a timer interrupt rate (the base rate of the model). Blocks in a periodically clocked multirate model run at the base rate or at multiples of that rate.
Many systems must also support execution of blocks in response to events that are asynchronous with respect to the periodic timing source of the system. For example, a peripheral device might signal completion of an input operation by generating an interrupt. The system must service such interrupts, for example, by acquiring data from the interrupting device.
This topic explains how to use blocks to model and generate code for asynchronous event handling, including servicing of hardware-generated interrupts, maintenance of timers, asynchronous read and write operations, and spawning of asynchronous tasks under a real-time operating system (RTOS). Although the blocks target an example RTOS, the content provides source code analysis and other information you can use to develop blocks that support asynchronous event handling for an alternative target RTOS.
Block Libraries for Calls to an Real-Time Operating System
To implement asynchronous support for a real-time operating system (RTOS) in a model,
use blocks in the
vxlib1 or Interrupt Templates block library. Both
libraries include blocks Async Interrupt and Task
Sync. Use the Async Interrupt block to generate interrupt-level
code. Use the Task Sync block to spawn an RTOS task that calls a
function call subsystem.
vxlib1 also includes blocks Protected RT
and Unprotected RT, which are versions of the Rate Transition block that are
preconfigured for ensuring data integrity during data transfers or ensuring deterministic
Blocks in the two libraries serve as examples that you can use as is or, with
modification, to support a specific RTOS. Blocks in the
are configured for interacting with the VxWorks® RTOS.
To open the
vxlib1 block library, enter
at the MATLAB® command prompt.
More Information on Implementing Asynchronous Support
|Generate an interrupt service routine (ISR).||Generate Interrupt Service Routines|
|Customize the Async Interrupt and Task Sync blocks for implementing asynchronous support for an RTOS.||Create a Customized Asynchronous Library|
|Use the preconfigured Rate Transition blocks in an asynchronous context.||Rate Transitions and Asynchronous Blocks|
|Handle rate transitions for multitasking rate-based models.||Time-Based Scheduling and Code Generation|
|Understand system calls to the VxWorks RTOS.||VxWorks system documentation on the Wind River® website|
1 VxWorks is a registered trademark of Wind River Systems, Inc.