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