0503-stm32的调试工具:st-link详细解析 (命令行/ st utility/ cubePorbrammer)

这篇具有很好参考价值的文章主要介绍了0503-stm32的调试工具:st-link详细解析 (命令行/ st utility/ cubePorbrammer)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.1-综述

从事stm32开发的话,肯定绕不开stlink,使用stlink开发stm32时用到的知识点。对于常规开发而言,80%时候会使用keil或vscode对目标芯片进行下载与在线调试,简单的bug我们一般反复下载就行了,复杂的bug需要进行单步调试、查看寄存器、输出swo信息等。本文简单介绍stlink的两个工具st-utility和cubeProgrammer,重点介绍st-link的命令行的使用,因为越来越多的人会(抛弃keil)转向使用vscode调用stlink进行开发,最后对stlink和jlink进行简单对比。

stm32stlink,stm32,单片机,嵌入式硬件

1.2-stlink是啥?

stlink或st-link是一个解决方案,有st-link下载器和对应安装在windows上的驱动与工具。这个解决方案用于实现st自家芯片的下载与在线调试功能。在嵌入式开发领域,涉及的知识点太多,所以每一块都是分层的,有严格的架构,层与层之前发展出标准的通讯接口。stlink硬件与驱动,它连接了目标芯片与电脑上的开发软件,如KEIL调用"stlink驱动+stlink下载器硬件"实现对目标芯片的访问,就能进行程序下载与调试。另外,再在上面加一个gdb server接口,这下就可以被通用的编译器调用,如vscode就实现了keil的下载与调试功能,具体在其他博客中详解。

2.1-stlink的软件与硬件

在st的官网STM32 ST-LINK utility上可以购买stlink的硬件及免费下载st-link的软件,stlink的硬件在国内有很多变体或仿器,应当注意这些都是侵权的,所以硬件很容易获得,而且大部分是V2.1版本的;关于软件工具,有utility和cubeproprammer两个,官网已经称前者被后者取代,两者在开发中一般是用于下载bin文件以及解锁芯片的。但是不得不说,体验上来讲utility跑得更流畅,cubeprogrammerg还需要一两年才能流畅使用,这两者的功能基本是一样的,后都有一些额外的功能,但是极少用到。

note1: utility工具有一个bin文件对比的功能,算是小惊喜吧,如下图所示。

stm32stlink,stm32,单片机,嵌入式硬件

 stm32stlink,stm32,单片机,嵌入式硬件

2.2-使用stlink命令行 准备文件及配置

下面是重点,讨论使用命令行访问stlink. stlink-org/stlink官网( stlink-org/stlink: Open source STM32 MCU programming toolset (github.com))详细的教程有一个在这里有一个.md说明文件(链接 stlink/tutorial.md at develop · stlink-org/stlink · GitHub)
直接下载执行文件,解压,bin里面有这几个功能函数,官网有说明这些模块是干啥用的,简单来说,如下面截图所示, st-info是读取芯片信息的,st-flash是读写flash用的,st-trace跟踪记录用的如打开关闭swo输出,st-util是给vscode调用   Cortex-Debug 的接口,用来在线调试的。

stm32stlink,stm32,单片机,嵌入式硬件

 解压后能看到这几个功能函数。

stm32stlink,stm32,单片机,嵌入式硬件

在环境变量里把它的路径放入path里,这样可以让对应目录下的.exe变成全局指令;如果是linux系统,把文件解压到usr/local/bin下就行了。

stm32stlink,stm32,单片机,嵌入式硬件

 2.3-测试命令

接下来测试:随便找个终端,如自带的cmd或git-bash都可以,(但是MSYS2不可以),测试st-info命令,如下测试了3条,【1】直接打入进去st-info后显示使用帮助,【2】打入指令后查看连接的stlink信息,这些信息和使用utility或cubeprogrammer读取的信息是一样的,因为他们调用相同的接口驱动,【3】如果没有连接任何stlink设备,则显示无设备的提示。

stm32stlink,stm32,单片机,嵌入式硬件

 2.4-st-flash下载指令测试

同上,可以直接键入st-flash回车来查看使用帮助,查看版本:

stm32stlink,stm32,单片机,嵌入式硬件

直接下载测试,打入下面指令就可以直接下载并运行,如图所示

stm32stlink,stm32,单片机,嵌入式硬件

我们break down分析一下,指令的完成了“把什么bin文件下载到什么地址去”的任务

  1. --reset 是要求下载完成后发送复位指令,即下载完成自动运行程序

  2. write 是主要参数,表示是写文件,也可以是read读文件

  3. /f/stm32/may12/build/may12.bin 是个可下载的bin文件,

  4. 0x08000000 是flash的地址,这个地址搞stm32肯定要记住的,是flash的起始地址

也可以指定速度,最快4000K, 其实是jlink的默认速度,还是jlink快。

$ st-flash --reset --freq=4000k write /f/stm32/may12/build/may12.bin 0x08000000

note: 这个指令配置到vscode的脚本里,就可以实现一键下载,具体参见其他博客。

另外还可以自行测试一下st-trace指令,可以在命令行里看stlink的swo输出(这里程序上写了通过swo输出计数值),使用的时候需要通过命令行告知芯片的cpu主频,因为swo是直接与cpu进行通信的。stm32stlink,stm32,单片机,嵌入式硬件

 3.1-stlink与jlink的不同

首先应当注意,如果是针对st的芯片进行开发的话,这个比较对jlink是不公平的。先说比较结论,做debug工具是一个专业领域,jlink是大佬(售价也很大佬),stlink是st针对自家芯片做的调试器,价格便宜。有jlink在手基本上可以debug任何厂家的mcu,而且在下载速度方面,jlink比stlink快很多。 但但但但是,如果你是做开发的,且只是针对st平台的,那么stlink是足够的,可以顺便在下载的时候休息几秒钟。

下面截图是jlink官网论坛对”jlink与stlink有什么差别“的回答。

[SOLVED] Difference between JLink and ST-link - J-Link/Flasher related - SEGGER - Forum

stm32stlink,stm32,单片机,嵌入式硬件

stlink自称是地球上最快的下载器,下图是针对stm32417ig(500kB)的片上flash下载测试结果,使用SWD接口,结果显示jlink下载速度最强,stlink下载速度最慢。【参考链接  J-Link is the Fastest (segger.com)】

stm32stlink,stm32,单片机,嵌入式硬件

 3.2-结论

总结一下,除了除st-utility、cubeprogrammer外,还可以使用命令行进行查看与下载,这些命令行实际并不方便使用,但是可以通过这些操作可以加深对下载与仿真的理解,同时帮助理解vscode如何集成这些功能,在这些命令行基础上,可以配置vscode实现和keil一样的一键下载,一键擦除,一键复位,在线单步,查看寄存器等方便开发的功能。

扩展1-请查看关于jlink使用的博客

扩展2-请查看关于openocd使用的博客

扩展2-请查看关于vscode自动化调用这些调试服务的博客文章来源地址https://www.toymoban.com/news/detail-743902.html

到了这里,关于0503-stm32的调试工具:st-link详细解析 (命令行/ st utility/ cubePorbrammer)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 ST-LINK Utility使用步骤

    STM32 ST-LINK软件可以实现快速对STM32系列微控制器的在线编程,通过ST-LINK, ST-LINK/V2 and ST-LINK-V3仿真器。 这里提醒的是,该软件不是仅仅可以编程,也可以设置一些FLASH上锁,等等自定义操作,本文主要讲述怎么使用烧录hex文件。 首先从官网下载STM32 ST-LINK Utility软件,ST的软件还

    2024年02月11日
    浏览(41)
  • STM32 ST-LINK Utility安装及使用

    TM32 ST-LINK Utility集成开发环境的安装比较简单(基本上就是一路Next下去)。还是按照常规安装教程(截图)讲述一下吧,以上面下载的“STM32 ST-LINK Utility v4.0.0 setup.exe”软件为例讲述。 1.解压软件,双击“STM32 ST-LINK Utility v4.0.0.exe”,进入准备安装(解压)过程。 2.进入安装向

    2023年04月09日
    浏览(45)
  • 使用STM32 ST-LINK Utility 烧录程序,ST LINK烧录程序,解锁FLASH

    :ST LINK烧录程序,STLINK烧录程序,ST-LINK烧录程序,STLINK烧录程序,ST LINK解锁Flash ST-LINK Utility下载:文末附带下载地址,免费下载、免积分下载。 使用 ST-Link 连接 STM32芯片,打开STM32 ST-LINK Utility 软件, 连接芯片:Tarage  - connec t或直接点击连接快捷按钮(如下图)。

    2024年02月04日
    浏览(43)
  • STM32烧写程序:ST-Link驱动下载和安装

    在进行STM32微控制器的烧写程序之前,我们需要先安装ST-Link驱动程序,并确保其能够正确连接到目标设备。本文将提供详细的步骤说明,以帮助您下载和安装ST-Link驱动程序。 步骤1:下载ST-Link驱动程序 首先,我们需要从STMicroelectronics官方网站下载ST-Link驱动程序。请按照以下

    2024年01月15日
    浏览(73)
  • Linux使用命令行编译并用st-link烧录STM32

    在STM32CubeMX中配置,选择Makefile并生成。 编译工程需要用到 arm-none-eabi ,去官网下载对应系统版本,下载后解压到任意位置。 添加环境变量 添加环境变量到 .bashrc 文件: 我解压的位置为 /toolchain/arm-none-eabi ,原文件名包含版本号,我修改了文件夹名。 在工程目录下进行编译

    2024年03月09日
    浏览(61)
  • STM32使用ST-Link下载器下载正确操作方式以及ST-LINK下载失败“target dll has been cancelled”等错误

    ST-LINK V2 ST-Link是ST意法半导体为评估、开发STM8/STM32系列MCU而设计的集在线仿真与下载为一体的开发工具,支持JTAG/SWD/SWIM三种模式。 支持所有带SWIM接口的STM8系列单片机 支持所有带JTAG/SWD接口的STM32系列单片机 我们使用C8T6开发时,往板子里面下载程序,使用ISP串口比较繁琐,

    2023年04月08日
    浏览(59)
  • stm32f407 st-link v2的正确使用

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、安装ST-LINK/V2 二、使用步骤 1.接线 2.配置 总结 之前一直在用串口下载,比较麻烦。在淘宝上看到10多块的ST-LINK/V2下载器,小巧,接线少,还可以在线调试。但是到货后使用却一直连不上,

    2024年02月15日
    浏览(55)
  • 【STM32开发环境搭建】 - st-link驱动安装和串口驱动安装

    下载地址:https://download.csdn.net/download/weixin_39035140/86248921 包含软件如下: 1、下载线我们使用了st-link,为了能够下载程序到开发板,需要先安装st-link驱动。打开设备管理器,可以通过热插拔法确认是哪一个设备(STM32 STLink显示感叹号就是缺少驱动),右击更新驱动,选择浏览

    2024年02月12日
    浏览(48)
  • 【STM32】自举模式 和 程序下载(ST-Link和串口示例)

    STM32官方网站 STM32中文社区 如果遇到不清楚的概念,可以看之前的文章。 STM32有一个特殊的功能,就是可以通过不同的方式启动程序,这就是所谓的自举模式(Boot Mode)。 STM32的自举模式由两个引脚控制,分别是 BOOT0 和 BOOT1 ,它们可以接到不同的电平(高电平或低电平),

    2024年02月04日
    浏览(39)
  • STM32烧写程序:Keil5使用ST-link下载程序

    首先需要连接ST-link到电路板: STM32烧写程序:ST-link V2调试下载器实物和连接方式 然后安装ST-link驱动: STM32程序烧写:ST-link驱动下载和安装 编译一个无错误的工程 点击工具栏的魔法锤 点击Debug,选择ST-Link Debugger 然后点击Settings ST-LINK/V2适配器,SW模式,看芯片是否被识别

    2023年04月08日
    浏览(98)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包