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

基于STM32F1软件仿真经验分享

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

0 J1 E6 m2 j) }检查配置5 s' C4 M# i) c
如下图
: [5 f7 D; v1 e/ C. ~5 n9 U0 s
( X" }7 a5 F# D& I, c2 `- L4 ?- R
1.png
3 Q/ l* c8 `( u9 i, _, l% r. x
0 }0 S0 @, m7 J; T
Debug 选项卡
& W, L* x- w* c5 R) r/ y) ^3 KUse Simulator,即使用软件仿真。选择:Run to main(),即跳过汇% M) i( @' @  `' p
编代码,直接跳转到 main 函数开始仿真。设置下方的:Dialog DLL 分别为:***DARMSTM.DLL ****和 TARMSTM.DLL,
+ N7 c" y- w& Z# J& e# W0 ?2 |, q7 v7 M+ V/ w( X& {
Parameter 均为:# \3 d# O- [9 o
9 S& |% l3 @' O) B( Y% k1 m  P
-pSTM32F103ZE) o% \$ ]' I/ b0 h7 f

# d* X/ q# V$ ]+ Y, u3 |,用于设置支持 STM32F103ZE 的软硬件仿真(即可以通过Peripherals 选择对应外设的对话框观察仿真结果)。最后点击 OK,完成设置。/ z" J6 ^" `: b

  _! ?0 _8 C2 {. v
150485d480346f26a2414cbe56a85149.png ( I; E& n+ Y! g# q6 f  S- j3 c
2 m* d1 V, S0 N
0af6feacf3275d0d132ffca725b47291.png
: s; G" @. y( Q& A8 {+ H

% v% A; T! k0 w' H; ?" }- t& m开始仿真( C- D: A! z8 r. K
我们点击 355a821b332f5ed8d3067daa3d47c797.png 开始仿真,进入仿真界面, {; t  t* S4 _% J1 k
' B, j! k( N1 w, N; y
b812047dd892a0feba6bd5908193732e.png
0 ], S' s9 e" c5 V. ]7 v
5 z! R! o, y3 N8 zDebug工具条
( {3 c# R$ }7 [0 B
! g: o, ]; `; Q3 a0 a& V/ n, M
9f863c2b4fc078ac9f8aa4140bea96d7.png 2 R/ ?/ H  j. x+ L
6 C+ s4 |. Z- p' r
复位:相当于硬件复位按键,从头开始# a* }/ M9 L7 j+ |

3 F  }" C3 W. x; M+ H3 s
执行到断点处:该按钮用来快速执行到断点处
, |+ J/ D# H1 G
4 o, C! U& u0 V* ^0 T/ r挂起:可以使程序停止下来,进入到单步调试状态: E' w) r6 h% G! D/ T3 Z; o) j0 @
2 |( [7 I6 ?; T6 F, s9 m6 a( `" k
执行进去:实现执行到某个函数里面去的功能,在没有函数的情况下,是等同于执行过去按钮的* t8 C$ f1 Q+ G; v" K) }

) K4 }, l. |7 L2 r9 z- _$ E& \# U( e执行过去:在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不进入这个函数单步执行# x! e( d3 F$ r% D; [' h. B
! I/ x5 j9 r# n8 @
执行出去:该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的位置。8 l6 A: l3 v2 E& G  d

( e1 f! B0 e: y0 p6 Z% P执行到光标处:可以迅速的使程序运行到光标处,其实是挺像执行到断点处按钮功能,但是两者是有区别的,断点可以有多个,但是光标所在处只有一个。
7 {2 _) x8 t' X( B% L/ w/ k7 l" T
+ y4 E, ~6 Q6 c* x汇编窗口:可以查看汇编代码,这对分析程序很有用。) j& R, Y+ l: \0 e& a2 G( l" `
0 r$ ]1 p5 E: _% X
观看变量/堆栈窗口:显示变量的窗口,在里面可以查看各种你想要看的变量值,也是很常用的一个调试窗口。; r2 c" i, p  h! h# O$ X
/ }4 y: {' _( J/ D; Y* ^- X# D
性能分析窗口:观看各个函数执行时间和所占百分比的窗口,用来分析函数的性能- Q' l3 D2 S2 ^$ Q2 o8 i( W" P
2 ^  j  C1 [/ V5 P( C* J5 N
逻辑分析窗口:按下该按钮会弹出一个逻辑分析窗口,通过 SETUP 按钮新建一些 IO 口,就可以观察这些 IO 口的电平变化情况,以多种形式显示出来,比较直观。
) z9 B' ^2 \9 w/ Y, j————————————————
# c! V$ @+ |3 C版权声明:Mr Harsh& a; r7 d! \* Q, z) C( V1 L
如有侵权请联系删除
3 E4 P5 r: c! f" u
4 G/ o0 ~: d# j% ^1 j% _7 J* l. d: H
收藏 评论0 发布时间:2023-5-14 18:44

举报

0个回答

所属标签

相似技术帖

官网相关资源

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