初级会员
- 积分
- 80
- 金钱
- 80
- 注册时间
- 2016-4-2
- 在线时间
- 22 小时
|
5金钱
背景如下:项目中用STM32F407作为主控,运行几个任务,然后在调试的时候通过串口打印,会出现时不时的进入hardfault,时间长短不一。在程序进入hardfault之前使用fault reports查看到底是什么错误引起的,基本就是以下几条:1、MM_FAULT-IACCVIOL 2、Bus_Faults-IBUSERR 3、Usage_Faults-INVSTATE 总是这三条在变换,搞不懂什么情况。
现在希望通过MDK平台进入调试模式运行,希望能将问题找出,进入hardfault前是出现了什么问题,网上找了好多关于定位进入hardfault前的那条指令,但是基本上都是基于F1系列的,涉及到的问题在于MDK5.14对F4的调试功能支持较差,无法使用Call+Stack+Locals进行跟踪,因为出现hardfault后进入此界面没有任何参考信息,关于使用memory1查看LR的值,然后通过Disassembly查找地址,也没有找到对应的语句是哪一条,基本上是找不到该地址。在这里想请问下大家平时在使用F4运行UCOSIII时出现hardfault时都是怎么调试的,希望有经验的朋友能指点一二,非常谢谢!
|
|