硬汉嵌入式论坛

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

[μCOS-III] uCOSIII任务进入就绪态后退不出去了

[复制链接]

3

主题

15

回帖

177

积分

初级会员

积分
177
发表于 2018-7-20 15:23:21 | 显示全部楼层 |阅读模式
本帖最后由 wx_xrKGT300 于 2018-7-20 15:25 编辑

任务接收一会数据后状态变成就绪态,但进入就绪态后一直退不出了,调试情况是任务就绪表里面除了这个任务就是空闲任务,其它任务是正常的,请问有遇到果这种情况吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-7-20 15:50:09 | 显示全部楼层
学习下uC/Probe,检测任务执行情况很方面,很容易就找到问题了

http://www.armbbs.cn/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

3

主题

15

回帖

177

积分

初级会员

积分
177
 楼主| 发表于 2018-7-20 21:39:40 | 显示全部楼层
eric2013 发表于 2018-7-20 15:50
学习下uC/Probe,检测任务执行情况很方面,很容易就找到问题了

http://www.armbbs.cn/forum.php?mod= ...

嗯嗯,我用这个看了,和我调试的时候看到的情况是一样的,本来是要等待一个信号量的,但是进入就绪态后从uc-Probe中看到它没有等了,任务得不到运行,可等待的信号量数量已经累积了25个了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-7-20 21:51:19 | 显示全部楼层
wx_xrKGT300 发表于 2018-7-20 21:39
嗯嗯,我用这个看了,和我调试的时候看到的情况是一样的,本来是要等待一个信号量的,但是进入就绪态后从 ...

排查一下,这种问题一般好解决,除非你的程序模板有问题。

可以把所有任务创建全部注释掉,仅测试两个通信的任务或者中断与任务,如果这都有问题,可确定是你程序设计有问题。
回复

使用道具 举报

3

主题

15

回帖

177

积分

初级会员

积分
177
 楼主| 发表于 2018-7-23 09:47:04 | 显示全部楼层
eric2013 发表于 2018-7-20 21:51
排查一下,这种问题一般好解决,除非你的程序模板有问题。

可以把所有任务创建全部注释掉,仅测试两个 ...

我测试了,还是有问题,我的程序设计流程是中断中接收数据到一个FIFO,然后发送信号量,任务每隔10ms运行一次,无期限等待信号量,等到信号量后读取FIFO处理数据,请帮忙分析一下还有哪些可能的情况我没考虑到啊,实在是搞不定了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-7-23 09:49:56 | 显示全部楼层
wx_xrKGT300 发表于 2018-7-23 09:47
我测试了,还是有问题,我的程序设计流程是中断中接收数据到一个FIFO,然后发送信号量,任务每隔10ms运行 ...

发你的中断函数和任务,如何写的。
回复

使用道具 举报

3

主题

15

回帖

177

积分

初级会员

积分
177
 楼主| 发表于 2018-7-23 09:59:50 | 显示全部楼层
只截取了关键的部分。

这是串口接收及信号量发送部分

这是串口接收及信号量发送部分

这是任务处理数据部分

这是任务处理数据部分
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-7-23 10:18:52 | 显示全部楼层
wx_xrKGT300 发表于 2018-7-23 09:59
只截取了关键的部分。

把你串口中断里面所有东西全部删了,仅测试信号量发送,把uCOS-III的post函数写进入测试。

你的任务里面也是,所有东西都删了,仅测试Pend。

回复

使用道具 举报

3

主题

15

回帖

177

积分

初级会员

积分
177
 楼主| 发表于 2018-7-23 10:58:34 | 显示全部楼层
eric2013 发表于 2018-7-23 10:18
把你串口中断里面所有东西全部删了,仅测试信号量发送,把uCOS-III的post函数写进入测试。

你的任务里 ...

测试了差不多半个小时,没有出现之前的情况,那也就是我的应用代码有问题了?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-7-23 11:01:32 | 显示全部楼层
wx_xrKGT300 发表于 2018-7-23 10:58
测试了差不多半个小时,没有出现之前的情况,那也就是我的应用代码有问题了?

是的,现在可以进一步排查了。
回复

使用道具 举报

3

主题

15

回帖

177

积分

初级会员

积分
177
 楼主| 发表于 2018-7-23 11:20:04 | 显示全部楼层
eric2013 发表于 2018-7-23 11:01
是的,现在可以进一步排查了。

我串口接收采用的是DMA单字节接收,屏蔽掉任务中的代码,仅保留中断中的代码,用串口助手每隔10ms发送两帧7字节的数据,用uc-Probe看到任务接收信号量好像速度达不到,信号量的数量一直在25与24之间往复,难道是因为我任务中的代码执行时间超出了任务的切换时间吗?任务每10ms切换一次。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-7-24 01:08:29 | 显示全部楼层
wx_xrKGT300 发表于 2018-7-23 11:20
我串口接收采用的是DMA单字节接收,屏蔽掉任务中的代码,仅保留中断中的代码,用串口助手每隔10ms发送两 ...

不用RTOS,你的这个应用使用裸机操作好用不。
回复

使用道具 举报

3

主题

15

回帖

177

积分

初级会员

积分
177
 楼主| 发表于 2018-7-24 09:24:14 | 显示全部楼层
eric2013 发表于 2018-7-24 01:08
不用RTOS,你的这个应用使用裸机操作好用不。

好用,但是因为考虑到实时性,不得不上系统
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-7-25 00:37:15 | 显示全部楼层
wx_xrKGT300 发表于 2018-7-24 09:24
好用,但是因为考虑到实时性,不得不上系统

我的意思是你不用RTOS的话,测试是否好使,仅测试你的这部分应用。这方面你排查你的应用问题。
回复

使用道具 举报

3

主题

15

回帖

177

积分

初级会员

积分
177
 楼主| 发表于 2018-7-25 23:01:57 | 显示全部楼层
eric2013 发表于 2018-7-25 00:37
我的意思是你不用RTOS的话,测试是否好使,仅测试你的这部分应用。这方面你排查你的应用问题。

我发现等待信号量用阻塞的话就会出现这种情况,用非阻塞测试了暂时没出现,难道是因为接收信号量太频繁了吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2018-7-26 03:27:28 | 显示全部楼层
wx_xrKGT300 发表于 2018-7-25 23:01
我发现等待信号量用阻塞的话就会出现这种情况,用非阻塞测试了暂时没出现,难道是因为接收信号量太频繁了 ...

是不是你的当前的任务处理不过来。
回复

使用道具 举报

3

主题

15

回帖

177

积分

初级会员

积分
177
 楼主| 发表于 2018-7-27 16:29:15 | 显示全部楼层
eric2013 发表于 2018-7-26 03:27
是不是你的当前的任务处理不过来。

这个任务也就只是个转发数据功能,按理说不应该,但是这个我也不晓得为什么
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-7-22 16:29:17 | 显示全部楼层
楼主问题解决了吗?我也遇到了。麻烦回复一下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-7-22 17:32:13 | 显示全部楼层
heng 发表于 2020-7-22 16:29
楼主问题解决了吗?我也遇到了。麻烦回复一下

按照我与楼主讨论的测试方法,你试试是否好使。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-7-23 11:37:29 | 显示全部楼层
eric2013 发表于 2020-7-22 17:32
按照我与楼主讨论的测试方法,你试试是否好使。

好的,谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 20:13 , Processed in 0.232446 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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