STM32CubeIDE Jlink和SWV调试关键设置

上下文说明

使用STM32CubeIDE创建一个基于STM32Cube库的项目,那么,就会有一个名为xxx.ioc的STM32可视化配置文件被创建,下文中的ioc指的就是STM32CubeIDE中自动调用STM32CubeMX打开的ioc,我们会在该可视化配置文件中对MCU进行配置,以提高开发效率。

ioc的脚位设置

Pinout&Configuration > System Core > SYS
STM32CubeIDE Jlink和SWV调试关键设置_第1张图片

ioc的时钟设置

记住 Clock Configuration > FCLK Cortex clock(MHz)的值,在设置调试时要用到,这里是96,如下图所示:在这里插入图片描述

设置“项目”的属性中的Run/Debug Settings项

如果要使Debug支持多种调试器,比如Jlink、ST-LINK等,可为每种调试器创建一个“Run/Debug Configuration"。下面是创建Run/Debug Config的流程。
在这里插入图片描述STM32CubeIDE Jlink和SWV调试关键设置_第2张图片
Main选项用默认的即可:
STM32CubeIDE Jlink和SWV调试关键设置_第3张图片
调试器的设置(非常重要
STM32CubeIDE Jlink和SWV调试关键设置_第4张图片

菜单上的Run中有跳到Run/Debug Settings的项

如下图所示,只要一次 Debug As,下次直接Debug(F11)即会一直使用Debug As指定的设置,除非你再Debug As其它的设置。
STM32CubeIDE Jlink和SWV调试关键设置_第5张图片

按下F11启动Debug时出现"Confirm Perspective Switch"时该如何选择。

STM32CubeIDE Jlink和SWV调试关键设置_第6张图片

加入代码以使SWV支持printf

新建一个c文件(swo_support_print.c),输入下面代码,并使STM32CubeIDE的PRJ包含该源文件。

#include "main.h" //解决ITM_SendChar()未定义的错误;直接包含core_cm7.h,会很多错误。
int _write(int file, char *ptr,int len)
{
	int i = 0;
	for(i=0;i<len;i++){
		ITM_SendChar((*ptr++));
	}
	return len;
}

STM32CubeIDE Jlink和SWV调试关键设置_第7张图片

在Debug视图下设置支持SWV选项

首先按下F11开始Debug,然后暂停,按下图操作,以添加两个SWV窗口。
STM32CubeIDE Jlink和SWV调试关键设置_第8张图片
然后按下图所示设置SWV,再强调一次,要在Debug模式下才能设置。
STM32CubeIDE Jlink和SWV调试关键设置_第9张图片

你可能感兴趣的:(STM32,嵌入式软件开发,STM32CubeIDE,STM32CubeMX,Jlink,SWV,SWO)