0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于STM32 ST-LINK Utility查看内核运行状态,助你判断程序是否跑飞

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-12 09:58 次阅读

本文围绕STM32 ST-LINK Utility讲几点主要功能及相关拓展知识:

1.STM32编程下载

2.利用该编程工具查看内核运行状态;

3.Option Bytes选项字配置;

1STM32编程下载

STM32 ST-LINK Utility一个最重要的功能就是对STM32进行编程。支持常见的hex、bin文件,还有早期摩托罗拉定义的srec和s19格式的文件(说实话,我都不了解这两种格式的文件)。

这里主要想提示一下初学者:hex带有地址,而bin文件不带地址,下载时需要填写起始地址。

下面看两张在STM32 ST-LINK Utility中下载选择文件的图大家就明白了。

1.选择hex下载,地址不可修改(灰色)

2.选择bin下载,需要填写起始地址

关于hex和bin的内容请参看我的另两篇文章:

1.关于bin、hex和axf文件格式的描述

2.MDK-ARM如何生产Bin文件

2利用该编程工具查看内核运行状态

之本节内容主要想讲述一下:利用STM32 ST-LINK Utility工具中Hot Plug热插拔模式,查看内核运行状态。

1.STM32 ST-LINK Utility模式说明

即设置中三种模式选择:

主要有三种,在这个工具的用户手册中可以看到:

大概意思是:

Normal:常规模式

连接目标(芯片)之后,芯片复位,然后暂停(halted)。

Connect Under Reset:连接复位模式

主要用于JTAG/SWD引脚被禁用的时候。

Hot Plug:热插拔模式

连接目标芯片,不复位/重置芯片,则此时可以查看芯片状态。

2.查看内核运行状态

硬件连接好:Target -> MCU Core

为什么讲这一条内容呢?

相信大家都遇到或听到过程序跑飞这种情况,当你的程序跑飞,这里讲的内容可能帮助你判断程序是不是处于跑飞状态。

因为这里可以查看MCU内核的运行状态,简单的说就可以查看PC跑到哪儿去了(你应用程序跑如果超过相应区域,说明跑飞了)。

举个例:你应用程序存储在0x08010000 ---0x08020000这个范围内,正常运行应用程序应该在这个范围内,但是你发现PC的值为0x08025000(不在范围内),那就说明跑飞了。

这里可以执行的操作有:运行、暂停、系统复位、内核复位、单步运行、读内核寄存器。类似于IDE中的在线调试(IDE在线调试需要有源代码,而这里不需要源代码,可直接查看PC执行到的地址)。

提示:PC:Program Counter即程序计数器寄存器,指向当前执行程序的地址,如果修改它的值,就能改变程序的执行流。(具体可以参看Cortex-M3内核寄存器所在章节)

3Option Bytes选项字配置

对Option Bytes操作常用的一个就是对Flash加密(读/写保护)。当然,读写保护可以通过程序代码实现,也可以通过这里说的选项字设置来实现。

拿F401举例:Target ->Option Bytes

STM32 ST-LINK Utility工具还有些特殊功能,可能我们不常用,比如:command line interface命令行接口、external loader developing加载外部程序等,感兴趣的朋友可以参看用户手册研究一下。

好了,本文就分享以上几点内容,希望对你们有所帮助。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2270

    文章

    10890

    浏览量

    355643
  • HEX
    HEX
    +关注

    关注

    0

    文章

    37

    浏览量

    16826
  • ST-link II
    +关注

    关注

    0

    文章

    3

    浏览量

    5839
收藏 人收藏

    评论

    相关推荐

    st-link仿真电机控制时出现干扰的原因?怎么解决?

    我用stm32做电机控制的调试,调试工具用st-link,但是发现仿真时一接上st-link,对电机的运行明显有干扰,显示的数据也不正确。求大侠指教。
    发表于 05-17 07:52

    st-link no target connected无法下载程序怎么解决?

    自己制作的板子!参考ST官方的ST-LINK电路进行设计制作的!之前还可以正常下载程序,最近突然就提示:st-link no target connected,无法下载
    发表于 04-23 07:44

    ST-LINK烧录STM32F103C8T6程序,烧录程序就会出现无法连接的情况是为什么?

    请教一个古老的问题.我用ST-LINK烧录一个STM32F103C8T6的程序,并设置了烧录完成自动运行程序开始跑了。然后在中途过程中,如
    发表于 04-07 07:44

    在KEIL和STM32 ST-LINK Utility中可以找到或连接到FLASH,但却无法ERASE,怎么解决?

    STM32F030R8 ST-LINK keil_v5 STM32 ST-LINK Utility在KEIL和
    发表于 04-03 07:27

    电脑完成最新升级,STM32 ST-LINK Utility没办法运行提示缺少mfc140.dll文件怎么解决?

    我的电脑完成最新升级,之后STM32 ST-LINK Utility没办法运行。先是提示缺少mfc140.dll文件。我从网上找了个文件放进相关文件夹里面,之后提示如下应用
    发表于 03-29 08:28

    STM32H7A3 NUCLEO出现了ST-LINK连接不上的情况怎么解决?

    个人在使用STM32H7A3ZIT6QU NUCLEO开发板的时候,前一天还正常正常下载程序。之后断开连接去拍照片,第二天再连接电脑的时候,就出现了ST-LINK连接不上的情况。在项目选项页面
    发表于 03-28 08:50

    ST-LINK Utility无法连接到P-NUCLEO-WB55.NUCLEO板是为什么?

    ST-LINK Utility 版本 目标开发板是P-NUCLEO-WB55 的NUCLEO64 板,跳线使用STLink供电; 问题是:连接不上开发板,按照UM2550文档操作到下载步骤。
    发表于 03-26 08:08

    ST-link\\Jlink\\串口连接不上stm32怎么解决?

    自己画的板子,再用stlink设置写保护后,就再也无法连接上. 不管是设置sram启动还是系统存储器启动,还是主存储器启动. STM32 ST-LINK Utility或是Jflash. 还是串口都无法连接上
    发表于 03-20 08:19

    STM32 ST-LINK Utility 4.2烧程序,过程中ST LINK的红绿灯一直不停闪烁,显示烧录成功芯片没有反应为什么?

    用的是STM32 ST-LINK Utility 4.2烧程序,这个软件可以识别芯片,过程中ST LIN
    发表于 03-20 07:35

    请问ST-LINK如何在IAR设置下载SWD接口的时钟速度?

    STM32 ST-LINK Utility就有配置设置时钟频率的,否则旧版本固件是灰色的Old firmware提示; 不知道有人是否有做过类似的配置?----
    发表于 03-20 07:31

    STM32L475安装好ST-Link驱动,电脑设备管理器中完全识别不到安装的ST-Link,怎么解决?

    关于STM32L475 ST-Link使用请教一个问题我安装好ST-Link驱动插上供电USB及供电USB后电脑设备管理器中完全识别不到安装的ST
    发表于 03-19 06:31

    ST LINK utilitySTM32G0采用SWD连接,使用ST LINK utility擦除全片程序时擦除不了怎么解决?

    ST LINK utilitySTM32G0采用SWD连接,可通过KEIL下载程序,而使用ST
    发表于 03-14 07:56

    STM32 ST-LINK Utility中开启读保护与在程序中开启RDP的区别是什么?

    STM32F103使用ST-LINK Utility量产模式,选择开启RDP后,单片机Flash读写功能出现问题。但是在程序中开启RDP,同样的程序
    发表于 03-07 08:22

    分享一下用ST-LINK Utility识别单片机程序是否

    最近有网友大概问了这样的问题:单片机项目偶尔经常出现异常,不知道是程序飞了,还是进入某个死循环了。
    的头像 发表于 01-09 11:40 3349次阅读
    分享一下用<b class='flag-5'>ST-LINK</b> <b class='flag-5'>Utility</b>识别单片机<b class='flag-5'>程序</b><b class='flag-5'>是否</b><b class='flag-5'>跑</b><b class='flag-5'>飞</b>

    keil5中debug检测不到st link

    将分析可能的原因并提供解决方法。 一、检查硬件连接: 确保ST-Link已正确连接到目标设备的调试接口,检查USB线缆是否正确连接。 检查ST-Link是否接收到电源供应,确保其指示灯
    的头像 发表于 01-05 14:43 1.3w次阅读