您现在的位置: 主页 > 嵌入式操作系统 > UC/OS ii > ucos ii优先级继承实验
本文所属标签:
为本文创立个标签吧:

ucos ii优先级继承实验

来源: 网络用户发布,如有版权联系网管删除 2016-06-06 

ucos ii优先级继承实验 --
标签: cotex-m3 it stm32学习 ucosii 初学操作系统
优先级继承的主要思想是:当高优先级任务因申请某共享资源失败被阻塞时,把当前拥有该资源的、且优先级较低的任务的优先级提升,提升的高度等于这个高优先级任务的优先级。
在ucos ii中,创建管理共享资源的互斥信号量时,可以指定一个PIP(优先级继承优先级),这个很重要,是这个实验的核心。
一个PIP可以用OSMutexCreate()函数来指定,例如mutex=OSMutexCreate(5,&err);就指定PIP的优先级为5.
例如:Task0的优先级为10,Task1的优先级为9,Task2的优先级为8;三个任务均要使用这个互斥信号量。当然,先运行的任务就会先申请到这个信号量。在这里, 假设Task0先运行。并Task1、Task2随后被创建并进入就绪态。
当Task0在使用互斥信号量并延时挂起时,此时Task2优先级最高,所以Task2运行,当想申请该资源时,被阻塞。这样又返回到Task0中,此时系统将Task0的优先级提升到5,让Task0运行并释放互斥信号量,释放该信号量后,Task0的优先级又返回原来的优先级10.
优先级的继承有以下条件
1、在启动任务前要创建互斥信号量mutex=OSMutexCreate(5,&err);即申请PIP
2、在Task0、1、2使用OSMutexPend(mutex,0,&err);函数来获得信号量的使用权;使用OSMutexPost(mutex);函数来释放互斥信号量的使用权。


              查看评论 回复



嵌入式交流网主页 > 嵌入式操作系统 > UC/OS ii > ucos ii优先级继承实验
 

"ucos ii优先级继承实验"的相关文章

网站地图

围观()