OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4209|回复: 9

UCOSIII 应用烦恼, 这样的逻辑对么? 求大神指点!!!

[复制链接]

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2014-11-7
在线时间
44 小时
发表于 2017-5-31 17:42:41 | 显示全部楼层 |阅读模式
现在有  A  B   C   三个任务,   优先级 A> B > C        A 任务在一定条件下删除B 任务, 在一定条件下建立B 任务,   B  C   任务里面 用相同IIC 去读取一个传感器! 由于IIC 时序怕被打乱, 所以加了临界保护, 代码如下,  B  C  均有如下代码,  这样合适么? A删除B任务会不会 在临界还没执行完的时候删除,对整个代码有影响么?                                  OS_CRITICAL_ENTER();
                                Wind_press = Rresssensor_Read();  //Wind_press(float)
                                OS_CRITICAL_EXIT();
再牛逼的梦想都禁不住傻逼的坚持!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2015-3-17
在线时间
22 小时
发表于 2017-5-31 17:54:53 | 显示全部楼层
我有个很简单的想法,不知道可行不。在A删除B的地方也加个临界保护,不知道可不可行
回复 支持 反对

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2014-11-7
在线时间
44 小时
 楼主| 发表于 2017-5-31 18:05:42 | 显示全部楼层
heqinhan 发表于 2017-5-31 17:54
我有个很简单的想法,不知道可行不。在A删除B的地方也加个临界保护,不知道可不可行

为什么? 有什么理由呢?
再牛逼的梦想都禁不住傻逼的坚持!
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2015-3-17
在线时间
22 小时
发表于 2017-5-31 18:11:38 | 显示全部楼层
我也不太了解操作系统深层的东西,看一下别人会怎么回复
回复 支持 反对

使用道具 举报

50

主题

1804

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6656
金钱
6656
注册时间
2016-5-29
在线时间
909 小时
发表于 2017-6-1 10:25:23 | 显示全部楼层
多任务间的通信应该要有锁.互斥锁,信号量之类的保护措施.任务B,C共享了I2C总线.他们之间是要互斥锁的.
A任务不能在B任务未执行完I2C操作时删除B任务.可以加信号量来控制.让任务A了解到B是不是可以被删除了.是的话.立即执行删除B.不是的话..再等等看.
回复 支持 反对

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2014-11-7
在线时间
44 小时
 楼主| 发表于 2017-6-2 11:26:33 | 显示全部楼层
操作系统 发表于 2017-6-1 10:25
多任务间的通信应该要有锁.互斥锁,信号量之类的保护措施.任务B,C共享了I2C总线.他们之间是要互斥锁的.
A任 ...

我加了临界资源保护!
再牛逼的梦想都禁不住傻逼的坚持!
回复 支持 反对

使用道具 举报

50

主题

1804

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6656
金钱
6656
注册时间
2016-5-29
在线时间
909 小时
发表于 2017-6-2 13:29:03 | 显示全部楼层
灰太狼小灰兔 发表于 2017-6-2 11:26
我加了临界资源保护!

临界区不宜长时间进入...能用信号量用信号量吧.
回复 支持 反对

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2014-11-7
在线时间
44 小时
 楼主| 发表于 2017-6-8 11:00:01 | 显示全部楼层
操作系统 发表于 2017-6-2 13:29
临界区不宜长时间进入...能用信号量用信号量吧.

两者有什么不同么?都是在等待临界资源执行完!!!!
再牛逼的梦想都禁不住傻逼的坚持!
回复 支持 反对

使用道具 举报

50

主题

1804

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6656
金钱
6656
注册时间
2016-5-29
在线时间
909 小时
发表于 2017-6-8 15:07:55 | 显示全部楼层
灰太狼小灰兔 发表于 2017-6-8 11:00
两者有什么不同么?都是在等待临界资源执行完!!!!

是吧?是哟?两者相同.还有什么意义呢?
回复 支持 反对

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2014-11-7
在线时间
44 小时
 楼主| 发表于 2017-6-16 11:35:29 | 显示全部楼层
操作系统 发表于 2017-6-8 15:07
是吧?是哟?两者相同.还有什么意义呢?

这边信号量也是等到那边信号释放,  但唯一的是 可以进行认读调度, 是么?
再牛逼的梦想都禁不住傻逼的坚持!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-2 02:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表