Async Interrupt
生成执行下游子系统或 Task Sync 模块的 Versa Module Eurocard (VME) 中断服务例程 (ISR)
库:
Simulink Coder /
Asynchronous /
Interrupt Templates
描述
对于示例 RTOS (VxWorks®) 中的每个指定 VME 中断级别,Async Interrupt 模块都会生成一个中断服务例程 (ISR),该例程调用以下项之一:
函数调用子系统
Task Sync 模块
为函数调用输入事件配置的 Stateflow® 图
注意
使用 Interrupt Templates 模块库中的模块(Async Interrupt 和 Task Sync)进行仿真和代码生成。您可用使用这些模块提供的示例作为起点,帮助您为目标环境开发自定义模块。
假设和限制
该模块支持 VME 中断 1 到 7。
该模块使用这些 RTOS (VxWorks) 系统调用:
sysIntEnable
sysIntDisable
intConnect
intLock
intUnlock
tickGet
性能方面的考虑
在中断级别执行大型子系统会对系统中同等优先级和更低优先级中断的中断响应时间产生重大影响。通常,最好使 ISR 尽可能短。仅将包含几个模块的函数调用子系统连接到 Async Interrupt 模块。
对于大型子系统,更好的解决方案是使用 Task Sync 模块将函数调用子系统的执行与 RTOS 任务同步。将 Task Sync 模块放在 Async Interrupt 模块和函数调用子系统之间。然后,Async Interrupt 模块使用 Task Sync 模块作为 ISR。ISR 向任务释放同步信号量(执行 semGive
),并立即从中断级别返回。然后,示例 RTOS (VxWorks) 调度并运行该任务。请参阅 Task Sync 模块的说明。
示例
端口
输入
输出
参数
版本历史记录
在 R2006a 中推出