论文部分内容阅读
嵌入式实时操作系统是在嵌入式系统的基础上发展起来的,其优点是在原系统中加入了对响应时间的要求。原因是,当外界事件或数据产生时,实时系统不仅要求产生相应的控制信号或正确的结果,并且要求必须在规定的时间之内。目前,处理器往往依靠集成多个内核来提升处理速度,而多个处理器协作执行任务加大了操作系统的管理难度,对操作系统的要求也越来越高。然而,设计一款可同时运行多个不同种类的软件或任务的操作系统是一项庞大的工程,不仅需要高度专业的软件开发团队协作,而且需要花费大量的资源和时间。因此,修改现有的操作系统,拓展其应用范围,使其能满足特定需求不失为明智之举。本文以嵌入式实时操作系统μC/OS-II为研究对象,针对μC/OS-II不支持同优先级任务轮转调度的问题,提出了二级混合任务调度策略,并在FPGA上实现了其部分硬件逻辑。首先,在充分分析了经典实时调度算法和μC/OS-II任务调度机制的基础上,提出二级任务调度策略。其中,在第一级调度中,以任务优先级高低作为任务调度的标准,采用抢占式调度方式对具有不同优先级的任务进行调度;在第二级调度中,采用时间片轮转调度方式,对具有相同优先级的任务进行公平的轮转调度。其次,为了实现二级调度,扩充了μC/OS-II中的两个重要数据结构任务控制块和事件控制块,添加了任务组管理模块,并采用FPGA片内的寄存器实现了等待任务列表和任务就绪表以及任务组列表。设计了任务管理的硬件模块主要包括优先级查找电路(第一级调度算法)和轮转任务查找电路(第二级调度算法)。然后,为适应改进后的算法,设计了事件管理的硬件模块。本文的软件开发平台为Xilinx公司的ISE10.1,硬件开发平台XUP ViterxPRO-II。采用VHDL硬件描述语言描述各个功能模块,并完成了功能仿真及验证。