UCOS
AyaoGGLi
工程师
展开
-
uC/OS信号量Pend和Post都会做些什么
作者:jk.li (jk.li@foxmail.com)一个例子 前提:有三个任务,优先级为4、5、6,并且优先级最低的最先运行,同时三个任务都会使用同一个信号量,信号量初始值为1. 第1步:信号量被创建,cnt=1,这时候任务就绪列表为空,信号量等待列表为空。 第2步:任务6开始执行,试图获得信号量由于cnt为1,所以会得到信号量得到后cnt减一变为0,这时候任务就绪列表为转载 2011-12-09 20:38:51 · 5889 阅读 · 0 评论 -
uC/OS事件标志组(event flag)
作者:jk.li (jk.li@foxmail.com) 引入事件标志组的目的是为了,在一个任务和多个任务之间进行同步,例如有一做饭任务,需要打水任务和买米任务的支持,只有打水任务和买米任务都完成后,做饭任务在开始执行。 等待类型一共有4中分别是: OS_FLAG_WAIT_SET_ALL OS_FLAG_WAIT_SET_ANY OS_FLAG_WAIT_CLR_A转载 2011-12-09 20:43:18 · 3396 阅读 · 0 评论 -
uC/OS互斥量
uc的互斥量,其实可以使用初值为1的信号量来达到互斥,uc的互斥为了防止优先级翻转,做了如下工作,当一个低优先级任务拥有互斥量,而同时一个高优先级的任务在等待一个互斥量的时候,uc会提升拥有互斥量任务的优先级,让其可以尽早执行早释放互斥量(优先级会降回原来的),达到减少等待的目的。转载 2011-12-09 20:47:17 · 784 阅读 · 0 评论