Semaphore信号量概念及其介绍

时间: 2024-03-11 作者: 立博公司总进球数怎么看

  量即Semaphore。信号量大多数都用在操控和维护使命对特定资源的拜访。的信号量分为二值信号量、计数型信号量和互斥信号量。其间互斥信号量即Mu

  在FreeRTOS中,二值信号量和计数信号量在创立方法和功能上没有差异,两者差异仅为二值信号量token数为1;而计数信号量token>

  1。

  图示为CMSIS-RTOS的信号量笼统原理图。体系创立信号量,同时指定信号量内token(object)数量。线程(使命)可进行拿取/放入token的操作。

  ①放入token:线程能够向信号量中放入token。调用一次相应函数即放入一个。若当时信号量已满则报错。 ②拿取token: 线程向信号量中拿取token。和音讯行列相同,取操作可设为堵塞超时时刻。当音讯量中无token时,线程进入

  态。当等候的时刻超过了指定的堵塞时刻,即便行列中尚无数据,使命也会主动从堵塞态搬运为

  能够经过函数 **osSemaphoreNew() **创立信号量。在创立时,能够再一次进行挑选信号量可包容token的数量、初始token数; 并能传入装备结构体。当创立失利时回来NULL。

  ※当在中止中运用该函数时,堵塞延时时刻timeout应设置为0U,不然报Parameter过错。

  线程调用该函数时,当音讯量中无token时,线程进入BLOCK状况等候音讯量被放入token。在此期间当使命检测到音讯量放入token时,将主动由****BLOCK态搬运为READY态。当等候的时刻超过了指定的堵塞时刻,即便行列中尚无数据,使命也会主动从堵塞态搬运为READY态。此刻程序会回来osErrorTimeout过错。若没有设置堵塞超时且参数正确,回来osErrorResource过错**。**

上一篇: 【每日一企】江门市新会永华不锈钢制品有限公司

下一篇: 中级口译翻译部分十大牛词(三)

成功案例success case