OpenEdv-开源电子网

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

为什么我的程序会卡死在OSTimeDlyHMSM函数里面?

[复制链接]

13

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-11-16
在线时间
8 小时
发表于 2016-7-3 21:43:42 | 显示全部楼层 |阅读模式
3金钱
为了学习UCOS我写了一个程序,有3个任务,其中任务一是按键扫描,任务二是图片显示,任务三是不停的闪烁LED,当KEY_UP按键按下后,我让任务1发一个内建信号量给任务2。任务二里面,显示图片过程中为防止打断,调用了OS_CRITICAL_ENTER()和OS_CRITICAL_EXIT(), 任务二的最后调用了OSTimeDlyHMSM函数,结果他就卡死了,显示图片的程序是没有问题的,我单独把他拿出来,在不跑系统的情况下用for语句重复执行N遍都可以,然后调用OS_CRITICAL_ENTER()和OS_CRITICAL_EXIT()也是没有问题的,因为我把任务二里的图片显示的程序改为LED0=~LED0;就正常了,最后在OSTimeDlyHMSM函数里加printf语句,让他每执行一段代码就打印一段字符,结果发现程序在如图所示的地方就卡死了file:///C:\Users\Augus\AppData\Roaming\Tencent\Users\870085719\QQ\WinTemp\RichOle\LDHQ3(WDW}BXHV(HIBV$A%T.png,调了好多天,求大神解救!!

OSTimeDlyHMSM的函数内部程序

OSTimeDlyHMSM的函数内部程序

最佳答案

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

检查下是不是堆栈问题,将任务堆栈设置大一些试试
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165225
金钱
165225
注册时间
2010-12-1
在线时间
2107 小时
发表于 2016-7-3 21:43:43 | 显示全部楼层
检查下是不是堆栈问题,将任务堆栈设置大一些试试
回复

使用道具 举报

13

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-11-16
在线时间
8 小时
 楼主| 发表于 2016-7-3 21:47:26 | 显示全部楼层
如果有人和我说这种问题专业的工程师也要调试很久,我的心情会开朗许多
回复

使用道具 举报

13

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-11-16
在线时间
8 小时
 楼主| 发表于 2016-7-19 22:15:43 | 显示全部楼层
正点原子 发表于 2016-7-3 21:43
检查下是不是堆栈问题,将任务堆栈设置大一些试试

试了一下,真的是这个问题,原子哥好厉害,本来就是原子哥的粉丝,现在是超级粉
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2016-3-11
在线时间
8 小时
发表于 2016-7-27 23:39:21 | 显示全部楼层
正点原子 发表于 2016-7-3 21:43
检查下是不是堆栈问题,将任务堆栈设置大一些试试

原子哥 能问你一下 这样做的原因吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-1 20:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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