Asynchronous Events
Asynchronous Support
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 fixed-step size (fundamental sample time) 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.
You can 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.
Block library 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
data transfers.
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 vxlib1
library
are configured for interacting with the VxWorks® RTOS.
To open the vxlib1
block library, enter vxlib1
at the MATLAB® command prompt.
More Information on Implementing Asynchronous Support
Goal | Related Information |
---|---|
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 |
Specify an asynchronous function-call input to a referenced model. | Convert Asynchronous Subsystem to a Referenced Model |
Understand system calls to the VxWorks RTOS. | VxWorks system documentation on the Wind River® website |
Related Topics
1 VxWorks is a registered trademark of Wind River Systems, Inc.