一.为什么要使用信号量?
当多任务对于共享资源区同时进行访问时,例如创建两个任务同时对某个数组进行输入时,如果不使用信号量,就回发生不可预知的错误。
注意:信号量分为二进制信号量和计数型信号量,当任务数超过2个时只能使用计数型信号量;只有在共享资源的情况下可以使用信号量,在中断服务程序中则不可以;
二.使用信号量直接访问共享资源区
第一步:创建信号量:
第二步:配置信号量:
第三步:调用信号量:
请求信号量:
释放信号量:
四.任务内嵌信号量实验
与上述信号量不同的是,前面我们使用信号量都需要创建跟定义,但是UCOSIII每个任务都可以有自己的内嵌信号量,可以简化代码。而且比独立的信号量更有效