异步事件
异步支持
通常,您从周期中断源(例如硬件计时器)对计划从其生成代码的模型进行计时。采用周期性时钟的单速率模型中的模块以计时器中断速率(模型的基本速率)运行。采用周期性时钟多速率的模型中的模块以基本速率或该速率的倍数运行。
许多系统还必须支持模块的执行,以响应与系统的周期计时源有关的异步事件。例如,外围设备可能通过产生中断来发出信号通知输入操作已完成。系统必须处理这种中断,例如,通过从中断设备获取数据来处理。
本主题介绍如何使用模块为异步事件处理建模和生成代码,其中包括处理硬件生成的中断、计时器维护、异步读写操作以及实时操作系统 (RTOS) 下异步任务的生成。虽然这些模块是针对示例 RTOS 的,但内容中提供的源代码分析和其他信息可用于开发支持其他目标 RTOS 的异步事件处理的模块。
用于调用实时操作系统的模块库
要在模型中实现对实时操作系统 (RTOS) 的异步支持,请使用 vxlib1
或 Interrupt Template 模块库中的模块。这两个库都包括模块 Async Interrupt 和 Task Sync。使用 Async Interrupt 模块生成中断级代码。使用 Task Sync 模块生成调用函数调用子系统的 RTOS 任务。
模块库 vxlib1
还包括模块 Protected RT 和 Unprotected RT,它们是 Rate Transition 模块的预配置版本,用于确保数据传输期间的数据完整性或确保确定性数据传输。
这两个库中的模块作为示例模块,您可以按原样使用,或经过修改后来支持特定 RTOS。vxlib1
库中的模块配置为与 VxWorks® RTOS 交互。
要打开 vxlib1
模块库,请在 MATLAB® 命令提示符下输入 vxlib1
。
有关实现异步支持的详细信息
目的 | 相关信息 |
---|---|
生成中断服务例程 (ISR)。 | Generate Interrupt Service Routines |
自定义 Async Interrupt 和 Task Sync 模块以实现对 RTOS 的异步支持。 | Create a Customized Asynchronous Library |
在异步环境中使用预配置的 Rate Transition 模块。 | Rate Transitions and Asynchronous Blocks |
处理基于多任务速率的模型的速率转换。 | 基于时间的调度和代码生成 |
了解对 VxWorks RTOS 的系统调用。 | VxWorks 网站上的 Wind River® 系统文档 |
相关主题
1 VxWorks is a registered trademark of Wind River Systems, Inc.