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

基于STM32F1软件仿真经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-14 18:44
MDK 的一个强大的功能就是提供软件仿真,通过软件仿真,我们可以发现很多将要出现的问题,避免了下载到 STM32 里面来查这些错误,这样最大的好处是能很方便的检查程序存在的问题,因为在 MDK 的仿真下面,你可以查看很多硬件相关的寄存器,通过观察这些寄存器,你可以知道代码是不是真正有效。另外一个优点是不必频繁的刷机,从而延长了 STM32的 FLASH 寿命(STM32 的 FLASH 寿命≥1W 次)。当然,软件仿真不是万能的,很多问题还是要到在线调试才能发现。+ {) C! l0 q, V  B' w3 f

: N. T" }' _4 p# o" O$ o检查配置
! d. Z% @" F1 g9 e' T) w0 w如下图( z) s" p8 @/ ]" S8 O
' C$ c+ R' N* W: @' `3 Y$ D
1.png & `2 M; D3 b. g( ]8 Y
! n; w3 l7 f5 E$ d. L. q& V5 Z
Debug 选项卡9 ^9 ]+ E9 L* |) U
Use Simulator,即使用软件仿真。选择:Run to main(),即跳过汇# V- V! D/ W8 ~: N
编代码,直接跳转到 main 函数开始仿真。设置下方的:Dialog DLL 分别为:***DARMSTM.DLL ****和 TARMSTM.DLL,8 J4 W( E+ B: Y& K
) p+ o* }$ P$ R  z8 _
Parameter 均为:& Q: ?: ^9 P1 V+ V
% {3 x5 K1 q. S$ T
-pSTM32F103ZE, S6 g% G$ \: o5 Z) _
1 a9 k9 u% p. }; H$ q
,用于设置支持 STM32F103ZE 的软硬件仿真(即可以通过Peripherals 选择对应外设的对话框观察仿真结果)。最后点击 OK,完成设置。
: U! `. V8 b3 x' }* X5 E) q% m, I0 E; A) u+ V+ P+ l  ~
150485d480346f26a2414cbe56a85149.png , c5 I" K' M% q. }8 r5 o
" g- T9 M% {% P1 L0 t: j! s. ?
0af6feacf3275d0d132ffca725b47291.png ! d4 `2 I7 [, J4 |0 N
4 x1 L2 R. p- |# }6 c
开始仿真/ s9 V2 U* a, u4 H
我们点击 355a821b332f5ed8d3067daa3d47c797.png 开始仿真,进入仿真界面; J  i4 b9 r( E% @" h, ]$ @
) `& |% G7 y7 H! i, T2 J- B  ]+ y
b812047dd892a0feba6bd5908193732e.png ( N* E% V6 |2 y; _6 i% Y) v

! g2 R3 I" N5 g' z, a0 xDebug工具条9 [; E% }( E7 V; ~9 U: C
& ~9 S- d) W. W( J- k$ X: ^
9f863c2b4fc078ac9f8aa4140bea96d7.png
0 L9 v, Z& {# b- e% Y' u+ X- R
% O" g) B) ^3 S; s6 j
复位:相当于硬件复位按键,从头开始
! m& i$ P) I4 Z3 P2 J- p7 M/ M
( R9 F2 M* f8 a& r4 @
执行到断点处:该按钮用来快速执行到断点处7 b6 y) ~3 `) G- ^
- C0 i+ ^& H7 c/ z+ P, {
挂起:可以使程序停止下来,进入到单步调试状态
% B* ^; T( j6 _, ?7 ^
4 @; \+ c' Q$ I2 a
执行进去:实现执行到某个函数里面去的功能,在没有函数的情况下,是等同于执行过去按钮的
( m: {. o: W$ Z8 [  R- y$ V" ?: _6 G0 `4 q7 i
执行过去:在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不进入这个函数单步执行
) F6 U* c2 j% Y) o# ^* V$ ~' {
. I) S0 x! M( |5 j$ O# c/ I# M  V执行出去:该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的位置。
" \7 {/ W7 w8 u7 J& H7 A4 H% S1 }7 x+ y. D  ~8 T, L% d" a" o0 Y0 Q& t
执行到光标处:可以迅速的使程序运行到光标处,其实是挺像执行到断点处按钮功能,但是两者是有区别的,断点可以有多个,但是光标所在处只有一个。3 O. ^6 u8 h0 M6 T7 t

% \  L, O' `; w. W9 i4 x汇编窗口:可以查看汇编代码,这对分析程序很有用。
* J+ D8 H) \" e
0 J" `: _3 i# R# ^1 m( ?
观看变量/堆栈窗口:显示变量的窗口,在里面可以查看各种你想要看的变量值,也是很常用的一个调试窗口。
; U) R% Z( g0 j) U& v; S4 J7 H9 f

: D( Q4 e# Z. O5 q1 L6 v2 x性能分析窗口:观看各个函数执行时间和所占百分比的窗口,用来分析函数的性能1 u# X6 o2 X4 j8 e9 e4 \; l! s
! }9 P" _0 P! @3 h  U
逻辑分析窗口:按下该按钮会弹出一个逻辑分析窗口,通过 SETUP 按钮新建一些 IO 口,就可以观察这些 IO 口的电平变化情况,以多种形式显示出来,比较直观。  A, W8 z7 _7 d7 H* V2 p8 e
————————————————0 Z' d% P! _# X5 S) m5 m! g- Q4 g
版权声明:Mr Harsh  l0 I# L# e. Z" c3 l9 o" v
如有侵权请联系删除" g& ^& D7 E9 A: R/ U

9 w8 I- J1 j0 ^% g  U) D; }
  s* o# p9 G) q: K2 g
收藏 评论0 发布时间:2023-5-14 18:44

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版