浅谈STM-Studio的变量实时观测功能

2018-05-16 09:29
单片机与嵌入式系统应用 2018年5期
关键词:编译器列表日志

(深圳航天科技创新研究院,深圳 518057)

引 言

在单片机调试过程中,能够实时地观测某些变量的值,对调试工作是十分重要的。它既可以让开发人员了解程序的运行情况,又可以反映出整个系统的动态信息。

以往,常见的实现方式主要有两种。一种是通过通信接口(如串口、USB)将要观测的变量发送到上位机中。上位机中运行一些调试助手类的工具,以数值或者波形的方式实现变量的观测。这种方式需要在软件中增加额外的代码,且占用部分通信接口及MCU的运行时间。另一种方式是用编译器(如IAR,KEIL)提供的一些观测窗口功能。但多数情况下,编译器提供的功能有限,往往只能实现对变化速率很慢的变量的简单查看。

STM-Studio是意法半导体专门为STM32开发的一款变量实时观测工具。其通过ST-LINK与STM32相连,除调试接口外,不会占用额外的引脚,且不需要对原程序做任何修改,大大地方便了软件调试工作。

1 STM-Studio功能简介

STM-Studio通过实时地读取和显示变量来调试和诊断STM32程序。它运行在PC上,通过ST-LINK与单片机相连。STM-Studio是一种非侵入性的工具,完全保存了程序的实时性,十分适合调试一些不能被暂停的程序,如电机控制程序等,并且可以多种图形视图。

主要功能有:

① 可以运行于各种Windows系统上。

② 通过ST-LINK与STM32相连(支持JTAG或SWD协议)。

③ 在程序运行时,从RAM中以非侵入的方式读取变量。

④ 从ELF文件中解析调试信息。

⑤ 两种类型观测方式。

a. Variable viewer——以示波器形式显示实时波形;

b. TouchPoint viewer——将两个变量组合成一个二维坐标系的坐标,显示点图;

⑥ 将观测的数据记录成文件,并且可以在工具中进行回放。

2 STM-Studio使用说明

2.1 导入ELF文件并选择变量

编译器在编译完工程后,会产生ELF文件,不同编译器的输出文件会有所不同。如在IAR中,可以选择产生*.out文件。

运行STM-Studio,点击Import variales from executable,在可执行文件框中选择工程输出的ELF文件,STM-Studio会自动识别里面的全局变量,并以列表形式显示出来,如图1所示。

图1 导入ELF文件

在图1中,选择要观测的变量,而后点击Import,在软件主界面的Display Variables settings窗口中,便可以看到添加进来的变量列表,如图2所示,列表中包含了变量的部分信息,如内存地址、数据类型等。

图2 变量列表

2.2 观测配置

用户可以对STM-Studio的观测做许多配置,以便更好地适合自己需求。这些配置主要包括——观测数据的采样率、采样范围和日志文件的存储位置等。

首先,用户可在Acquisition rate框中,输入希望的数据采样速率,最小为1 ms。但是,受制于ST-LINK的通信速率以及变量的数量和字长,最终的采样率不一定能达到用户期望的值。在日志文件中,会包含有每个采样点的相对时间信息,用户可从中获得真实的采样速率。

然后,在Variable selection选项中,用户可以选择软件采样的范围。此处推荐选择最后一个选项——Acquire only variables used by visible viewers。因为这个选项是三个选项中采样范围最小的一个,因此,采样率最有保障。

最后,在Log file框中,选择日志文件要存放的位置。观测功能开始后,软件会在相应位置创建一个文件,用于记录数据。每次重新开始观测功能,软件都会清空该文件原来的数据。

以上是几个常用的配置,除了这几项,STM-Studio还有许多其它配置,比如设置触发功能、与ST-LINK的连接设置等。

2.3 创建观测窗口

STM-Studio允许用户创建多个观测窗口,每个窗口显示不同的变量组合。在Viewers settings中点击右键,选择New viewer便创建了一个新的窗口。各个窗口间也可以有多种组合方式,如图3所示,创建了3个窗口,且将窗口2和窗口3单独出来。

图3 多窗口

2.4 向窗口加入变量

在第2.1节中的变量列表里面,选择变量,并在右键菜单Send to中指定变量使用窗口。在窗口的底部,会显示有哪些变量加入了该窗口,以及对应的曲线是什么颜色。

3 实例展示

A/D采样是在开发中经常用到的功能。有时,需要实时观测A/D采集的数据或者记录数据做一些分析。实例展示一个使用STM32F767的ADC采集信号发生器产生的正弦信号应用。

首先编写一个A/D采集的程序,在程序中,ADC的一个通道以1 KHz的频率采集信号发生器输出端的信号,并将其转换成电压值,该值以float型存储,命名为adc_value。然后编译工程,并按前面描述,将变量加入到观测窗口中。最后进行下载程序,并运行STM-Studio,得到如图4所示的观测曲线。 得到的日志文件如图5所示。

图4 观测曲线

图5 日志文件

结 语

参考文献

[1] ST.Getting started with STM-STUDIO,2014.

猜你喜欢
编译器列表日志
一名老党员的工作日志
学习运用列表法
扶贫日志
扩列吧
基于相异编译器的安全计算机平台交叉编译环境设计
游学日志
列表画树状图各有所长
不含3-圈的1-平面图的列表边染色与列表全染色
通用NC代码编译器的设计与实现
一种基于粗集和SVM的Web日志挖掘模型