UCOS-III 信号量的那些事

一.为什么要使用信号量?

当多任务对于共享资源区同时进行访问时,例如创建两个任务同时对某个数组进行输入时,如果不使用信号量,就回发生不可预知的错误。


UCOS-III 信号量的那些事_第1张图片

注意:信号量分为二进制信号量和计数型信号量,当任务数超过2个时只能使用计数型信号量;只有在共享资源的情况下可以使用信号量,在中断服务程序中则不可以;

二.使用信号量直接访问共享资源区

第一步:创建信号量:


定义信号量

第二步:配置信号量:


UCOS-III 信号量的那些事_第2张图片
二进制信号量

第三步:调用信号量:


UCOS-III 信号量的那些事_第3张图片
(1)为请求使用信号量 ,(2)为释放信号量

请求信号量:

UCOS-III 信号量的那些事_第4张图片

释放信号量:


UCOS-III 信号量的那些事_第5张图片


四.任务内嵌信号量实验

与上述信号量不同的是,前面我们使用信号量都需要创建跟定义,但是UCOSIII每个任务都可以有自己的内嵌信号量,可以简化代码。而且比独立的信号量更有效


UCOS-III 信号量的那些事_第6张图片


UCOS-III 信号量的那些事_第7张图片
等待任务信号量


UCOS-III 信号量的那些事_第8张图片
发布信号量


发送


请求

你可能感兴趣的:(UCOS-III 信号量的那些事)