1. 概述

在单片机调试过程中最让开发者感到头疼的就是遇上Hardfault错误问题了,如何快速的触发问题的原因是解决问题的关键。可是类问题对于比较初级的开发者来说往往没有掌握有效的方法找到是那行代码触发了Hardfault。网上的博客有一些方法解决这类问题,当时讲的又不是很系统,这篇的目的就是系统的讲解一下Hardfault错误的具体定位方法。这篇文章的方法是建立在可以用Keil + Jlink实现在线调试的环境下,请读者注意这个前提条件,其他条件下的定位方法我会在以后的章节中给出。

2.找到哪一行触发Hardfault的方法

  • 方法一:

其实,在Keil在线调试的条件下找到哪一行触发了Hardfault的最简单的方法是使用Call Stack Window(栈调用窗口)。当我们运行程序并进入hardfault后,我们暂停程序后Call Stack 窗口就会显示函数的调用过程,我们选择HardFault_Handler右键选择Show Caller Code选项既可以找到那行触发的hardfault了。具体操作如下:

从上面的操作可以看出,程序运行出问题进入hardfault中断处理函数后,暂停执行后通过Call Stack窗口的跳转功能即可跳转到出问题的程序附近。下面给出了出问题的程序:

Hardfault调试方法(调试技术)相关推荐

  1. android的反调试方法,Android平台融合多特征的APP反调试方法与流程

    本发明涉及Android平台融合多特征的APP反调试方法,属于计算机与信息科学技术领域. 背景技术: 应用程序本身并不具备反调试的功能,但是动态调试是动态分析应用逻辑.动态脱壳等攻击方式所采取的必要手 ...

  2. stm32 MDK debug调试方法

    MDK debug调试方法 使用仿真器进行在线调试 ⭐基础调试方法 调试环境的配置 调试界面介绍 执行操纵栏 断点 挂起 调试窗口介绍 call stack windows watch windows ...

  3. scanf调试_STM32调试利器之ITM

    STM32 有一个代码跟踪功能,即 ITM,这个调试功能非常强大,可以替代串口输入输出功能,而且只需要占用一根 I/O 线就可以实现.当然它的好处不仅仅体现在这里,在调试嵌入式操作系统代码时你会发现相 ...

  4. (五)stm32工程代码HardFault异常查错调试方法

    (五)stm32工程代码HardFault异常查错调试方法 参考文章: (1)(五)stm32工程代码HardFault异常查错调试方法 (2)https://www.cnblogs.com/zhan ...

  5. Web开发常规调试方法与常见问题分析

    一.Web项目基本原理 现在的web项目大都已经前后端独立开发与部署. 前后端独立开发,一般是前端与后端通过web接口(常见的有RESTful与websocket)文档进行交流.前端开发人员先更具业务 ...

  6. 微信小程序开发系列教程三:微信小程序的调试方法

    微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 这个教程的前两篇文章,介绍了如何用下图所示的微信开发者工具自动生成一个Hel ...

  7. fiq中断的入口地址_嵌入式技巧:ARM的三种中断调试方法介绍

    嵌入式软件开发流程 参照嵌入式软件的开发流程.第一步:工程建立和配置.第二步:编辑源文件.第三步:工程编译和链接.第四步:软件的调试.第五步:执行文件的固化. 在整个流程中,用户首先需要建立工程并对工 ...

  8. 光眼图和电眼图_一种电眼调试方法及装置制造方法及图纸

    [技术实现步骤摘要] 本专利技术涉及相干光通讯领域,特别是涉及一种电眼调试方法及装置. 技术介绍 目前,在主流相干光通信技术中,主要是将发送数据预编码后,复合成XI.XQ.YI和YQ四通道高速电信号, ...

  9. 一文抽丝剥茧带你掌握复杂Gremlin查询的调试方法

    本文分享自华为云社区<复杂Gremlin查询的调试方法>,原文作者:Uncle_Tom. 1. Gremlin简介 Gremlin是Apache TinkerPop 框架下的图遍历语言.G ...

最新文章

  1. 如何选择版本控制系统之二
  2. Mac查看Android动态库依赖
  3. vue.extend的问题
  4. HDU 6064 RXD and numbers
  5. python制作圆形按钮_C#圆形按钮,非常漂亮动态
  6. OpenCV文档阅读笔记-brief Creates a window官方解析及实例
  7. LVS+ldirector实现负载均衡
  8. python分割压缩_Python读取分割压缩TXT文本文件实例
  9. 手动写一个上传图片的组件,不适用插件,包括限制图片大小,格式
  10. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcd in position 0: invalid continuation byte
  11. windows IIS+php配置教程
  12. adb 切换默认桌面_超强桌面管理神器,有你想不到的效果!
  13. 巴菲特指标:估值过高
  14. mysql group by COLUMN desc问题
  15. linux开源邮件系统zea,Zmail
  16. 怎么查看笔记本内存条型号_笔记本如何加内存条之如何查看笔记本内存品牌和型号...
  17. 远程服务器登入信息,怎样查看服务器被远程登录的信息
  18. gala米兰达斯(Mirandus)游戏介绍
  19. 赛效:如何在线给图片加水印
  20. C++使用CFile类文件读写

热门文章

  1. 如何启动Android SDK 1.5模拟器
  2. HIT计算机系统大作业-程序人生-Hello’s P2P
  3. 基于ZigBee和STM32的智能家居控制系统的设计与实现
  4. wince buid
  5. 25岁到30岁的女生还可以长高么? 非药物
  6. C语言中memcpy()和memcpy_s()的区别
  7. 线性模型是否真的能给出一个很好的解释?
  8. 一、多线程是什么?为什么要用多线程?
  9. 格兰杰因果 / EEG脑电数据分析
  10. 比亚迪“亮刀”、宁德时代“狂奔”,动力电池市场的巨头混战几时休?