基于STM32调试工具STM-STUDIO-STM32的使用
手上有stlink下载器,正好看到官网有这个工具,可以在运行中实时查看变量的数据。这一点和ucos的ucprobe很类似。
STMStudio是通过导入调试文件(.elf .out .axf)来实现调试和诊断的。
所以,你需要提前准备调试文件(.elf .out .axf)。
1.Keil MDK-ARM:编译之后,会在你工程中Objects目录下生成一个.axf调试文件。
2.IAR EWARM:编译之后,会在你工程中Exe目录下生成一个.out调试文件。
不过有区别:
STM-STUDIO-STM32是免费的,安装包小巧,仅限于stm32cpu,仅限于st-link下载器,只要运行stm的程序,都可以看,有无rtos均可,我的理解是变量只能是全局变量,函数里的自动变量无法查看。这个在导入变量的时候,就可以看到了,只有全局变量。
ucprobe需要jlink配合,无cpu限制,收费软件,能查看运行ucos系统的单片机,要是裸系统,则为验证过,变量也只能是全局变量,函数里的自动变量无法查看。
这样看多了一个调试的手段,而不用在keil里面添加变量,看数据,毕竟指示变量的数值,没有一个波形,STM-STUDIO-STM32可以在运行的时候查看变量的变化,这一点很有帮助。用户可以多方面的选择调试手段。
以上是自己的理解,以下是如何使用的转载文章。
原文作者:STM32中文社区网友toofree
同时参考https://www.mianbaoban.cn/mp/a4162.html
笔者参考STM32电机控制培训材料,将带着大家一步步学习STMStudio使用。
首先打开软件“STMStudio”。
打开后,显示如下空白工程界面。然后从文件菜单中选择导入变量选项。
选择浏览选项,去查找可用的目标文件。文件格式支持有“elf”、“out”、“axf”。找到我们本次使用的文件
“SDK50x-P-NUCLEO-IHM001-BullRunning.out”,确认选择可执行文件。
选择我们本次要观察的两个变量,“Tuning_ACD ”和“Tuning_Iqref ”,导入。
可看到左边显示变量设置中,已经出现我们添加的两个变量。 在观察设置中,点鼠标右键,弹出右键菜单中选择新建VarViewer。建议多添加一个VarViewer,ADC有采样值变化与转矩不在同一范围。如果在同一窗口,一个波形幅度太小。
可以看到,出现两个VarViewer窗口:
在变量“Tuning_ACD ”上,点鼠标右键,选择发送到VarViewer1。在变量“Tuning_Iqref ”上,点鼠标右键,选择发送到VarViewer2。
可以看到在两个VarViewer窗口下方分别出现“Tuning_ACD ”和“Tuning_Iqref ”字样,表示本窗口为各自观察窗口。点开始按钮,开始记录波形:
打开“Workbench”软件,打开Monitor监控窗口。连接已刷相应固件的目标板,并打开“Plotter”绘图窗口。
在“Workbench”的“Plotter”绘图窗口,“STMStudio”的VarViewer同时观察,转动电位器时,对应各变量的波形变化。
保存工程设置,文件菜单中选择Save Project As... 设置相应的路径与文件名,并保存为tsc文件,这个只是用户设置文件,浏览打开此文件也可打开工程。
点“显示设置”按钮,可以看到左边的绿色工程名。在此界面下,再次Save Project As...的时候,将弹出保存为STM Studio工程文件,tsp文件。
至此,完整的STM Studio工程建立、变量波形观察、保存工程,已经完成。下次直接浏览打开工程即可,不必每次都设置。
在第一次观察波形的时候,波形横向跑得很快,即时间轴单位比较小。并且纵向值区间也比较小。那么如果想要让波形显示慢一点,想在同一个窗口观察更多更完整的波形数数据,
该如何操作呢?
先跑一次程序,并且将电位器向两端各自打开头,也就是让变量的值出现满量程,然后停止。在停机状态下,在VarViewer窗口,有效数据区域,点鼠标左键,并向左拖动鼠标,这时将显示完整波形。点住左键,向右拖鼠标的话,把框选局部波形,将波形放大显示。
可看到完整波形:
下次启动执行的时候,将以上次时间轴单位来显示,当超出一定时间后,将波形压缩显示。如果再超过一定时间后,将滚动显示,不再压缩显示。具体时间这多少,需要自己摸索。在VarViewer窗口波形数据区,点住鼠标左键,向左划鼠标,多试试。
向右拖鼠标,出现框选。并看到波形放大显示。
原文作者:STM32中文社区网友toofree
基于STM32调试工具STM-STUDIO-STM32的使用的更多相关文章
- STM32入门系列-介绍STM32型号与功用
作为STM32初学者,一般会选择购置一块开发板,因为在开发板上有很多已经集成好的模块,如红外模块.按键模块.LED模块.DAC模块.ADC模块.can模块.485模块.以太网模块.WiFi模块.蜂鸣器 ...
- 基于IAR6或者IAR7建立STM32开发工程(通过实际测试,使用IAR6.30.4)
IAR和keil两个开发平台都是arm开发当中比较流行的平台,keil4的版本之间,可以兼容,但是版本4和版本5还是不兼容的,但是IAR的兼容性更加差,好像6.30.x之间是能够兼容的吧,没有实测过, ...
- MySQL存储过程调试工具-dbForge Studio for MySQL
工具官网地址:http://www.devart.com/dbforge/mysql/studio/ 对于某些存储过程很多且复杂的SQL的应用,在短时间内要使得所有MySQL存储过程和函数正常运行,那 ...
- stm32 堆和栈(stm32 Heap & Stack)【worldsing笔记】
关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的. 那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘: 刚接手STM32时,你只编写一个 int main() ...
- stm32 堆和栈(stm32 Heap & Stack)
关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的. 那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘: 刚接手STM32时,你只编写一个 int main() { whil ...
- STM32入门系列-学习STM32要掌握的内容
STM32芯片架构 STM32F103系列芯片的系统架构如下: STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令).S(系统).D(数据)三条信号 ...
- STM32学习笔记(三) STM32的GPIO的深入学习
STM32的开发学习主要涉及软硬件两个部分的实现,包含众多外设和总线的理解配置.STM32的整个学习曲线并不陡峭,但入门却相当困难,因此在学习之初,多动手实验和测试相当重要,GPIO作为整个STM32 ...
- 基于华为云IoT Studio自助生成10万行代码的奥秘
华为IoT小助手们搬好板凳.备好笔记本.听了HDC.Cloud的几场华为云技术架构师的直播讲课,感觉获益匪浅却又似懂非懂,直后悔自己没有好好打下基础.为了避免再次出现这样的情况,小助手偷偷跑去找了华为 ...
- STM32入门系列-STM32时钟系统,STM32时钟树
时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...
随机推荐
- Jquery对表单、表格的操作以及应用
表单的应用 (1)表单标签:包含处理表单数据所用的服务器端程序URL以及数据提交到服务器的方法 (2)表单域:包含文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框.和文件上传框 (3)表 ...
- 剑指offer37:统计一个数字在排序数组中出现的次数
1 题目描述 统计一个数字在排序数组中出现的次数. 2 思路和方法 (1)查找有序数组,首先考虑使用二分查找,使时间复杂度为O(log n).更改二分查找的条件,不断缩小区间,直到区间头和区间尾均为k ...
- win10使用vnc远程到Ubuntu 19.04
主要参考:https://www.cyberciti.biz/faq/install-and-configure-tigervnc-server-on-ubuntu-18-04/ https://ww ...
- IP 、127.0.0.1、localhost 三者区别
一.Ping命令 1.Ping命令,用来检查两台物理机间的TCP/IP网络是否通畅或者网络连接速度,是TCP/IP协议的一部分. 2.PING (Packet Internet Groper),因特网 ...
- java7:核心技术与最佳实践读书笔记——对象生命周期
流程:字节码文件(.class) -> 类加载 -> 类链接 -> 类初始化 -> 对象初始化 -> 对象创建 -> 对象使用 -> 对象回收 . 1.Jav ...
- gperftools源码分析和项目应用 - CPU Profiler
gperftools源码分析和项目应用 - CPU Profiler 原文:https://blog.csdn.net/yubo112002/article/details/81076821 原文链接 ...
- YOLOV3 训练WIDER_FACE
1. dowload the img and labels : http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/index.html 2.
- ES6入门十一:Generator生成器、async+await、Promisify
生成器的基本使用 生成器 + Promise async+await Promise化之Promisify工具方法 一.生成器的基本使用 在介绍生成器的使用之前,可以简单理解生成器实质上生成的就是一个 ...
- mpvue + 微信小程序 picker 实现自定义多级联动 超简洁
微信小程序官网只提供了省市区的三级联动,实际开发中更多的是自定义的多级联动: 依照微信小程序官网提供的自定义多级联动,需要使用到picker 的多列选择器,即设置 mode = multiSelect ...
- 转自:java 文件格式二进制头文件校验
转自:https://blog.csdn.net/useprogram/article/details/90637401public class FileTypeUtil { private fina ...