打印

什么情况下会进入: MemManageException

[复制链接]
2512|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hqqymh|  楼主 | 2010-4-23 15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TI, IO, ge, ce, AN
最近调试文件系统 经常进入MemManageException  现在没头绪 请大家指点一下
沙发
香水城| | 2010-4-23 15:47 | 只看该作者
在MemManageException中放一个断点,调试停在此断点后,通过堆栈看看最后执行的是哪个函数,这样回溯应该会有线索。

使用特权

评论回复
板凳
hqqymh|  楼主 | 2010-4-23 19:34 | 只看该作者
我知道执行到哪个地方就跳到这个函数里头   但是什么原因引起的呢 又该怎么解决呢

使用特权

评论回复
地板
hqqymh|  楼主 | 2010-4-23 19:45 | 只看该作者
今天搞了一天 问题还是没有得到解决,香主有什么更好的建议吗

使用特权

评论回复
5
xsgy123| | 2010-4-23 20:03 | 只看该作者
再往前找还是没头绪吗

使用特权

评论回复
6
香水城| | 2010-4-23 20:09 | 只看该作者
我知道执行到哪个地方就跳到这个函数里头   但是什么原因引起的呢 又该怎么解决呢
hqqymh 发表于 2010-4-23 19:34


什么原因引起的就不好说了,一般多数是存储器访问越界造成的,你的具体原因要按照我2楼说的办法寻到源头才能搞清楚。

使用特权

评论回复
7
ShakaLeo| | 2010-4-23 20:17 | 只看该作者
NVIC那部分有个寄存器Memory Manage Fault Status Register, 查那个寄存器能找到具体原因,实在分析不出来就把有问题的那个部分代码发来看看。

使用特权

评论回复
8
hsbjb| | 2010-4-23 21:01 | 只看该作者
有专门的错误状态寄存器,这个功能之前一直没用过

使用特权

评论回复
9
sinadz| | 2010-4-23 22:01 | 只看该作者
有这个寄存器吗,我想有也很难一步指出错误的直接原因,还是要一步步进行调试

使用特权

评论回复
10
linqing171| | 2010-4-24 07:55 | 只看该作者
异常中断设断电,并修改为直接返回。
会回到出错的语句。

使用特权

评论回复
11
hqqymh|  楼主 | 2010-4-24 10:44 | 只看该作者
源码基于 stm32zet6 + K9F1G08+FATFS    这个工程之前能正常运行正常 但我稍微改了一下就一直进入异常 当我再改回来的时候还是进入同样的异常 希望哪个朋友能抽出点时间帮我看一下 感激不尽 我一直没能解决

nand_fatfs.rar

3.47 MB

使用特权

评论回复
12
byeyear| | 2010-4-24 17:43 | 只看该作者
我知道执行到哪个地方就跳到这个函数里头   但是什么原因引起的呢 又该怎么解决呢
--------------------------------------------------------------------------------------------
既然知道执行到哪个地方就跳,看反汇编应该很容易发现问题。
分析一下进入fault之后的堆栈结构,根据r15找到引起fault的指令。
俺一直是这么干的

使用特权

评论回复
13
秋天落叶| | 2010-4-24 19:37 | 只看该作者
方法值得借鉴,分析一下进入fault之后的堆栈结构,这个具体怎么分析

使用特权

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

本版积分规则

个人签名:继续奋斗

8

主题

43

帖子

0

粉丝