初级会员

- 积分
- 193
- 金钱
- 193
- 注册时间
- 2013-12-27
- 在线时间
- 15 小时
|
|
之前写的程序没有出错,后来加了ucGUI以后试验发送过4次硬件错误。在网上搜索了一下发现好多人都写过他们如何查找硬件错的代码,我也照搬发现真的可以查到我出错的程序地址 ,
是在jpeg解码程序的快速反离散余弦变换(函数名Fast——IDCT)的第二个for循环这一句,但是这个解码程序是用的原子哥的,我看了堆栈也确实没有溢出,
sp寄存器数据时0x2000B4FC 我的堆栈的栈顶是0x2000B68B,到0x20008E8B,大小人为变大了10K,看堆栈还很多没用不可能溢出,现在真的不知道是哪的问题了,解码程序以前用过没问题。
我的.map文件内容是:
.s
文件
看到别人讲的如何在发送硬件错,异常时查找出错的代码是这样的说的。stm32产生错中断时会把R0到R3,R12的数据,错误代码返回的地址值压栈,在根据sp寄存器查看堆栈,我在堆栈里面看到我的出错代码地址为0x0800DC91,这里就是原子哥的解码的程序应该不会有错,不知道各位大侠有什么见解,我这么找对不对?(每次都是在这里),而且时间不确定,有时间一下就出错有时候一上午都不会出错,程序还是处于运行状态,会不会是仿真的器问题?
|
|