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
    +关注

    关注

    2305

    文章

    11121

    浏览量

    371167
  • HEX
    HEX
    +关注

    关注

    0

    文章

    37

    浏览量

    17370
  • ST-link II
    +关注

    关注

    0

    文章

    3

    浏览量

    5916
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何在vivado上基于二进制码对指令运行状态进行判断

    在扩展指令时我们常常需要一些手段来帮助我们判断指令是否能够成功运行运行状态是否正确。一方面,我们可以通过模拟器来实现,另一方面,在没有模拟
    发表于 10-24 06:46

    在vivado上基于二进制码对指令运行状态进行判断

    在扩展指令时我们常常需要一些手段来帮助我们判断指令是否能够成功运行运行状态是否正确。一方面,我们可以通过模拟器来实现,另一方面,在没有模拟
    发表于 10-24 06:31

    求助,关于RT-Thread Studio使用ST-Linlk调试遇到的问题求解

    :Users榻愭案蹇燶AppDataLocalTempSTM32CubeProgrammer_a04032.log does not exist ST-LINK SN
    发表于 09-29 06:36

    如何通过日常数据判断电源纹波是否超标?

    可观测的异常表现。结合日常可获取的数据(如设备运行状态、简单监测值、故障日志),可通过以下 4 个维度间接判断,覆盖工业、消费电子等常见场景: 一、通过 “设备运行状态的异常表现” 判断
    的头像 发表于 09-23 11:06 531次阅读
    如何通过日常数据<b class='flag-5'>判断</b>电源纹波<b class='flag-5'>是否</b>超标?

    用RTThread Studio进行debug,提示 ST-LINK 设备固件版本过低怎么解决?

    也没有按照我main函数中的设置亮灯 2.点击Debug,显示检测到 ST-LINK 设备固件版本过低,请使用 ST-LINK 官方固件升级工具升级 ST-LINK 固件! 3.报错日志
    发表于 09-16 07:11

    使用USB转TTL串口板和ST-LINK调试下载器给STM32单片机下载程序

    本文详细介绍如何使用ST-LINK/V2和USB转TTL串口板为STM32单片机下载程序,包括STM32启动模式、JTAG与SWD接口对比、驱动安装及官方软件
    的头像 发表于 06-20 17:26 2051次阅读
    使用USB转TTL串口板和<b class='flag-5'>ST-LINK</b>调试下载器给<b class='flag-5'>STM32</b>单片机下载<b class='flag-5'>程序</b>

    请问STM32U5不支持ST-LINK v2怎么办?

    STM32U5不支持ST-LINK v2怎么办?
    发表于 06-09 07:59

    keil在debug时出现Cannot access Memory*** error 122: AGDI: memory read failed (0xF81AF008)的原因?怎么解决?

    使用的开发板是ST官方的板子NUCLEO-G474RE,程序能用ST-Link烧录进去,但是没有现象(用的STM32CubeMx配置的初始化)。debug后发现
    发表于 04-23 08:13

    ST-LINKSTM32CubeProgrammer中无法连接到器件怎么解决?

    ST-LINKSTM32CubeProgrammer中无法连接到器件,对比发现serial number有些差别,这个ST-LINK的序列号比较奇怪,有哪位高手可以修改这个序列号么
    发表于 03-14 14:38

    怎样才能使用NUCLEO-H563ZI 识别出ST-LINK

    NUCLEO-H563ZI开发板在接上USB后,ST-LINK 在设备管理器里面没有显示,需要对STLKRST,就是跳线JP3 后拔掉,这是可以识别ST-LINK,然而,用MDK 时,提示
    发表于 03-14 13:59

    使用STM32 ST-LINK Utility和j-flash无法擦除怎么解决?

    在keil烧录程序中直接报错 使用工具擦除报 使用STM32 ST-LINK Utility 和j-flash也无法擦除这个要怎么解决
    发表于 03-12 07:07

    ST-Link读取原设备程序,再写入到新板子里面去,运行指示灯不闪烁是什么原因?

    我用ST-Link读取原设备程序,再写入到新板子里面去,写入成功了,但是运行指示灯不闪烁。不工作。是什么原因?有解决办法吗?
    发表于 03-12 07:03

    使用STM32F407ZGT6芯片做小车主控时,总是在运行时芯片突然被锁,无法下载程序怎么解决?

    在使用STM32F407ZGT6芯片做小车主控时,总是在运行时芯片突然被锁,无法下载程序。 使用STM32 ST-LINK
    发表于 03-11 06:20

    STM32使用STLINK烧录问题上电顺序的疑问求解

    上电,打开STM32 ST-LINK Utility软件连接,会偶发连接不上目标板的问题。3.3V优先无此问题,想问是否跟时序有关,但是手册中没有找到过相关资料
    发表于 03-10 08:01

    STM32WB55RG使用USB ST-LINK连接电脑显示未知USB设备,更新驱动后也没有变化,是什么原因?

    STM32WB55RG使用USB ST-LINK连接电脑显示未知USB设备,更新驱动后也没有变化,这大概是哪里的问题?
    发表于 03-07 07:13