打印

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

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

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

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

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

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



分享本文到: [url=http://t.163.com/article/user/checkLogin.do?link=https://bbs.21ic.com/icview-297381-1-1.htmlsource=21ic&info=STM32%20%E7%94%A8UCOSII2.91%E6%AD%BB%E6%9C%BA%E9%97%AE%E9%A2%98%EF%BC%8C%E6%81%90%E6%80%96+%E7%81%B5%E5%BC%82%EF%BC%81%20-%20ARM%20%E8%AE%BA%E5%9D%9B%20-%2021IC%E7%94%B5%E5%AD%90%E5%B7%A5%E7%A8%8B%E5%B8%88%E8%AE%BA%E5%9D%9B https://bbs.21ic.com/icview-297381-1-1.html][/url]







airwen 当前在线
帖子2 精华0 积分6 阅读权限10 在线时间0 小时 注册时间2011-12-22 最后登录2011-12-22





帖子: 2
积分: 6


专家等级:
airwen发表于 2011-12-22 16:46 | 只看该作者 回复 引用 编辑 评分 返回版面 TOP  
得分:0







2楼:
在补充一个可能有用的线索,我把统计任务取消掉就不会死机了!
还有我把代码的优化级别改成LEVEL0也不死机了,其他情况都会出现死机!严重怀疑是UCOSII2.91的内核问题!



相关帖子

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

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

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

使用特权

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

本版积分规则

0

主题

3

帖子

1

粉丝