#include “OS.h”TASK(ExtendedTask){ for(; ;) { WaitEvent(Event1); /*Perform some actions in specific condition*/ ClearEvent(Event1); }} 基本任务与扩展任务的状态机切换如下图5所示: 图5 基本任务与扩展任务状态切换图如上图所示,基本任务没有等待状态,所以只能在任务启动与终结时进行...
任务使用WaitEvent(EventMask) API调用等待事件。EventMask必须与rtaoscfg中声明的EventMask对应。 WaitEvent()将事件作为其唯一参数。当调用执行时有两种可能: 1)该事件尚未发生。在这种情况下,任务将进入等待状态,RTA-OS将在就绪状态下运行最高优先级的任务。 2)事件已发生。在这种情况下,任务保持在运行状态,并将...
等待事件 任务通过WaitEvent(EventMask) API调用来等待事件。 WaitEvent()将事件作为唯一参数。当调用时可能有两种情况: 事件还没有发生 在这种情况下,任务会进入等待状态,OS会运行处于就绪状态的最高优先级任务。 事件已经发生 在这种情况下,任务保持在运行状态,并将在WaitEvent()调用之后的语句继续执行。
for(;;){ (void)WaitEvent( Rte_Ev_Cyclic2_Main_Task_0_10ms | Rte_Ev_Cyclic2_Main_Task_0_5ms ); (void)GetEvent(Main_Task, &ev); (void)ClearEvent(ev & ( Rte_Ev_Cyclic2_Main_Task_0_10ms | Rte_Ev_Cyclic2_Main_Task_0_5ms )); if ((ev & Rte_Ev_Cyclic2_Main_Task_0_10m...
RTA-RTE(AUTOSAR运行时环境生成器)可为符合AUTOSAR规范(R4.x、R3.x)的ECU软件提供运行时环境,提供配置生成运行时环境的多种选择:可检测arxml文件的正确性,以确保开发过程的高质量;可输出OS配置文件,以集成运行时环境和OS。 使用RTA-RTE优势: 1)通过ISO 26262(ASIL-D)认证; ...
#include “OS.h” TASK(BasicTask) { ... /*User Code*/ ... TerminateTask(); } 扩展任务的代码示例如下 #include “OS.h” TASK(ExtendedTask) { for(; ;) { WaitEvent(Event1); /*Perform some actions in specific condition*/ ClearEvent(Event1); ...
AUTOSAR OS继承OSEK OS,在OSEK OS的基础上又特别明确了AUTOSAR OS至少需要提供的系统服务如下: 基于优先级的调度; 及时的中断处理的能力; 中断优先级必定高于task; 通过StartOS()与StartOSHook()来创建启动接口; 通过ShutdownOS()与ShutdownOSHook()来创建关机接口; ...
任务<TaskID>的事件掩码的当前的状态被复制到<Event>。 涉及的任务应该是一个拓展的任务。 StatusType WaitEvent(EventMaskType <Mask>) 输入参数:Mask等待的事件的掩码 返回的Status值: 标准的:· 没有错误,E_OK 拓展的:· 调用任务不是拓展的任务,E_OS_ACCESS ...
AUTOSAR OS在OSEK OS的基础上,除了上述的基本特点之外,仍需要确保具备以下几点十分重要的属性: 是静态配置以及伸缩扩展; 支持实时性能推理; 提供基于优先级的调度策略; 在运行时提供保护功能(内存、定时等); 在低端控制器上是可托管的; 系统服务 AUTOSAR OS继承OSEK OS,在OSEK OS的基础上又特别明确了AUTOSAR OS...
创建一个Event,把这个Event和该Extend Task关联(需在配置工具中设置) 在该Task中需要等待的地方使用WaitEvent来等待事件 在收到报文的中断处理函数中,对该Event通过SetEvent进行设置事件 Event在此处完成的是类似于标志位Flag的功能。完成这三步,在收到报文后,OS会自动将该Event的状态设置为“发生”,并将Event关联的...