第十二周 第三天 2020-01-15

FreeRTOS信号量

二值信号量通常用于互斥访问或同步,二值信号量和互斥信号量非常类似,但是还是有一些细微的差别, 互斥信号量拥有优先级继承机制, 二值信号量没有优先级继承。 因此二值信号另更适合用于同步(任务与任务或任务与中断的同步)。二值信号量其实就是一个只有一个队列项的队列,这个特殊的队列要么是满的,要么是空的。


二值信号量创建函数
释放信号量
获取信号量
优先级翻转问题

互斥信号量其实就是一个拥有优先级继承的二值信号量,在同步的应用中(任务与任务或中断与任务之间的同步)二值信号量最适合。互斥信号量适合用于那些需要互斥访问的应用中。在互斥访问中互斥信号量相当于一个钥匙,当任务想要使用资源的时候就必须先获得这个钥匙,当使用完资源以后就必须归还这个钥匙,这样其他的任务就可以拿着这个钥匙去使用资源。

    互斥信号量可以可以降低优先级翻转带来的影响,但是互斥信号量不能用于中断服务函数:

    1、互斥信号量有优先级继承的机制,所以只能用在任务中,不能用于中断服务函数。

    2、中断服务函数中不能因为要等待互斥信号量而设置阻塞时间进入阻塞态。


互斥信号量创建函数

互斥信号量的获取和释放与二值信号量和计数型信号量一样!

软定时器:结束后会有因定时器产生的函数;用调度器切换;分为单次/循环两种模式;是么时候用是么时候开启

你可能感兴趣的:(第十二周 第三天 2020-01-15)