这个例子说明了如何模拟和产生的实时多任务系统的异步事件代码。
打开示例模型rtwdemo_async_mdlreftop
。
一个阅读任务和一个写作任务之间进行数据传输。
上一个字节大小的变量的读或写操作是原子。
当两个任务进行交互,只有一个能够抢占其他。
对于周期性任务,用更快的速度任务比具有速度较慢的任务更高的优先级。用更快的速度抢占任务与速度较慢的任务。
任务在一个处理器上运行。时间分片是不允许的。
流程不死机,重启,尤其是当数据在任务之间传递。
模拟模型。默认情况下,该模型被配置以不同的颜色来显示采样时间。用于输入和输出的离散采样时间分别出现红色和绿色。常量是洋红色。异步中断是紫色。率转换块,这是混合(输入和输出的采样时间可以不同),出现黄色。
生成代码和模型中的代码生成报告。异步中断块和任务同步块生成的代码是用于示例RTOS(VxWorks的)。但是,您可以修改块以产生另一运行时环境的代码。
1.创建用于构建和检查过程中的临时文件夹。
2.建立模型。
打开生成的源文件rtwdemo_async_mdlreftop.c
。初始化代码连接和支持ISRisr_num1_vec192
中断1和ISRisr_num2_vec193
中断2。
在生成的源文件rtwdemo_async_mdlreftop.c
,审查的ISR代码isr_num1_vec192
和isr_num2_vec293
。每个ISR:
禁用中断。
保存浮点上下文。
要求连接到接收该中断的参考模型INPORT块子系统生成的代码。
恢复浮点环境。
重新启用中断。
任务同步块生成以下终止代码。
数据加载到根电平输入端口(万博1manbetxSimulink的)