> 技术文档 > Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace

Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace


0 前言

最近在做FreeRTOS相关的实验,通过使用逻辑分析仪观察两个变量的值的变化,来观察系统阻塞延时工作过程。

本次使用的是STM32F103C8T6最小系统板,用STM32CubeMX软件配置引脚,在Keil5软件中编写代码,使用J-Link烧录及硬件仿真。

1 STM32CubeMX软件配置

在STM32CubeMX中,SYS–Debug–选择Trace Asynchronous Sw
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace
能看到右边的引脚配置多了3个Debug引脚

引脚 功能 PB3 SWO 串行输出 用于打印调试信息 PA13 SWDIO 串行线调试接口输出 PA14 SWCLK 串行线时钟

一般的调试只需要接SWDIO和SWCLK即可,但本次实验为了使用Keil5的逻辑分析仪,必须要接SWO,以便从MCU上获取各个数据。

完成之后,还需要配FreeRTOS相关的中间件,都完成后点击Generate Code,并在Keil5中编写相关逻辑代码。这里就不放全部代码了,代码主要逻辑就是创建两个任务,每个任务中分别有一个全局变量flag1和flag2,让这两个变量间隔2ms翻转一次。
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace

2 硬件连接

最小系统板引脚 J-Link引脚 3V3 3V3及Vref GND GND PB3 SWO PA13 SWDIO PA14 SWCLK

3 Keil5设置

3.1

按如下操作进入到J-Link的设置界面
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace
在Debug选项卡内,Port选择SW方式,其余默认
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace

Trace选项卡
勾选上Enable。Core Clock这里输入你的MCU工作频率,SWO Settings的CoreCLK这里,把Autodetect这个勾去掉,手动输入分频系数,我实测Clock在6MHz以下能正常工作。
Trace Events这一列的复选框都不勾选。
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace

3.2 Selected SWO Clock not supported问题解决

如果弹出了Selected SWO Clock not supported错误提示框,则说明你的SWO Clock设置过高

Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace
解决方法是将Core Clk(分频系数)这里调大点,即让SWO Clock变小点,再尝试。
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace

4 添加逻辑分析仪

启动调试,在View选项卡选择Analysis Windows – Logic Analyzer
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace

将待查看的变量flag1和flag2添加到逻辑分析仪
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace
在逻辑分析仪的变量处右键,改为Bit
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace
让程序继续运行,能看到flag1和flag2的翻转效果
Keil5 STM32 使用J-Link硬件仿真开启Trace 使用逻辑分析仪 解决Selected SWO Clock not supported_keil trace