OpenEdv-开源电子网

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

移植了一个UCOS2加UCGUI多任务,在疲劳操作时候,其中一个OS任务直接进入不了

[复制链接]

18

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2016-8-2
在线时间
78 小时
发表于 2017-11-24 20:08:06 | 显示全部楼层 |阅读模式
5金钱
在线等,急啊!STM32F103的CPU作为主控,移植了一个UCOS2多任务系统,加上UCGUI3.9作显示,液晶任务DISPLAY是1ms运行一次,在作按键快速操作的时候,发现界面更新了N多次之后发现DISPLAY任务无法进入了,其他任务正常运行,软件莫名奇妙的跑进了TAMPER_IRQHandler中断里面,不知道是什么原因啊!!!求大神帮助

最佳答案

查看完整内容[请看2#楼]

非常感谢回复,问题已经解决了,是因为GUI定时器在切换任务过程当中未删除,使得GUI的定时时间到了之后消息无法发送至回调函数导致的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2016-8-2
在线时间
78 小时
 楼主| 发表于 2017-11-24 20:08:07 | 显示全部楼层
1547674987 发表于 2017-11-25 09:53
你显示任务是除了start任务外的最高优先级吗?要么你其他低优先级任务释放CPU控制权了吗?显示任务有必要1M ...

非常感谢回复,问题已经解决了,是因为GUI定时器在切换任务过程当中未删除,使得GUI的定时时间到了之后消息无法发送至回调函数导致的
回复

使用道具 举报

18

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2016-8-2
在线时间
78 小时
 楼主| 发表于 2017-11-24 20:16:25 | 显示全部楼层
快速按键操作主要就是界面频繁更新上,这个时候CPU占用资源较多,但是感觉也不是这个原因
回复

使用道具 举报

18

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2016-8-2
在线时间
78 小时
 楼主| 发表于 2017-11-24 20:17:02 | 显示全部楼层
没有大神来帮助我只能够自己顶了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2017-11-25 00:04:25 | 显示全部楼层
降低切换速率试试,比如设置5ms一次
回复

使用道具 举报

23

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2305
金钱
2305
注册时间
2017-7-6
在线时间
280 小时
发表于 2017-11-25 09:53:57 | 显示全部楼层
你显示任务是除了start任务外的最高优先级吗?要么你其他低优先级任务释放CPU控制权了吗?显示任务有必要1MS跑一次吗?
回复

使用道具 举报

18

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2016-8-2
在线时间
78 小时
 楼主| 发表于 2017-11-26 15:23:57 | 显示全部楼层
统一回复,液晶任务设置为10ms或者更长并无影响, 液晶显示更新任务优先级是出IDLE之外最低级别,通过反复的排查发现是我在建立页面1的时候,创立了一个定时器0,之后切换至界面2的时候,未将定时器0删除掉,因此定时器0仍然在工作,只是定时时间到了无法发送至界面1的回调函数里,因此GUI就一直处于等待状态,液晶任务一直占着UCOS的资源,更高优先级的任务仍然得以运行,添加一句WM_DeleteTimer(hWin,GUI_ID_TIMER0);问题得以解决,感谢大家回复
回复

使用道具 举报

18

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2016-8-2
在线时间
78 小时
 楼主| 发表于 2017-11-26 15:24:58 | 显示全部楼层
正点原子 发表于 2017-11-25 00:04
降低切换速率试试,比如设置5ms一次

谢谢原子哥回复,问题已经解决了,是因为GUI定时器在切换任务过程当中未删除,使得GUI的定时时间到了之后消息无法发送至回调函数导致的
回复

使用道具 举报

23

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2305
金钱
2305
注册时间
2017-7-6
在线时间
280 小时
发表于 2017-11-27 09:02:22 | 显示全部楼层
ajianyes 发表于 2017-11-26 15:23
统一回复,液晶任务设置为10ms或者更长并无影响, 液晶显示更新任务优先级是出IDLE之外最低级别,通过反复 ...

楼主,我问下 你不同的界面(对话框)放在不同的任务里面?
回复

使用道具 举报

18

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2016-8-2
在线时间
78 小时
 楼主| 发表于 2017-12-5 13:52:02 | 显示全部楼层
1547674987 发表于 2017-11-27 09:02
楼主,我问下 你不同的界面(对话框)放在不同的任务里面?

不是的,都是一个任务里面执行的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 04:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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