STM32加了CRC后出现Hardfault

2019-07-14 14:14发布

程序用的UCOS,在使用CRC之前都没出过问题,加了CRC后,程序跑一天多就进入BUSFault,而且每次都是出错在同一位置。
每次定位都定位在CRC_CalcBlockCRC这个函数。

程序从上电开始就每隔一秒进入CRC校验函数,一般运行一天就进入BusFault。查了快一个星期了,实在是找不到办法了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
CAINE_LEE
1楼-- · 2019-07-15 14:47
嘻嘻爱哈哈 发表于 2019-2-13 19:04
可以参考文档《Hard Fault的诊断》去排查。
---------------------------------描述-------------------------------------------------
发生Bus Fault时,可以查看总线错误状态寄存器了解异常

谢谢你,我就是参考的文档里的方法查的,查到最后还是没找到原因
CAINE_LEE
2楼-- · 2019-07-15 17:35
 精彩回答 2  元偷偷看……
dipper011
3楼-- · 2019-07-15 22:07
P_DataBuffer每次传入的都是uint32_t的数组么?
还有你长度bufLen在进入函数时是否判断下如
if (bufLen > xxx) while(1);
是否定义成如下会好些,P_DataBuffer在运算过程中是否有变化?计算返回的值如果不对你是怎么处理的?
uint32_t CRC_BufferGet(const uint32* P_DataBuffer, uint32_t bufLen)

一周热门 更多>