OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8273|回复: 3

关于堆栈溢出,内存泄漏,导致硬件错误中断,如何查找源程序哪里有问题,或者是电路板问题

[复制链接]

8

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2013-12-27
在线时间
15 小时
发表于 2014-4-18 19:22:59 | 显示全部楼层 |阅读模式
之前写的程序没有出错,后来加了ucGUI以后试验发送过4次硬件错误。在网上搜索了一下发现好多人都写过他们如何查找硬件错的代码,我也照搬发现真的可以查到我出错的程序地址 ,


是在jpeg解码程序的快速反离散余弦变换(函数名Fast——IDCT)的第二个for循环这一句,但是这个解码程序是用的原子哥的,我看了堆栈也确实没有溢出,
sp寄存器数据时0x2000B4FC  我的堆栈的栈顶是0x2000B68B,到0x20008E8B,大小人为变大了10K,看堆栈还很多没用不可能溢出,现在真的不知道是哪的问题了,解码程序以前用过没问题。
我的.map文件内容是:


.s

文件
看到别人讲的如何在发送硬件错,异常时查找出错的代码是这样的说的。stm32产生错中断时会把R0到R3,R12的数据,错误代码返回的地址值压栈,在根据sp寄存器查看堆栈,我在堆栈里面看到我的出错代码地址为0x0800DC91,这里就是原子哥的解码的程序应该不会有错,不知道各位大侠有什么见解,我这么找对不对?(每次都是在这里),而且时间不确定,有时间一下就出错有时候一上午都不会出错,程序还是处于运行状态,会不会是仿真的器问题?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

1443

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2232
金钱
2232
注册时间
2010-12-16
在线时间
197 小时
发表于 2014-4-18 20:22:27 | 显示全部楼层
先看看是什么错误吧,有些错误不是caller触发的.Peripherals->Core eripherals->Fault Reports
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

8

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2013-12-27
在线时间
15 小时
 楼主| 发表于 2014-4-20 22:25:35 | 显示全部楼层
回复【2楼】shihantu:
---------------------------------
Peripherals->Core eripherals->Fault Reports  这是?  可以稍微详细点吗? stm32权威指南里面有讲吗?烦请大神指点,问题还是没有解决。
回复 支持 反对

使用道具 举报

8

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
193
金钱
193
注册时间
2013-12-27
在线时间
15 小时
 楼主| 发表于 2014-4-20 22:29:20 | 显示全部楼层
在哪里可以找到错误报告?求指点。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-10 04:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表