UCOS-III 信号量的那些事

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

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


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

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

第一步:创建信号量:


定义信号量

第二步:配置信号量:


二进制信号量

第三步:调用信号量:


(1)为请求使用信号量 ,(2)为释放信号量

请求信号量:

释放信号量:



四.任务内嵌信号量实验

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



等待任务信号量


发布信号量


发送


请求
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,029评论 25 708
  • JSON数据解析: JSON的简单介绍:什么是JSONJSON以一种轻量级的数据格式,一般用来数据交互服务器返回给...
    木子尚武阅读 307评论 0 0
  • 清新甜美的班得瑞音乐将我从这杂乱的思绪解脱了出来, 每次听着熟悉的Annie’s Wonderland,脑中总是飘...
    傲看今朝阅读 752评论 5 4
  • 曾有一个朋友,在初中的懵懂岁月里,一直喜欢一个叫巴黎的男孩子。她曾无数次的鼓起勇气,想告诉巴黎说:我喜欢你。可是终...
    子不语LH阅读 370评论 0 0