刚刚接触Rt-thread操作系统,新建的几个线程通过系统休眠可以同时运行,之后想要信号量来对进程进行管理,可只能运行一个进程,
while(rt_sem_take(&led_turn_sem,RT_WAITING_FOREVER) == RT_EOK) 信号量没有得到,想请大侠们请教一下信号量的使用方法。
信号量可以设定一个值,允许最多又几个任务同时去访问共享资源。比如我给他设定一个5,那么对多就有5个任务能同时访问共享资源。每个任务获得信号量的时候就把信号量计数器减去1,这样,再第五个任务获取后,计数器是0.当第六个任务要去访问的时候申请信号量就只能等待了,等到之前的任务发一个信号出来,这样第六个任务才能去
这个信号量的值是怎么设置的? |