打印

stm32f103+ucosII2.88运行一段时间后死机

[复制链接]
7310|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
anzil|  楼主 | 2010-6-18 10:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在stm32f103VE上跑官方移植的ucosII2.88 ,刚开始运行的时候,系统一切正常,各个任务正常调度,大概可以持续5~7小时。但是>14小时连续运行之后,系统就不正常了,现象是:各个中断可以正常进入(通过观察led),但是有些任务已经不运行了,有时候仅有最高级的任务在运行(也是观察led).
通过操作系统自带的view任务,可以看各个任务的堆栈,发现没有溢出,或者堆栈一直增加的情况(泄露)。
我的各个任务的功能并不复杂,大多数的时间都在等待。
请大侠指教一下,我该怎么解决这个问题?
先感谢一下!!!
沙发
userchen| | 2010-7-9 13:55 | 只看该作者
请高手们回答下啊。。我也碰到类似的问题。。。

使用特权

评论回复
板凳
我是土匪| | 2010-7-9 14:56 | 只看该作者
感觉内存溢出。

先排除是不是移植的问题:只跑一个LED,观察。

使用特权

评论回复
地板
IJK| | 2010-7-9 17:43 | 只看该作者
记得本版有人给出过一个方法

使用特权

评论回复
5
sinadz| | 2010-7-10 20:48 | 只看该作者
单任务试试

使用特权

评论回复
6
txcy| | 2010-7-10 21:38 | 只看该作者
LS不能根本解决问题,我也百思不得其解,怎么会跟时间有关系, 程序按道理应该是一直那样跑,怎么会跑着跑着,突然就乱了呢,以前遇到这样都是外部原因所造成的,不会是软件本生造成的

使用特权

评论回复
7
Sober393| | 2010-9-3 14:47 | 只看该作者
学习中,我想随着时间的推进,肯定会有适用于STM32的UCOS的

使用特权

评论回复
8
jinjing999| | 2010-9-13 09:19 | 只看该作者
首先,uc/os比较稳定的。

你的问题,
1. 可能每个任务的堆栈空间太小,把堆栈空间调大。
2. 我不知道,这借个任务是怎么协调调度的。如果各个任务之间没有调度关系(没有使用信号,邮箱,消息)就不用考虑这个问题。如果使用了这些调度同步,可能你的调度信号有关系。在那个地方信号出问题。
3. 不保证uc/os没有bug,我在测试一个产品的时候,发现一个任务也不能调度。别的任务也可以正常调度。最后没有找到问题,实际上我已经抓住这个问题,测试了一天。没有出现类似情况。最后我只能分析可能是操作一个硬件问题(我后来把该硬件的总线频率降下来,该硬件通讯频率过快,确实有问题)。

使用特权

评论回复
9
anzil|  楼主 | 2011-11-4 15:52 | 只看该作者
我碰到这个问题了,也不知道怎么解决。但是,我发现如果你把所有的中断的优先级都设为0,是不会有问题的,可以很稳定的一直跑。一旦采用中断嵌套,是会出现楼主说的问题的。因此,我分析是由于多次嵌套的缘故。嵌套会引起堆栈空间溢出,这是可能的;我把各个任务的堆栈和系统的堆栈都加大一倍,也还是出现这个问题。嵌套还会引起一些别的动作,因为对汇编了解有限,所以没能深入。

使用特权

评论回复
10
yinyangdianzi| | 2011-11-4 16:34 | 只看该作者
可能时间一长,误差就明显了。。。。

使用特权

评论回复
11
grissiom| | 2011-11-4 18:01 | 只看该作者
会不会是时间长了之后电源之类的硬件出问题了?

使用特权

评论回复
12
李富贵| | 2011-11-4 19:43 | 只看该作者
用IAR吧,可以看到最大任务栈使用,系统崩溃一般是栈溢出导致的。
建议用ucos2.86,os_core.c里面os_sched() os_IntExit()两个函数用2.88的。

用MDK开发ucos简直是瞎子摸象。

使用特权

评论回复
13
mcu_electron| | 2011-11-5 15:25 | 只看该作者
mark 一下,学习uC/OS

使用特权

评论回复
14
pluto55| | 2012-10-15 10:50 | 只看该作者
楼主的这个问题解决了没有?有中断嵌套的情况下,你是将OS代码按照这个https://bbs.21ic.com/icview-158505-1-1.html帖子进行了更改还是怎么处理的?
多谢!~~

使用特权

评论回复
15
meilitianshi| | 2013-11-24 21:30 | 只看该作者
楼主你好,你的问题解决了吗,我现在遇到同样问题

使用特权

评论回复
16
deviceplugs| | 2016-4-19 11:33 | 只看该作者
我现在用stm32F030的串口中断也遇到同样的问题,程序会偶尔死机,应该是串口的问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

65

帖子

0

粉丝