基于uC/OS-II的硬件任务管理器的制作方法

文档序号:6379153阅读:549来源:国知局
专利名称:基于uC/OS-II的硬件任务管理器的制作方法
技术领域
本发明涉及一种硬件任务管理器,属于嵌入式操作系统技术领域。
背景技术
uC/OS-II是一种应用广泛的嵌入式实时操作系统,它采用基于优先级的可剥夺内核,体积小巧,运行效率高。通过进一步研究发现,uC/OS-II内部核心的任务管理系统还有改善的空间。通过分析uC/OS-II内核源码可发现,当时钟中断到来时,内核需要调用 OSTimeTickO函数,进行任务扫描管理,主要过程如下I.关闭中断;2.如果任务处于阻塞态或延时态,将其延时计数器减1,如果延时计数器为0,则任务进入运行态;3.开启中断。每次调度时钟中断到来,内核需要处理64个任务信息,进行64次中断关断开启操作,进行大量的任务状态判断,占用了大量CPU时间,需要数千个CPU处理周期。根据任务数和任务状态不同,处理时间也不一样,开启的任务数量越多,消耗CPU时间也越多,这也增加了内核执行时间的不确定性。uC/OS-II的任务优先级排序设计的非常精巧,采用一个8x8任务就绪表实现,每次通过查询就绪表就可以快速找到正在运行的优先级最高的任务,比轮询操作更方便快捷,但依然需要十几个CPU处理时间,有改善的空间。综上所述,uC/OS-II为了通用性,采用了精巧的任务管理方式,对于特定的使用环境,可以对内核进行修改,以减小内核处理时间,增加内核调度时间确定性,实现更高的性倉泛。

发明内容
本发明所要解决的技术问题是对嵌入式操作系统内核进行改进,以减小内核处理时间,增加内核调度时间确定性,实现更高的性能。为解决上述技术问题,本发明提供一种基于UC/0S-II的硬件任务管理器,嵌入式操作系统包括CPU和FPGA,CPU与FPGA以总线方式相连,CPU通过地址空间访问FPGA的寄存器接口,控制硬件任务管理器,其特征在于在FPGA端设置有硬件任务管理器,硬件任务管理器包括全局管理模块和任务管理模块,所述全局管理模块包括当前最高优先级任务ID寄存器和时钟脉冲寄存器,所述任务管理模块有64个,每个uC/OS-II任务对应一个任务管理模块,每个任务管理模块包含任务状态寄存器、阻塞状态寄存器、阻塞超时结果寄存器和延时计数寄存器,当前优先级最高任务ID寄存器读取当前优先级最高任务ID寄存器可得到当前最高任务的ID,最高任务的ID是由各任务状态同步编码得到;
时钟脉冲寄存器时钟脉冲寄存器用于管理各任务状态,通知任务管理模块有时钟到来;任务状态寄存器任务状态寄存器如果是0,表明任务状态是挂起态,否则是运行态,CPU直接设置该寄存器,如果延时计数寄存器由I变为0,任务状态寄存器置为1,表明任务由挂起态进入运行态;阻塞状态寄存器阻塞状态寄存器为O表明任务进入运行态或延时态,为I为阻塞态,表明任务正在等待信号量或者消息队列,如果延时计数寄存器由I变为0,阻塞状态寄 存器置为0,表明任务由阻塞态进入运行态;阻塞超时结果寄存器如果延时计数寄存器由I变为0,且阻塞状态寄存器为1,则阻塞超时结果寄存器置为1,表明阻塞超时,否则为O ;延时计数寄存器通过设置延时计数寄存器,可以在任务延时态时指定任务延时时间,在任务阻塞态时设置任务阻塞等待时间,如果延时计数寄存器不为0,当CPU向时钟脉冲寄存器写I时,该寄存器值自动减I。本发明所达到的有益效果本发明充分利用FPGA的并行优势,当时钟中断到来时,只需要CPU向时钟脉冲寄存器写1,即可完成所有任务运行状态管理,然后可以立即获取当前最高优先级任务的ID,将需要耗费CPU数百甚至数千处理周期降低到只需要2个处理周期,与操作系统负载轻重无关,极大提高了操作系统的实时性。


图I为本发明CPU与FPGA的连接示意图。
具体实施例方式本发明通过分析uC/OS-II内核,提出了一种硬件任务管理器,以加快内核运行速度。目前大多嵌入式操作系统采用了 CPU+FPGA模式,在FPGA端可以方便的实现uC/OS-II任务管理器功能。CPU与FPGA以总线方式相连,CPU通过地址空间访问FPGA的寄存器接口,控制硬件任务管理器,如图I所示。硬件任务管理器包括全局管理模块和任务管理模块。全局管理模块包括当前最高优先级任务ID寄存器、时钟脉冲寄存器。任务管理模块有64个,每个uC/OS-II任务对应一个任务管理模块,每个任务管理模块包含任务状态寄存器、阻塞状态寄存器、阻塞超时结果寄存器、延时计数寄存器。各寄存器地址偏移编码如表I所示。表I
权利要求
1.一种基于UC/OS-II的硬件任务管理器,嵌入式操作系统包括CPU和FPGA,CPU与FPGA以总线方式相连,CPU通过地址空间访问FPGA的寄存器接口,控制硬件任务管理器,其特征在于在FPGA端设置有硬件任务管理器,硬件任务管理器包括全局管理模块和任务管理模块,所述全局管理模块包括当前最高优先级任务ID寄存器和时钟脉冲寄存器,所述任务管理模块有64个,每个uC/OS-II任务对应一个任务管理模块,每个任务管理模块包含任务状态寄存器、阻塞状态寄存器、阻塞超时结果寄存器和延时计数寄存器, 当前优先级最高任务ID寄存器读取当前优先级最高任务ID寄存器得到当前最高任务的ID,最闻任务的ID是由各任务状态同步编码得到; 时钟脉冲寄存器时钟脉冲寄存器用于管理各任务状态,通知任务管理模块有时钟到来; 任务状态寄存器任务状态寄存器如果是0,表明任务状态是挂起态,否则是运行态,CPU直接设置该寄存器,如果延时计数寄存器由I变为0,任务状态寄存器置为1,表明任务由挂起态进入运行态; 阻塞状态寄存器阻塞状态寄存器为O表明任务进入运行态或延时态,阻塞状态寄存器为I为阻塞态,表明任务正在等待信号量或者消息队列,如果延时计数寄存器由I变为0,阻塞状态寄存器置为0,表明任务由阻塞态进入运行态; 阻塞超时结果寄存器如果延时计数寄存器由I变为0,且阻塞状态寄存器为1,则阻塞超时结果寄存器置为1,表明阻塞超时,否则为O ; 延时计数寄存器通过设置延时计数寄存器,可以在任务延时态时指定任务延时时间,在任务阻塞态时设置任务阻塞等待时间,如果延时计数寄存器不为0,当CPU向时钟脉冲寄存器写I时,该寄存器值自动减I。
全文摘要
本发明公开了一种基于uC/OS-II的硬件任务管理器,嵌入式操作系统包括CPU和FPGA,CPU与FPGA以总线方式相连,CPU通过地址空间访问FPGA的寄存器接口,控制硬件任务管理器,其特征在于在FPGA端设置有硬件任务管理器,硬件任务管理器包括全局管理模块和任务管理模块,所述全局管理模块包括当前最高优先级任务ID寄存器和时钟脉冲寄存器,所述任务管理模块有64个,每个uC/OS-II任务对应一个任务管理模块,每个任务管理模块包含任务状态寄存器、阻塞状态寄存器、阻塞超时结果寄存器和延时计数寄存器。本发明极大地提高了操作系统的实时性。
文档编号G06F9/48GK102929714SQ20121039925
公开日2013年2月13日 申请日期2012年10月19日 优先权日2012年10月19日
发明者姚艳松, 陈靖公, 雍太利, 朱学海 申请人:国电南京自动化股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1