做项目调试时如果出现 HardFault,将会是很头疼的事情,因为很难跟踪。
恰好看好雅特力的这篇 APN0028 ,讲用 cm_backtrace 来辅助定位 HardFault 的源头的。(再次赞一下 雅特力的 文档 !)
但是该APN带的项目文件在自己的Keil5上不能用,所以用上一篇那个原版的 闪灯程序做 Base,简单移植了一下。
其他信息见工程包里的 readme:
1. 本项目是以 AT32F4xx_StdPeriph_Lib_V1.2.4 里的 Templates 工程为 Base,移植 AN0028_Quickly_Trace_HardFaultHardle_V1.0.0。
(因为在我的 电脑上 是 [C51 V9.x + Keil 5], 打开原工程提示找不到型号文件。
(另外,不知道为什么我的 Keil5 会不能显示中文。已解决(在 Edit - Configuration -Encoder 中选 Gb2312 )
2. 项目文件在: \AN28_Trace_HardFaultHardle_by_EEW_mig29\Project\AT_START_F403A\Templates\MDK_v5
3. 本工程包做了大幅度简化,去掉了无关文件。需要的其他文件见原版: 在: http://www.arterytek.com/cn/support/index.jsp?index=1
AN0028附件 Quickly Trace HardFaultHardler 描述怎么使用CmBacktrace库,快速追踪和定位产生HardFault原因的方法
大赞雅特力,看了下文档说明确实不错 http://atkap.arterytek.com/download/AN0028_Quickly_Trace_HardFaultHardler_ZH_V1.0.0.pdf