电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
互斥信号量未释放,任务被挂起
已解决
73482
个问题
已帮助
5993
位优秀工程师
互斥信号量未释放,任务被挂起
电子大拿
2020-12-10
浏览量:757
我在多个任务中都会用到采集AD信号的函数,避免多任务同时访问这个函数,用互斥信号量进行保护,遇到的问题就是,其中一个任务再被挂起的时候,有可能信号量还未释放,那么其他任务想访问这个函数的时候,就只能无限等待了,想了个办法就是挂起后人为释放一次信号量,但是使用一段时间后,AD采集的值就乱了。现在暂时想不到什么好办法
显示全部
嵌入式
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
宫梓萱
你可以这样写,一个task专门负责ADC采集,其他的任务就是获取它的采集值而已。这样就不会有冲突了。并且ADC的采集优先级最好比其他任务高。这样其他任务就只能以可读的方式来读取ADC值,当然如果设计得当的话,也就是要避免其它两个task读取的时候又被ADC的task抢占。能避免这种情况的话就可以不用互斥量了。
发布于
2020-12-14
举报
评论 0
0
0
其他答案
数量:
1
chen0000009
任务挂起的时候要释放掉它所持有的全部资源,不能在持有锁的时候休眠,这个是多线程编程的要求
发布于
2020-12-16
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
互斥信号量未释放,任务被挂起
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: