你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

ST-LINK Utility查看内核运行状态

[复制链接]
STMCU小助手 发布时间:2022-10-16 16:32
ST-LINK Utility 是一款针对 STM32 的下载编程工具,目前它被 STM32CubeProgrammer 代替了,官方已经停止更新,但它同样是一款很好的工具,也相对比较稳定。
" U6 a* c! W$ Q
1ST下载编程工具

针对 STM32 的编程工具,官方出了三个比较常用的工具,分别是:STVP、 ST-LINK Utility 和 STM32CubeProgrammer。

  n# f, Z4 x/ [; c. H0 J+ D8 ^) R
1.STVP
STVP:ST Visual Programmer,它是一款比较老的工具,之前ST早期的单片机编程。
+ P5 u& H% g, n5 }" }! c, NSTVP是一套可视化编程工具,提供了一个面向ST单片机的Flash全功能烧写环境,可方便的用于读取、写入和校验芯片内部存储器与选项字节。

" t' p. }  T" y: R8 p$ Y' P/ |% s5 r4 E! y& G& u9 N
微信图片_20221016163234.jpg

1 H) @* Z2 {( k% {2 j6 B, c* A' Q& n5 g
# @" L6 B0 |; a; ?/ \6 N" O) v2.ST-LINK Utility
; x- t$ F0 Q5 K. e) u& m  y6 WSTM32 ST-LINK Utility是一款比较经典的工具,目前还有很多工程师在用。
5 i# W5 A$ M; d6 H9 T0 u( u; H- ]% X它一个最重要的功能就是对STM32进行编程。支持常见的hex、bin文件,还有早期摩托罗拉定义的srec和s19格式的文件(说实话,我都不了解这两种格式的文件)。
+ Z2 n9 C; q; E8 n1 A; ?* c& {" J2 l, \# U$ l% o6 G* F' }. j
微信图片_20221016163229.jpg

) h* l/ X- P6 b7 l2 ~2 m- m5 ~5 \# ~+ F( i% a, F! `
3.STM32CubeProgrammer! [; t# z# `( X6 `# E% x( w& z
这个工具大概是前两年推出来的,由于它的推出,官方就基本停止了对 ST-LINK Utility 的更新 (好像推出之后,就更新了最后一版本 V4.5.0)
& G) o- S  I: U4 B$ x  ]2 H它的主要功能就是Programmer编程,功能和STM32 ST-LINK Utility有很多相似之处,但引入了一些新的功能。比如UART and USB DFU bootloader。
% H+ s+ x- ?* u
3 y5 _* d1 x8 t0 r+ O  R8 X- c
微信图片_20221016163225.jpg

' P1 A% w# C; ?$ U5 B3 _
$ t. E$ }2 D: V( \& [5 l
) o& L  F' k) o+ k8 ~* j2 d2ST-LINK Utility 编程下载
+ D* V; n: T& y2 N0 D& z
9 F5 R. ?/ h5 d. O4 _! X8 B. X3 W) [( G- h0 F

STM32 ST-LINK Utility 针对常见的hex、bin文件编程。


' O+ t; _' S: s8 A这里主要想提示一下初学者:hex带有地址,而bin文件不带地址,下载时需要填写起始地址。
2 p7 n3 R9 s1 L下面看两张在STM32 ST-LINK Utility中下载选择文件的图大家就明白了。( t6 M8 f+ W8 q" t* K
1.选择hex下载,地址不可修改(灰色)
$ s+ @% F3 [: M) Y# f

1 `) j; q6 d: d! H2 l- }
微信图片_20221016163221.jpg

/ Q9 @: y9 y' x- j( g, Y2.选择bin下载,需要填写起始地址
# o2 E2 ]. Q1 W2 _3 Y8 |1 N3 a: P1 p/ \2 ?9 o8 P  |4 O* O% k
! _) I% o. {: r* T$ V
微信图片_20221016163217.jpg
+ U1 s0 I9 S& D: U# k
3利用ST-LINK Utility查看内核运行状态

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


4 x. h4 f4 K% v+ K3 S2 m( M7 R, c& U1.STM32 ST-LINK Utility模式说明

/ Y; e) f& A$ d即设置中三种模式选择:
7 @+ r' [1 e0 l9 E  s. b9 v7 O* e7 ~: c) T# `. k+ A6 t4 e

% _) x* Q2 ~& c& o$ _/ G$ p
微信图片_20221016163211.png

: j3 w/ W1 ]' D/ s1 L) `& F( A' {% Y. z/ y8 y2 t

- d6 [# k/ O+ C* M( n7 u主要有三种,在这个工具的用户手册中可以看到:
! I8 G1 ^; G* K- O
# ^) g* S5 Z2 d; C/ w3 l4 L
5 u5 ?, g6 `1 u) }+ C
微信图片_20221016163206.jpg
6 b/ c! C1 D0 `3 b. u

, R2 D4 U% o: F% d; |5 S( [大概意思是:
* N% [3 A' c3 D4 T' i; U( N# r3 RNormal:常规模式
/ s8 `( j: B) C1 a6 ?/ A) X连接目标(芯片)之后,芯片复位,然后暂停(halted)。/ _' J! X5 {3 {2 A+ g* L5 s8 u
3 O1 X! x, M* H
Connect Under Reset:连接复位模式
+ ~/ u& W3 @8 G" d7 f
主要用于JTAG/SWD引脚被禁用的时候。. G" e% {  [6 K% ]: z

0 h9 B* u, t0 w$ jHot Plug:热插拔模式
9 r4 @) w5 T' e# v* t
连接目标芯片,不复位/重置芯片,则此时可以查看芯片状态。) C, b2 S7 Y9 f* H0 G
2.查看内核运行状态硬件连接好:Target -> MCU Core
$ ~" @& s# Q7 E. R: N! M; B! W

- J! @' y% g8 k/ _

  w) K8 T9 K" b2 M. x% v, F9 x% U! b
微信图片_20221016163202.jpg

/ _/ s$ q' G7 w- {
$ Y+ e; c2 a5 N  \4 O  j为什么讲这一条内容呢?2 W7 \+ _+ a0 a; K1 i
相信大家都遇到或听到过程序跑飞这种情况,当你的程序跑飞,这里讲的内容可能帮助你判断程序是不是处于跑飞状态。, f' i- J7 Q1 t) X9 K: j
因为这里可以查看MCU内核的运行状态,简单的说就可以查看PC跑到哪儿去了(你应用程序跑如果超过相应区域,说明跑飞了)。

$ l+ F5 S# N" h# }6 ]3 K4 f( `. U( h6 p2 M) Q4 ~9 }5 _0 T: e+ n
微信图片_20221016163159.png
1 }$ @6 T% T$ d. G0 g) \
1 ^6 f; L  |6 y& g7 }) g
举个例:你应用程序存储在0x08010000 --- 0x08020000 这个范围内,正常运行应用程序应该在这个范围内,但是你发现PC的值为0x08025000(不在范围内),那就说明跑飞了。
: J5 U  Z1 U- V+ x: ^7 T+ g9 n, _+ h
这里可以执行的操作有:运行、暂停、系统复位、内核复位、单步运行、读内核寄存器。类似于IDE中的在线调试(IDE在线调试需要有源代码,而这里不需要源代码,可直接查看PC执行到的地址)。
- Y% p8 \" r1 ~* s+ g

4 _- A: Y) L+ J4 m8 j" W
提示:PC:Program Counter即程序计数器寄存器,指向当前执行程序的地址,如果修改它的值,就能改变程序的执行流。(具体可以参看Cortex-M3内核寄存器所在章节)
" {2 G7 \; v! b; b9 R4Option Bytes选项字配置' X/ U: C( G; ?6 Q8 \+ w% y

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

5 k9 v1 g$ V& A# L8 o
拿F401举例:Target ->Option Bytes

# K& S6 E+ q3 n1 ]0 y* v0 I
/ X7 n& V& I: C( j" l, G7 S3 ^: ~
微信图片_20221016163152.png

( ^/ t) d; K1 v5 z$ a& i' z" H) }2 d9 H( y+ L
STM32 ST-LINK Utility工具还有些特殊功能,可能我们不常用,比如:command line interface命令行接口、external loader developing加载外部程序等,感兴趣的朋友可以参看用户手册研究一下。
4 t1 f$ q. C8 {2 N( E好了,本文就分享以上几点内容,希望对你们有所帮助。
& \% Z# |* M- \& W. m4 [  F. w( z- h' c' h, ?; F

& w# _3 ?9 A/ ~, o

, P0 R: v& P) i' k转载自:strongerHuang
. A& g: ?3 y1 G
/ ~9 c) G4 L; `: e7 H

  u* z/ L- X0 X2 D( X) S% r
收藏 评论0 发布时间:2022-10-16 16:32

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版