打印

STM32 用UCOSII2.91死机问题,恐怖+灵异!

[复制链接]
7511|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
airwen|  楼主 | 2011-12-22 16:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近项目用的STM32+UCOSII的项目,遇到几个灵异的死机现象!

首先是我移植的液晶程序写好后,工作一上电,在进入处理液晶任务的初始化的函数后死机!具体死在哪里不清楚,但是我做了几个尝试。。。注意!这个尝试的结果很灵异!!!我感觉像是量子世界。。。

1,第一次死机时候,我尝试把程序一步一步移植,看看到底是哪一步不正常,灵异的第一个问题来了,我只要把LCD_RST函数的名字改成LCD_RESET后就会死机,不改就没问题,我就奇怪了,改函数名也会死机。。。我敢保证这里不会一些函数重名的出低级错误。
2,后来我猜想会不会是堆栈太小,然后把堆栈设置了大了很多,结果,额,真的好了,但是奇怪的事还在后面,接着我继续移植,但是增加了一个设置GPIO为高电平的代码后又死机了,后来我查看堆栈利用情况,发现,堆栈还有900多K没使用,所以这里可以肯定不是堆栈溢出!

3,接着我又想在所有的异常中断中都加入串口信息打印,结果还是会死机,但是没有打印任何信息,所有的任务也没工作,因为我加了看门狗,4秒后复位,后来我索性的把看门狗关了,我就想,MD这下看你怎么办,结果。。。。看门狗关了后不死机了。。。

4,我怀疑是不是STM32的芯片坏了,比如FLASH到使用极限了,还是UCOS2.91有BUG,总之就是司机莫名其妙,不固定,我添加一句没用的代码,就可能不死机了,但是再写几句代码,又死机了,高手救救我把,我快不行了。。。

相关帖子

沙发
airwen|  楼主 | 2011-12-22 16:46 | 只看该作者
在补充一个可能有用的线索,我把统计任务取消掉就不会死机了!
还有我把代码的优化级别改成LEVEL0也不死机了,其他情况都会出现死机!严重怀疑是UCOSII2.91的内核问题!

使用特权

评论回复
板凳
李富贵| | 2011-12-22 20:09 | 只看该作者
ucos2.86有bug,所以我用2.88的代码修改后的ucos2.86,官网下来的source里面的release notes也没说2.88以后有什么bug,其实2.86仅仅是对于cortex-m3有问题。2.91应该是一个稳定的版本。

最诡异的问题是你死机了以后没有用调试器看一下死在哪里?笼统的说是死机这个态度就不可能解决问题。

最后一个常识是调试ucos必须用IAR、不能用MDK这个废物。其实我遇到过的死机都是任务栈崩溃导致的,这个问题用IAR一下子就能看出来,MDK什么都不行。

使用特权

评论回复
地板
12ycli| | 2014-7-26 10:05 | 只看该作者
不知道楼主解决了没有?

使用特权

评论回复
5
chhyxf| | 2014-8-12 09:36 | 只看该作者
学习……

使用特权

评论回复
6
desertsailor| | 2016-6-20 14:16 | 只看该作者
检查椎栈分配及使用情况

使用特权

评论回复
7
wentao0100| | 2016-7-3 22:53 | 只看该作者
看题目吓我一跳,再也不敢玩单片机了

使用特权

评论回复
8
MK60| | 2017-2-25 16:48 | 只看该作者
楼主别慌
这些诡异现象无非就是竞争访问,数据对齐,代码优化,堆栈错误引发。

使用特权

评论回复
9
stackdog| | 2017-2-26 10:26 | 只看该作者
细思极恐啊

使用特权

评论回复
10
tomlucky| | 2017-3-27 19:02 | 只看该作者
芯片具体型号?  stm32xxx?

使用特权

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

本版积分规则

0

主题

3

帖子

1

粉丝