硬汉嵌入式论坛

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

[ThreadX全家桶] 较低的任务过一段时间不再调度

[复制链接]

2

主题

20

回帖

26

积分

新手上路

积分
26
发表于 2022-4-19 11:12:13 | 显示全部楼层 |阅读模式
建立了10个任务,任务优先级为  5---15 ,运行一段时间(时间不定短则10分钟,长则1小时),较低的10---15的任务不再调度,尽在中断和优先级较高的5--10中的几个任务中调度。可能是什么原因,如何查找?请大神帮忙分析下
回复

使用道具 举报

336

主题

2042

回帖

3055

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3055
发表于 2022-4-19 11:18:10 | 显示全部楼层
本帖最后由 caicaptain2 于 2022-4-19 11:19 编辑

可以使用任务的调试工具看一下,是不是优先级高的任务把全部时间片都占用了。
简单分析的话,比如有默认的最低级的idle任务,在里面放一些打印信息,看看能不能执行到。
回复

使用道具 举报

2

主题

20

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2022-4-19 11:30:53 | 显示全部楼层
出现问题后,任务调度情况
回复

使用道具 举报

2

主题

20

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2022-4-19 11:32:08 | 显示全部楼层
出现问题后,任务调度情况,图中任务优先级从高到低排列。
微信图片_20220419113001.jpg
回复

使用道具 举报

336

主题

2042

回帖

3055

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3055
发表于 2022-4-19 13:39:51 | 显示全部楼层
lixuanyi 发表于 2022-4-19 11:32
出现问题后,任务调度情况,图中任务优先级从高到低排列。

你这个图很清楚啊,,,,前面的任务已经占用了全部时间,没有机会执行其他任务了。
回复

使用道具 举报

2

主题

20

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2022-4-19 13:55:14 | 显示全部楼层
非常感谢您的回复。
可能是哪里的问题?为了防止锁死,在每个任务中都有释放函数tx_threadx_sleep,怎么总在这几个任务重调度?
另外,发现如下问题:
1、在运行时任务调度时间不准确,在其中一个任务重以1s操作LED闪烁一次,其闪烁频率不准确。
2、运行一段时间后,低任务的优先级任务不再调度,仅执行中断函数以及中断完成后需要处理的任务(中断中发事件组给该任务)中执行。其他空闲任务、和较低的任务一律不执行

回复

使用道具 举报

2

主题

23

回帖

29

积分

新手上路

积分
29
发表于 2022-4-19 16:32:21 | 显示全部楼层
调试时看看那几个低优先级任务控制块(TX_THREAD 定义的变量)里面的成员 tx_thread_state的值.如果是 0,线程就是就绪的,不执行应该是cpu 占满了,如果别的值,参考文档或者头文件分析一下
回复

使用道具 举报

5

主题

179

回帖

194

积分

初级会员

积分
194
发表于 2022-4-19 18:00:20 | 显示全部楼层
lixuanyi 发表于 2022-4-19 13:55
非常感谢您的回复。
可能是哪里的问题?为了防止锁死,在每个任务中都有释放函数tx_threadx_sleep,怎么总 ...

不应该设计成10个优先级的任务,中优先级的任务执行完成了,又轮到高优先级任务执行。执行不到低优先级任务
回复

使用道具 举报

4

主题

61

回帖

73

积分

初级会员

积分
73
QQ
发表于 2022-4-20 20:05:37 | 显示全部楼层
请问楼主这个调试工具用的啥?
回复

使用道具 举报

2

主题

20

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2022-4-24 11:09:53 | 显示全部楼层
soga238 发表于 2022-4-19 18:00
不应该设计成10个优先级的任务,中优先级的任务执行完成了,又轮到高优先级任务执行。执行不到低优先级任 ...

您好,不理解您什么意思?设置的高、中、低任务应该是相对的啊,中优先级的执行完了挂起、若此时高的也处于挂起状态,不就执行低优先级的任务了吗。为什么不应该设计成10个优先级的任务?
回复

使用道具 举报

2

主题

20

回帖

26

积分

新手上路

积分
26
 楼主| 发表于 2022-4-24 11:11:59 | 显示全部楼层
偶尔也很菜 发表于 2022-4-20 20:05
请问楼主这个调试工具用的啥?

threadx 全家桶的的traceX,发现开启这个后会影响程序的实时性,不知道是用的不好还是确实是这样。比如串口回复大数据的时候就会变慢,而去此功能后明前反应快了。
回复

使用道具 举报

3

主题

1244

回帖

1253

积分

至尊会员

积分
1253
发表于 2022-4-24 13:14:43 | 显示全部楼层
这个一定是软件设计师没有安排好任务间的资源使用问题。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 16:06 , Processed in 0.350666 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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