ST-LINK Utility是一款专为STM32设计的下载编程工具,用于将程序下载到STM32微控制器中进行烧录。虽然官方已经停止更新它,但它仍然是一款很好且相对稳定的工具。
STVP
STVP(ST Visual Programmer)是另一款常用的编程工具,是ST早期的单片机编程工具之一。
STVP采用可视化编程界面,提供了一个全功能的烧录环境,适用于读取、写入和校验芯片内部存储器以及选项字节的操作。虽然在ST32的开发过程中逐渐被ST-LINK Utility和STM32CubeProgrammer所取代,但在过去的使用中,STVP一直是编程工程师们广泛使用的工具之一。
总的来说,ST-LINK Utility和STVP都是比较常见且有一定历史的STM32编程工具,而STM32CubeProgrammer则是目前更为推荐和更新的工具。无论选择哪种工具,都需要根据具体的需求来决定。
![image-20231110225515258](https://pic.imgdb.cn/item/654e44cdc458853aefe9f89f.png)
2.ST-LINK Utility
STM32 ST-LINK Utility是一款比较经典的工具,目前还有很多工程师在用。
它一个最重要的功能就是对STM32进行编程。支持常见的hex、bin文件,还有早期摩托罗拉定义的srec和s19格式的文件(说实话,我都不了解这两种格式的文件)。
![image-20231110225709489](https://pic.imgdb.cn/item/654e44cac458853aefe9ebad.png)
3.STM32CubeProgrammer
这个工具大概是前两年推出来的,由于它的推出,官方就基本停止了对 ST-LINK Utility 的更新 (好像推出之后,就更新了最后一版本 V4.5.0)
它的主要功能就是Programmer编程,功能和STM32 ST-LINK Utility有很多相似之处,但引入了一些新的功能。比如UART and USB DFU bootloader。
![image-20231110225521137](https://pic.imgdb.cn/item/654e44cec458853aefe9fdf1.png)
更多详情可参看文章:
STM32下载编程工具 | STVP介绍、下载、安装和使用教程
STM32下载编程工具 | ST-LINK Utility介绍、下载、安装和使用教程
STM32下载编程工具 | STM32CubeProg介绍、下载、安装和使用教程
2ST-LINK Utility 编程下载
STM32 ST-LINK Utility 针对常见的hex、bin文件编程。
这里主要想提示一下初学者:hex带有地址,而bin文件不带地址,下载时需要填写起始地址。
下面看两张在STM32 ST-LINK Utility中下载选择文件的图大家就明白了。
1.选择hex下载,地址不可修改(灰色)
![image-20231110225525188](https://pic.imgdb.cn/item/654e44cdc458853aefe9fa48.png)
2.选择bin下载,需要填写起始地址
![image-20231110225528189](https://pic.imgdb.cn/item/654e44ccc458853aefe9f3c8.png)
3利用ST-LINK Utility查看内核运行状态
本节内容主要想讲述:利用STM32 ST-LINK Utility工具中Hot Plug热插拔模式,查看内核运行状态。
1.STM32 ST-LINK Utility模式说明
即设置中三种模式选择:
![image-20231110225531093](https://pic.imgdb.cn/item/654e44cac458853aefe9ea5c.png)
主要有三种,在这个工具的用户手册中可以看到:
![image-20231110225533882](https://pic.imgdb.cn/item/654e44cec458853aefe9fc01.png)
大概意思是:
Normal:常规模式
连接目标(芯片)之后,芯片复位,然后暂停(halted)。
Connect Under Reset:连接复位模式
主要用于JTAG/SWD引脚被禁用的时候。
Hot Plug:热插拔模式
连接目标芯片,不复位/重置芯片,则此时可以查看芯片状态。
2.查看内核运行状态
硬件连接好:Target -> MCU Core
![image-20231110225538423](https://pic.imgdb.cn/item/654e44ccc458853aefe9f664.png)
为什么讲这一条内容呢?
相信大家都遇到或听到过程序跑飞这种情况,当你的程序跑飞,这里讲的内容可能帮助你判断程序是不是处于跑飞状态。
因为这里可以查看MCU内核的运行状态,简单的说就可以查看PC跑到哪儿去了(你应用程序跑如果超过相应区域,说明跑飞了)。
![image-20231110225541685](https://pic.imgdb.cn/item/654e44cac458853aefe9ea98.png)
举个例:你应用程序存储在0x08010000 — 0x08020000 这个范围内,正常运行应用程序应该在这个范围内,但是你发现PC的值为0x08025000(不在范围内),那就说明跑飞了。
这里可以执行的操作有:运行、暂停、系统复位、内核复位、单步运行、读内核寄存器。类似于IDE中的在线调试(IDE在线调试需要有源代码,而这里不需要源代码,可直接查看PC执行到的地址)。
提示:PC:Program Counter即程序计数器寄存器,指向当前执行程序的地址,如果修改它的值,就能改变程序的执行流。(具体可以参看Cortex-M3内核寄存器所在章节)
4Option Bytes选项字配置
对Option Bytes操作常用的一个就是对Flash加密(读/写保护)。当然,读写保护可以通过程序代码实现,也可以通过这里说的选项字设置来实现。
拿F401举例:Target ->Option Bytes
![image-20231110225546049](https://pic.imgdb.cn/item/654e44cac458853aefe9eb9e.png)
STM32 ST-LINK Utility工具还有些特殊功能,可能我们不常用,比如:command line interface命令行接口、external loader developing加载外部程序等,感兴趣的朋友可以参看用户手册研究一下。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !
![137e00002230ad9f26e78-265x300](https://pic.imgdb.cn/item/654e44cbc458853aefe9ed72.png)