学习STM32开发,肯定少不了debug调试这一步骤
学习STM32开发,肯定少不了debug调试这一步骤。那么,本文带你了解一下这个调试相关的知识。 本文以STM32F1、Cortex-M3为例,其它系列芯片或内核,原理相同或类似。 1概况 在STM32中,有很多调试组件。使用它们可以执行各种调试功能,包括断点、数据观察点、 闪存地址重载以及各种跟踪。 STM32F1使用Cortex-M3内核,该内核内含硬件调试模块,支持复杂的调试操作。 硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止。内核停止时,内核的内部状态和系统的外部状态都是可以查询的。完成查询后,内核和外设可以被复原,程序将继续执行。 当STM32F10x微控制器连接到调试器并开始调试时,调试器将使用内核的硬件调试模块进行调试操作。 2 调试框图 STM32F1和Cortex-M3的调试框图: 提示:Cortex-M3内核内含的硬件调试模块是ARM CoreSight开发工具集的子集。 ARM Cortex-M3内核提供集成的片上调试功能。它由以下部分组成: SWJ-DP:串行/JTAG调试端口 AHP-AP: AHB访问端口 ITM:执行跟踪单元 FPB:闪存指令断点 DWT:数据触发 TPUI:跟踪单元接口(仅较大封装的芯片支持) ETM:嵌入式跟踪微单元(在较大的封装上才有支持此功能的引脚),专用于STM32F1的调试特性 灵活的调试引脚分配