硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2968|回复: 15
收起左侧

[RL-RTX] 求助啊,RTX中是否有挂起函数

[复制链接]

10

主题

39

回帖

69

积分

初级会员

积分
69
发表于 2018-7-7 13:05:01 | 显示全部楼层 |阅读模式
请问 在 RTX操作系统中 是不是没有 类似和UCOSIII的 任务挂起 这个功能?可是我想要RTX中的有关任务先暂停,等我给他命令再继续执行,这个应该怎么做? 使用 任务建立 函数 和 任务删除函数吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2018-7-7 13:07:08 | 显示全部楼层
用事件标志API挂起就好了,RTX4中没有。

ps:帮你修改了下题目
回复

使用道具 举报

10

主题

39

回帖

69

积分

初级会员

积分
69
 楼主| 发表于 2018-7-7 13:17:31 | 显示全部楼层
eric2013 发表于 2018-7-7 13:07
用事件标志API挂起就好了,RTX4中没有。

ps:帮你修改了下题目

感谢感谢!
回复

使用道具 举报

10

主题

39

回帖

69

积分

初级会员

积分
69
 楼主| 发表于 2018-7-7 15:56:38 | 显示全部楼层
eric2013 发表于 2018-7-7 13:07
用事件标志API挂起就好了,RTX4中没有。

ps:帮你修改了下题目

大佬,我想学习下实时操作系统,在 UCOS、 RTX、 FreeRTOS,这三个中间纠结,你有什么建议吗?谢谢了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2018-7-7 15:59:01 | 显示全部楼层
wx_UcY3CH1i 发表于 2018-7-7 15:56
大佬,我想学习下实时操作系统,在 UCOS、 RTX、 FreeRTOS,这三个中间纠结,你有什么建议吗?谢谢了

如果你还在上学,时间充裕,就搞搞uCOS-II,属于比较经典的了,认真学习下源码。

如果已经工作,RTX走起,我已经将各种中间件都弄出了完善的解决方案,做项目比较方便。
个人意见,仅供参考。
回复

使用道具 举报

10

主题

39

回帖

69

积分

初级会员

积分
69
 楼主| 发表于 2018-7-7 16:04:25 | 显示全部楼层
eric2013 发表于 2018-7-7 15:59
如果你还在上学,时间充裕,就搞搞uCOS-II,属于比较经典的了,认真学习下源码。

如果已经工作,RTX走 ...

收到,感谢!
回复

使用道具 举报

3

主题

105

回帖

114

积分

初级会员

积分
114
发表于 2018-7-8 10:13:18 | 显示全部楼层
eric2013 发表于 2018-7-7 13:07
用事件标志API挂起就好了,RTX4中没有。

ps:帮你修改了下题目

2018-07-08_101147.png
我用的RTX4,由事件标志API的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106882
QQ
发表于 2018-7-8 10:25:34 | 显示全部楼层
公仆 发表于 2018-7-8 10:13
我用的RTX4,由事件标志API的

谢谢回复。

你理解错了,我说是用事件标志API即可,没有任务挂起API。
回复

使用道具 举报

3

主题

105

回帖

114

积分

初级会员

积分
114
发表于 2018-7-8 11:26:46 | 显示全部楼层
本帖最后由 公仆 于 2018-7-8 11:27 编辑

楼主,RTX5有osThreadSuspend()和osThreadResume()支持。但是提醒你不要轻易使用,因为会导致不可预测的系统死锁发生。
比如,任务A的代码获得了一个信号量或者其它排他资源,这时任务B用osThreadSuspend()把A挂起了(注意任务B并不知道任务A执行到哪里),
那么在任务B恢复任务A之前,谁也别想获得该排他资源了!更要命的是,如果任务B这时也要这些资源那就是死锁!
这种错误跟线程正常删除与否一个道理。比如其他线程强制删除另外一个线程,那么被删除线程可能申请的资源都没有释放!
回复

使用道具 举报

3

主题

105

回帖

114

积分

初级会员

积分
114
发表于 2018-7-8 11:29:45 | 显示全部楼层
eric2013 发表于 2018-7-8 10:25
谢谢回复。

你理解错了,我说是用事件标志API即可,没有任务挂起API。

是的,我理解错了。
回复

使用道具 举报

10

主题

39

回帖

69

积分

初级会员

积分
69
 楼主| 发表于 2018-7-8 13:19:43 | 显示全部楼层
公仆 发表于 2018-7-8 10:13
我用的RTX4,由事件标志API的

收到,感谢指导!
回复

使用道具 举报

10

主题

39

回帖

69

积分

初级会员

积分
69
 楼主| 发表于 2018-7-8 13:20:18 | 显示全部楼层
公仆 发表于 2018-7-8 11:26
楼主,RTX5有osThreadSuspend()和osThreadResume()支持。但是提醒你不要轻易使用,因为会导致不可预测的系 ...

收到!
回复

使用道具 举报

4

主题

52

回帖

64

积分

初级会员

积分
64
发表于 2018-7-8 22:09:57 | 显示全部楼层
RTX确实不错,准备转RTX,最近测试一个信号量,但是出现个问题,如果在A任务给B任务发送一个信号,B任务可以收到,但是出现的问题是,任务一直在空闲任务了,不知道为什么,用的是库方式,没有移植源码
回复

使用道具 举报

1

主题

1

回帖

7

积分

新手上路

积分
7
发表于 2018-7-9 13:39:23 | 显示全部楼层
eric2013 发表于 2018-7-8 10:25
谢谢回复。

你理解错了,我说是用事件标志API即可,没有任务挂起API。

你好,我这边工作需要现在想移植RTX5到工程上,一定要用KEIL5.25版本吗?我按着官网的英文说明创建了一个,现在调试模式下,Threads栏里面没有出现对应的线程。请问您这边有没有RTX5版本的工程创建说明?可否让我借鉴学习一下呢,非常感谢。
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2018-8-10 14:04:21 | 显示全部楼层
公仆 发表于 2018-7-8 11:26
楼主,RTX5有osThreadSuspend()和osThreadResume()支持。但是提醒你不要轻易使用,因为会导致不可预测的系 ...

rtx4也有挂起和恢复,只不过那个是用于系统休眠和恢复的

其实任务挂起和恢复是个很奇怪的事情,任务怎么可以挂起非自身的任务呢,自身任务被挂起,什么时候才能恢复啊

如果是后一种,可以用事件这种同步量的方法
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2018-8-10 14:05:35 | 显示全部楼层
cortex 发表于 2018-7-8 22:09
RTX确实不错,准备转RTX,最近测试一个信号量,但是出现个问题,如果在A任务给B任务发送一个信号,B任务可 ...

因为只有在收到信号量那一刻b才会被切换到,其他时刻本来就是空闲的啊
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-9 00:04 , Processed in 0.371915 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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