主权项 |
一种基于uC/OS‑II的硬件任务管理器,嵌入式操作系统包括CPU和FPGA,CPU与FPGA以总线方式相连,CPU通过地址空间访问FPGA的寄存器接口,控制硬件任务管理器,其特征在于:在FPGA端设置有硬件任务管理器,硬件任务管理器包括全局管理模块和任务管理模块,所述全局管理模块包括当前最高优先级任务ID寄存器和时钟脉冲寄存器,所述任务管理模块有64个,每个uC/OS‑II任务对应一个任务管理模块,每个任务管理模块包含任务状态寄存器、阻塞状态寄存器、阻塞超时结果寄存器和延时计数寄存器,当前优先级最高任务ID寄存器:读取当前优先级最高任务ID寄存器得到当前最高任务的ID,最高任务的ID是由各任务状态同步编码得到;时钟脉冲寄存器:时钟脉冲寄存器用于管理各任务状态,通知任务管理模块有时钟到来;任务状态寄存器:任务状态寄存器如果是0,表明任务状态是挂起态,否则是运行态,CPU直接设置该寄存器,如果延时计数寄存器由1变为0,任务状态寄存器置为1,表明任务由挂起态进入运行态;阻塞状态寄存器:阻塞状态寄存器为0表明任务进入运行态或延时态,阻塞状态寄存器为1为阻塞态,表明任务正在等待信号量或者消息队列,如果延时计数寄存器由1变为0,阻塞状态寄存器置为0,表明任务由阻塞态进入运行态;阻塞超时结果寄存器:如果延时计数寄存器由1变为0,且阻塞状态寄存器为1,则阻塞超时结果寄存器置为1,表明阻塞超时,否则为0;延时计数寄存器:通过设置延时计数寄存器,可以在任务延时态时指定任务延时时间,在任务阻塞态时设置任务阻塞等待时间,如果延时计数寄存器不为0,当CPU向时钟脉冲寄存器写1时,该寄存器值自动减1。 |