任务同步

下游函数调用子系统的运行代码或Stateflow的通过产生一个例子RTOS图(VxWorks的)任务

  • 图书馆:
  • 万博1manbetxSimulink的编码器/异步/中断模板

描述

任务同步块产卵调用一个函数调用子系统或Stateflow的一个例子RTOS(VxWorks的)任务®图表。通常情况下,您将任务同步的块之间异步中断块和函数调用子系统块或状态流图表。或者,你可以连接任务同步块到具有事件的状态流图的输出端口,输出到Simulin万博1manbetxk中,被配置为一个函数调用。

任务同步块:

  • 采用RTOS(VxWorks的)系统调用taskSpawn产卵一个独立的任务。当任务被激活时,它调用下游函数调用子系统代码或状态流图表。该块调用taskDelete模型终止时删除任务。

  • 创建一个信号到已连接子系统与块的执行同步。

  • 包裹催生任务无限对于循环。在循环中,衍生的任务,通过使用侦听信号semTake。第一次调用semTake指定NO_WAIT。此设置允许该任务确定是否第二semGive函数调用子系统或图表完成之前已经发生。这一顺序表明中断速度过快或任务优先级太低。

  • 生成同步码(例如,semGive())。此代码让催生任务运行。反过来任务调用连接函数调用子系统的代码。同步码可以在中断级别运行。该之间的连接异步中断任务同步块完成的这种操作和触发器执行任务同步一个ISR内的块。

  • 供应绝对时间,如果在下游算法代码块需要它。时间来自于由维护定时器异步中断块或来自一个独立的定时器保持通过与相关联的任务任务同步块。

当你设计你的应用程序,考虑当可以采取连接到下游的函数调用子系统定时器和信号输入值任务同步块。默认情况下,当RTOS(VxWorks的)激活任务的时间和输入数据被读取。对于这种情况下,数据(输入和时间)被同步到任务本身。如果您选择同步此任务与呼叫者任务数据传输选项和任务同步块驱动程序是一个异步中断块,当中断发生时的时间和输入数据被读出(即,内ISR)。对于这种情况,数据与的呼叫者同步任务同步块。

注意

您可以使用该块vxlib1图书馆 (异步中断任务同步),用于模拟和代码生成。这些模块提供了出发点的例子来帮助您开发定制模块为目标环境。

端口

输入

展开全部

从呼叫异步中断块。

输出参数

展开全部

调用一个函数调用子系统。

参数

展开全部

传递给第一个参数taskSpawn系统调用在RTOS。该RTOS(VxWorks的)使用该名称作为任务功能名称。此名称也可作为辅助调试。程序使用任务名称来标识从调用它们的任务。

催生当RTOS任务优先级分配给函数调用子系统任务。RTOS(VxWorks的)优先级的范围从0到255,其中0表示优先级最高。

注意

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

到该任务的堆栈可以增长的最大大小。当RTOS(VxWorks的)派生任务堆栈大小进行分配。选择基于任务的局部变量的数量堆栈大小。通过检查所生成的代码(即从所生成的代码中调用和函数)的任务确定的大小。

如果未选择(默认),

  • 块保持一个计时器,它提供由下游块的计算所需的绝对时间值。计时器是独立于由保持定时器的异步中断阻塞调用任务同步块。

  • 一个计时器分辨率选项出现。

  • 定时器大小选项指定的时间计数器的字大小。

如果选择,

  • 该块没有保持独立的计时器和不显示计时器分辨率领域。

  • 需要定时器下游块使用由维护定时器异步中断阻塞调用任务同步块(参见在异步任务定时器)。定时器的值是在异步的中断服务时读取。数据传输到被调用块任务同步块与相关联的任务中执行异步中断块。因此,数据传输与呼叫者同步。

以秒为单位块的计时器的分辨率。此选项只有在同步此任务与呼叫者任务数据传输没有被选中。默认情况下,该块通过调用得到定时器的值tickGet在RTOS(VxWorks的)函数。默认分辨率为1/60秒。

的比特数来存储用于硬件定时器的时钟滴答声。大小可32位(缺省值),16位8位, 要么汽车。如果您选择汽车中,代码生成器确定基于所述设置定时器大小应用程序生命周期(天)计时器分辨率

默认情况下,计时器值存储为32位整数。什么时候定时器大小汽车,可以间接地通过设置控制计数器的字大小应用程序生命周期(天)选项。如果设置应用程序生命周期(天)到对于代码生成器手柄作为指定分辨率的32位整数太大的值,它采用了第二个32位整数地址溢出。

欲了解更多信息,请参阅控制内存分配时间计数器。也可以看看在异步任务定时器

也可以看看

主题

介绍了在R2006a