搜索
bottom↓
回复: 7

ucos跑到空闲任务后不跑出来了?这是为什么?

[复制链接]

出0入4汤圆

发表于 2008-5-22 21:30:08 | 显示全部楼层 |阅读模式
我建立了三个任务,但是仿真时每当执行到OSTimeDly(2)时就轮流跑到其它的任务,最后就跑到空闲任务里不跑出来了(仿真时运行了很长时间都在空闲任务里)?这样每个任务中OSTimeDly(2)后的代码都没有执行,好像不是这样的吧.是我哪里设置错误了?各位知道这是什么问题吗?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2008-5-23 00:44:54 | 显示全部楼层
确定任务走起来了没?
估计是系统时钟没走的原因。

出0入0汤圆

发表于 2008-5-23 08:25:03 | 显示全部楼层
可能任务切换时关了中断,切换完了却没有开。这种可能性最大,我就碰到一次,楼主软件仿真跟踪一下,注意看看中断是不是没有打开

出0入0汤圆

发表于 2008-5-23 08:35:43 | 显示全部楼层
堆栈溢出

出0入0汤圆

发表于 2008-5-23 08:42:14 | 显示全部楼层
堆栈溢出不是这样的,至少我在移植时碰到堆栈溢出都是任务切换几次后就死掉了,一般是你所建的任务凡是唤醒的都会在内核启动后跑一次,然后进入休眠任务,但是切换任务时就会死掉而不会停在休眠任务里不出来

出0入93汤圆

发表于 2008-5-23 08:46:20 | 显示全部楼层
加个串口调试,看程序跑到哪儿了。

出0入0汤圆

发表于 2008-5-23 09:52:40 | 显示全部楼层
首先要保证除了空闲任务处还有别的任务处于就绪,然后tick那个中断需要打开。

看看任务调度的地方就知道了,任务主动延时是os会调度。中断返回时os会根据情况调度,tick中好像也会调度。

要是tick中断被关了,一切都完了,你一delay就永远起不来了。

出0入4汤圆

 楼主| 发表于 2008-5-25 20:12:29 | 显示全部楼层
谢谢楼上各位,问题找到了
原来是系统的时钟没有跑起来.用axd仿真时定时器没有跑起来不产生中断.我把它烧到芯片里就可以了.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 18:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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