大连理工大学专业学位硕士学位论文
“FCFS”的调度方式,所以MX—OS并不是真正意义的RTOS(Real
System)。TimeOperation
Task的本质是模块内部的一个处理流程,MX.OS中的Task列表(tasktbl.c)中各Task为各个模块的入口函数,入口函数中会对“外界”的触发条件进行判断(Process—Check过程),然后进行相应的动作,即模块内各功能函数的调用。
周期管理:
MX.OS系统中提供了专门用于周期调用任务的接口,用户可以在指定的位置进行任务的添加注册,这是MX—OS系统维护的专有任务为所有功能模块共享的。系统中定义的周期是4ms,并同时预留了8ms,16ms,64ms定周期任务注册的接口。
中断管理:
MX—OS系统的中断处理采用了“硬件机制”,实现的过程主要是采用直接启动中断Handler(处理程序)的方式来响应中断,这种中断Handler不需要通过OS的管理参与,直接启动中断处理专用程序。
“Event驱动”的程序设计思想:
软件系统中任何动作的执行都要以一定的条件为基础,通常称引起动作的时间为Trigger(触发),类似于OOP中“Message条件”为基础,通常称引起动作的时间为Trigger(触发),类似于OOP中“Message驱动”的程序实现机制,在MX-OS中引入了Event(事件)的概念以其作为模块间的通信的载体。
Event的本质是一个“条件触发”的信息,发送该信息的目的在于通知信息的接收者执行一个指定的Task,从信息接收者的角度看来,接收到这个Event就是其决定执行下一个Task的判定条件。因此Event的发送和接收就成为了决定整个系统Task执行的动力和原因。映射到具体的程序实现中,Event可以以一个结构体的形式表示出来(MX.OS中以一个全局变量‘MON_temp_MessageStruct’进行相关信息的取得)【91。Event结构定义为
structm_entry{
SrcModulelD;//SrcModuleID:INT8U
INT8UEvent发送者——源ModuleID;DestModulelD;//DestModulelD:Event接受者——目标ModuleID;
Event;INTl6U
Optiontu//Event:Event的ID号;EventOpt;//EventOpt:传递的参数;
);
Task与Event之间的关系表现为:发送Event的目的在于驱动Task的执行,而Event的发送和接收本身就是一个Task。对于发送Event的Task来说,其本质的目的就是对