主要内容

异步中断

生成Versa Module Eurocard (VME)中断服务例程(ISRs),用于执行下游子系统或任务同步块

  • 库:
  • 万博1manbetxSimulink Coder /异步/中断模板

  • 异步中断块

描述

对于示例RTOS (VxWorks . js)中的每个指定的VME中断级别®),异步中断block生成一个中断服务例程(ISR),它调用下列程序之一:

  • 函数调用子系统

  • 一个任务同步

  • 一个Stateflow®为函数调用输入事件配置的图表

请注意

使用中断模板块库中的块(异步中断而且任务同步)进行模拟和代码生成。这些块提供了起点示例,以帮助您为目标环境开发自定义块。

假设和限制

  • 该块支持VME中断1万博1manbetx到7。

  • 该块使用这些RTOS (VxWorks)系统调用:

    sysIntEnable
    sysIntDisable
    intConnect
    intLock
    intUnlock
    tickGet

性能考虑

在中断级别上执行大型子系统会对系统中同等优先级和较低优先级中断的中断响应时间产生重大影响。通常,最好使isr尽可能短。只将包含少量块的函数调用子系统连接到异步中断块。

对于大型子系统,更好的解决方案是使用任务同步块将函数调用子系统的执行同步到RTOS任务。把任务同步块之间的异步中断块和函数调用子系统。的异步中断块,然后使用任务同步block作为ISR。ISR释放一个同步信号量(执行一个semGive)到任务,并立即从中断级别返回。示例RTOS (VxWorks)然后调度并运行任务。的描述任务同步块。

港口

输入

全部展开

模拟中断源,指定为标量或向量。

输出

全部展开

这些模型元素的控制信号,指定为标量或向量:

  • 函数调用子系统

  • 任务同步块

  • 为函数调用输入事件配置的状态流程图

参数

全部展开

要安装的中断的VME中断号数组。有效范围为1 . . 7

的宽度异步中断块输出信号对应于指定的VME中断数。

请注意

一个模型可以包含多个异步中断块。但是,如果您使用多个异步中断块,不要重复每个块中指定的VME中断号。

与为参数输入的VME中断号相对应的唯一中断矢量偏移数数组VME中断数.状态流软件将偏移量传递给RTOS (VxWorks)调用intConnect(INUM_TO_IVEC(抵消),…)

的仿真软万博1manbetx件®下游块的优先级。的每个输出异步中断块驱动下游块(例如,函数调用子系统)。指定与为参数指定的VME中断号对应的优先级数组VME中断数

参数万博1manbetxSimulink任务优先级值是生成速率转换代码所必需的(参见速率转换和异步块).万博1manbetx当异步任务必须从其基本速率或调用者获得实时时,还需要Simulink任务优先级值来保持绝对时间完整性。分配的优先级通常高于分配给周期性任务的优先级。

请注意

Simu万博1manbetxlink软件不模拟异步任务行为。异步任务的任务优先级仅用于代码生成目的,在模拟期间不执行。

的输出信号,将此选项设置为1异步中断block驱动Task Sync块。

在示例RTOS (VxWorks)中,高优先级中断可以抢占低优先级中断。为了在ISR执行期间锁定中断,将抢占标志设置为0。此设置导致生成intLock ()而且intUnlock ()在ISR代码的开头和结尾调用。小心使用中断锁定,因为它会增加系统在中断时的中断响应时间intLockLevelSet ()水平及以下。指定与为参数输入的VME中断号对应的标志数组VME中断数

请注意

数组中指定参数的元素个数VME中断矢量偏移量(s)而且万博1manbetxSimulink任务优先级必须匹配为参数指定的数组中的元素数量VME中断数

选项生成的ISR异步中断Block通过从硬件计时器读取绝对时间来管理自己的计时器。使用参数指定硬件定时器的大小计时器的大小

ISRs定时器的分辨率。类型生成的isr异步中断块维护自己的绝对时间计数器。默认情况下,这些计时器从RTOS (VxWorks)内核中获取它们的值tickGet调用。参数计时器分辨率确定这些计数器的分辨率。默认分辨率为1/60第二。的tickGet您的电路板支持包(BSP)的分辨率可能不同。万博1manbetx确定tickGet您的BSP的分辨率,并输入它作为参数计时器分辨率

如果您的目标RTOS不是示例RTOS (VxWorks),请替换tickGet对目标RTOS的等价调用。或者,生成代码来读取目标硬件上的计时器寄存器。有关更多信息,请参见异步任务中的定时器而且异步中断块实现

存储硬件计时器时钟滴答的比特数。类型生成的ISR异步中断块在选择参数时使用计时器大小管理自己的定时器.大小可以是32位(默认),16位8位,或汽车.如果您选择汽车时,代码生成器根据参数的设置确定定时器大小应用程序生命周期(天)而且计时器分辨率

缺省情况下,定时器值存储为32位整数。当参数计时器的大小设置为汽车,可以通过设置参数间接控制计数器的字长应用程序生命周期(天).如果你设置应用程序生命周期(天)如果值太大,代码生成器无法将其作为指定分辨率的32位整数处理,则代码生成器使用第二个32位整数来寻址溢出。

有关更多信息,请参见控制时间计数器的内存分配.另请参阅异步任务中的定时器

如果选中,则Simulink软件将万博1manbetx在异步中断块。此端口仅用于模拟。将一个或多个模拟中断源连接到模拟输入。

请注意

在生成代码之前,请考虑删除驱动模拟输入的块,以防止这些块对生成的代码做出贡献。或者,您可以将Variant Source块与变型控制方式参数设置为Sim码原交换,详见双模型方法:代码生成.如果您使用Variant Source块,则驱动块的样本时间贡献为生成代码中支持的样本时间。万博1manbetx

版本历史

在R2006a中引入

另请参阅