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

[复制链接]
 楼主| 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 | 显示全部楼层
不知道楼主解决了没有?
chhyxf 发表于 2014-8-12 09:36 | 显示全部楼层
学习……
desertsailor 发表于 2016-6-20 14:16 | 显示全部楼层
检查椎栈分配及使用情况
wentao0100 发表于 2016-7-3 22:53 | 显示全部楼层
看题目吓我一跳,再也不敢玩单片机了
MK60 发表于 2017-2-25 16:48 | 显示全部楼层
楼主别慌
这些诡异现象无非就是竞争访问,数据对齐,代码优化,堆栈错误引发。
stackdog 发表于 2017-2-26 10:26 | 显示全部楼层
细思极恐啊
tomlucky 发表于 2017-3-27 19:02 | 显示全部楼层
芯片具体型号?  stm32xxx?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部