微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的μC/OS-II任务管理硬件设计

基于FPGA的μC/OS-II任务管理硬件设计

时间:02-17 来源:互联网 点击:

数据处理流程如图5所示。

2.3 仿真及实验结果

整个设计采用VHDL硬件语言描述。为了验证该硬件实现的正确性和高效性,使用 ISE 8.2软件进行时序仿真验证。任务管理硬件实现的功能仿真如图6所示。

(1)建立任务。依次建立3个任务,优先级与ID号相同分别为7、1和6。若系统中只有优先级为7的任务处于就绪态,则Next_task_id为7;当建立了优先级为1的任务时,高优先级任务剥夺低优先级任务的CPU使用权,Next_task_id为1,直到有更高优先级的任务到来,或任务自身删除,优先级为1的任务将一直执行。

(2)查询任务。处理器通过查询任务这个系统调用获得任务自身或其他应用任务的信息,查询即将TCB的内容输出。

(3)挂起任务。挂起优先级为1的任务,则优先级为6的任务开始执行。挂起的任务处于等待状态,只有通过调用任务恢复函数才能恢复。

(4)建立任务。建立优先级分别为5、2和4的3个任务。优先级为5的任务剥夺优先级为6的任务的CPU使用权,优先级为2的任务又剥夺优先级为5的任务的CPU使用权开始执行,优先级为4的任务等待。

(5)删除任务。删除了优先级为2的任务,此刻系统中优先级为4的任务开始执行。

(6)恢复任务。恢复优先级为1的任务,优先级为1的任务剥夺优先级为4的任务的CPU使用权又重新开始执行。

从图6可以看出,硬件实现可以高效完成操作系统任务管理的系统调用的功能。建立任务和删除任务需要3个时钟节拍,挂起任务、恢复任务和查询任务的状态需要1个时钟节拍。任务调度是实时的,只要任务的状态或优先级有一个发生改变,就立刻重新调度。该设计所消耗的逻辑资源较少,降低了开发成本,使其集成组件成为可能。

本文针对传统实时操作系统内核占用系统资源、影响系统实时性的问题,提出了用单独的硬件电路实现实时操作系统中的系统调用和任务调度器的方案。重点给出了采用FPGA实现μC/OS-Ⅱ任务管理模块的过程。仿真结果表明,任务管理的硬件实现保持了系统调用的正确性,同时减少了系统调用的执行时间、降低了处理器系统开销。因此,硬件RTOS的实现,具有一定研究和使用价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top