运行下游函数调用子系统的代码或Stateflow通过生成一个示例RTOS (VxWorks)任务
金宝appSimulink编码器/异步/中断模板
的任务同步block生成一个示例RTOS (VxWorks)任务,该任务调用函数调用子系统或statflow®图表。通常,你放置任务同步块之间的异步中断块和函数调用子系统块或状态流程图。或者,你可以把任务同步阻塞到具有事件的状态流图的输出端口,输出仿真软件金宝app
,配置为函数调用。
的任务同步布洛克:
使用RTOS (VxWorks)系统调用taskSpawn
产生一个独立的任务。当任务被激活时,它将调用下游函数调用子系统代码或状态流程图。块调用taskDelete
在模型终止期间删除任务。
创建一个信号量,使连接的子系统与块的执行同步。
将生成的任务封装在一个infinite中为
循环。在循环中,派生的任务通过使用semTake
.第一个呼叫semTake
指定NO_WAIT
.这个设置让任务决定是否有第二个semGive
已发生在功能调用子系统或图表完成之前。该顺序表示中断速率过快或任务优先级过低。
生成同步代码(例如,semGive ()
).这段代码允许生成的任务运行。该任务依次调用连接的函数调用子系统代码。同步代码可以在中断级别运行。两者之间的联系异步中断和任务同步块完成此操作并触发任务同步块在一个ISR。
如果下游算法代码中的块需要绝对时间,则提供绝对时间。时间来自由维护的定时器异步中断块或来自与之关联的任务维护的独立计时器任务同步块。
在设计应用程序时,请考虑何时可以为连接到任务同步块。默认情况下,当RTOS (VxWorks)激活任务时读取时间和输入数据。在这种情况下,数据(输入和时间)被同步到任务本身。如果您选择将此任务的数据传输与调用者任务同步选择和任务同步块驱动程序是异步中断块,时间和输入数据读取时,中断发生(即,在ISR)。在这种情况下,数据与任务同步块。