STM32 为CubeMX FreeRTOS项目添加Segger SystemView支持

SystemView是Segger官方出品的嵌入式操作系统观测软件,仅需使用JLink与嵌入式设备连接,在目标设备上添加下位机代码即可监视包括但不限于FreeRTOS等操作系统,同时也支持裸机程序,最终能够实现观测系统运行事件,任务时间线,任务详细信息统计(阻塞,运行时间,CPU占用率,栈使用信息)等等非常丰富的监控内容。

系统环境:

  • 目标芯片:STM32F103RCT6
  • CubeMX版本:6.7.0
  • Keil版本:5.36
  • FreeRTOS版本:10.0.1
  • SystemView版本:3.50a

本文目标为Segger SysteView自动监测的配置,即打开软件开始监测,监测时长受限与本地计算机磁盘大小,另外两种方式分别为single-shot和持续录制的模式,前者需要手动指定segger事件记录缓冲区大小,记录满后会停止记录,后者也需要指定缓冲区大小,但是区别在于记录满后会覆写旧数据,该循环覆写模式特别适合记录系统死机、崩溃、异常等问题发生前的系统活动,但在本文中不再详细讲解如何配置。

一、CubeMX FreeRTOS项目设置

为了能让SystemView使用FreeRTOS相关API,需要开启FreeRTOS Trace功能,该功能位于CubeMX中如下
在这里插入图片描述

二、部署SystemView下位机代码

1.下载资源

接下来下载SystemView上位机软件和下位机代码

下位机代码下载链接

Windows64位上位机下载链接

原下载页

2.为项目添加代码

下位机源码目录主要分为三部分,config配置相关头文件,sample根据目标系统自行选择,SEGGER实现Segger RTT技术的核心代码

在项目根目录下新建Analyze文件夹,并将如上三个文件夹复制到其中,因为我们的目标系统是FreeRTOS,所以sample目录中可以只保留FreeRTOSV10文件夹

在这里插入图片描述

这里我们在Keil中为项目新建一个组任意命名,并向其中添加如下文件

keil项目组织示意

前两个文件位于SEGGER文件夹中,后两个文件可以在sample/FreeRTOSV10和sample/FreeRTOSV10/config文件夹内找到

3.为项目添加Include路径

keil设置include路径
添加内容

根据个人文件夹命名添加最后三个路径,至此所有文件已经添加完成。

4.Patch文件应用(可选)

针对FreeRTOS Segger下位机软件包内还包含了可额外跟踪调度器调度时间监测的patch文件,需要改动两个头文件和一个c文件,据我在STMF103RCT6平台上72Mhz速度运行测试FreeRTOS调度器耗时一般在几十微秒内,如无需跟踪该数据可以不用使用该Patch文件。

使用CubeMX生成项目使用FreeRTOSV10_Core.patch文件

需要更改的文件路径如下

Middlewares\Third_Party\FreeRTOS\Source\include
                                     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值