论文部分内容阅读
随着电子及计算机技术在汽车上的广泛应用,高档汽车上微处理器的数量已超过70个,汽车已进入智能化时代。欧洲汽车工业界提出了OSEK/VDX标准,该标准打破了世界汽车行业封闭的软件开发模式,满足了日益复杂的汽车电子控制软件的开发需要,实现了应用软件的可移植性和不同厂商控制模块间的可兼容性。本文介绍了OSEK/VDX标准,重点分析了此标准的操作系统模块OSEK OS规范。然后分析了嵌入式实时操作系统uC/OS-II的内核,主要分析了此操作系统的任务管理和任务间的通讯和同步机制。本文的重点是根据OSEK OS规范,对uC/OS-II进行改进,具体改进如下:(1)根据OSEK OS的定义,数值0被定义为任务的最低优先级,较大的数值代表了更高的优先级。而uC/OS-II与此规定相反,较大数值的任务优先级较低,数值0被定义为最高优先级。为了使改进后的系统符合OSEK OS规范,需要改进操作系统内核的优先级判定方法;(2)在uC/OS-II中,同一优先级有且只有一个任务,即不支持同一优先级多个任务;而OSEK OS规范定义的符合性类BCC2和ECC2,则规定同一优先级应支持多个任务,且同优先级任务按FIFO的顺序进行调度。因此,需要改进此操作系统的任务管理机制;(3)OSEK OS规范提出使用优先级上限协议来解决出现的优先级反转问题,需要改进uC/OS-II,使其支持OSEK OS规定的优先级上限协议。最后,在X86平台上对uC/OS-II内核的改进进行了测试,并分析了结果,测试内容如下:(1)测试改进后的操作系统的任务优先级判定方法的正确性;(2)测试改进后的操作系统是否支持同优先级多任务,在同一优先级中的多个任务是否按FIFO顺序执行。(3)测试是否支持OSEK OS规范规定的优先级上限协议。测试结果验证了以上改进的正确性。