打印

stm32 hardfaultexception的问题 谢谢

[复制链接]
5231|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiaojian|  楼主 | 2010-9-25 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用ucos+stm32做了一个小板子做modbus的模拟量采集。采了一会儿,当采集端什么都没接及采集结果为零时 能够正常运行。而当采集端接入一个模拟量,及采集结果不为零时,上位机的modbus调试软件显示超时,而mdk停在了hardfaultexception上。当程序中的AD.c文件采集子程序中的最后一行 改成return 0x1234(任意常量)时 就也不会有问题。程序在附件中哪位大哥帮看看 MODBUS.rar (4.85 MB)
沙发
香水城| | 2010-9-25 20:46 | 只看该作者
估计程序处理有问题。

使用特权

评论回复
板凳
myfaith| | 2010-9-25 23:22 | 只看该作者
从我遇到的N多hardware fault经历来看,无一例外是指针越界的问题

使用特权

评论回复
地板
jiaojian|  楼主 | 2010-9-26 08:57 | 只看该作者
为什么 我将AD赋值一个常量后 再 return result 就没有问题呢 而

使用特权

评论回复
5
aaa2742| | 2011-4-10 13:53 | 只看该作者
3# myfaith



那只是小问题,有些问题是不好找的。不要以偏概全

使用特权

评论回复
6
airwill| | 2011-4-10 17:04 | 只看该作者
遇到 hardfaultexception 不要慌张.
首先 Fault 是个好东西, 能够在调试的时候, 就告诉你软件处了错误.
怎么处理 Fault 呢. 在 fault 后, 通常堆栈不会有问题, 可以从现场保护的堆栈中找到导致 fault 的地址. 然后重新跟踪到这里, 看什么操作导致了 fault.
另外: 有多种 fault, cpu 还有 fault 寄存器可以告诉你, 出现了哪类 fault.
要了解详情, 可以看 <Cortex-M3权威指南> 这本书.

使用特权

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

本版积分规则

65

主题

196

帖子

0

粉丝