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

基于STM32F1软件仿真经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-14 18:44
MDK 的一个强大的功能就是提供软件仿真,通过软件仿真,我们可以发现很多将要出现的问题,避免了下载到 STM32 里面来查这些错误,这样最大的好处是能很方便的检查程序存在的问题,因为在 MDK 的仿真下面,你可以查看很多硬件相关的寄存器,通过观察这些寄存器,你可以知道代码是不是真正有效。另外一个优点是不必频繁的刷机,从而延长了 STM32的 FLASH 寿命(STM32 的 FLASH 寿命≥1W 次)。当然,软件仿真不是万能的,很多问题还是要到在线调试才能发现。5 w' P# o  l- e) k- {
& q) ^  x  ]6 i4 u* s/ j
检查配置! f( }! Y0 y+ \. Z
如下图
; P+ G) N+ c/ M* i
; k3 Y1 ]/ F8 K- V1 M$ U  k
1.png
* a+ W% a) Y* D* V. }0 N2 R
, K' A/ ^) r5 P5 _6 w4 D; s
Debug 选项卡8 r3 d6 ~$ o: L
Use Simulator,即使用软件仿真。选择:Run to main(),即跳过汇
  V$ M& H2 b) @0 l7 l+ o+ B编代码,直接跳转到 main 函数开始仿真。设置下方的:Dialog DLL 分别为:***DARMSTM.DLL ****和 TARMSTM.DLL,
  u- j  C4 q0 A6 p# J6 ]# ]# Z
3 Q( O5 n) R* i( K( |Parameter 均为:* a- k0 D" j# i% N- i! m1 l

* b: Y) O" k" ^" Q; c3 Z-pSTM32F103ZE
6 k6 y5 S' u4 [- m
; }5 d: @% O( D2 H3 d8 H/ y,用于设置支持 STM32F103ZE 的软硬件仿真(即可以通过Peripherals 选择对应外设的对话框观察仿真结果)。最后点击 OK,完成设置。
, P; s2 j% v$ i7 p: J# W, Q
& j) W& Q  j% U
150485d480346f26a2414cbe56a85149.png
3 h$ P7 t* E4 j2 }6 \9 L
5 |, B1 @2 N' H
0af6feacf3275d0d132ffca725b47291.png ; |, a! r% S" K

3 I5 B6 \2 l8 y) u. A& e4 ?开始仿真' v% w' @7 T8 Q+ O( ]
我们点击 355a821b332f5ed8d3067daa3d47c797.png 开始仿真,进入仿真界面
9 O0 d( \; }9 `2 \1 }" n% U, X! l( l( r7 e/ f; s, a( \' v. u
b812047dd892a0feba6bd5908193732e.png
7 ?2 ~3 _' X* h8 }' U; D3 g$ Y
5 {5 w( h, {5 O& L% X3 JDebug工具条3 I; f. Q3 a$ A; ]3 r* E$ B" v. A

6 f2 R: {7 v. I
9f863c2b4fc078ac9f8aa4140bea96d7.png
3 s2 s. g  q$ [2 p, b

# U$ z1 }, c2 `0 T5 ]8 I8 _复位:相当于硬件复位按键,从头开始
" t# T+ w& H5 J6 k0 q% j. g1 S0 h; n2 H
执行到断点处:该按钮用来快速执行到断点处
* Q+ U; D8 `& d* I& B
( e: k  V+ m/ P& m% g挂起:可以使程序停止下来,进入到单步调试状态
- B# j1 D# c- K: P+ A3 t+ f1 K' S5 {8 |4 G
执行进去:实现执行到某个函数里面去的功能,在没有函数的情况下,是等同于执行过去按钮的
( X/ T7 ^. j* T: s) M4 t+ N! ?; x6 E4 B; ]+ n' X$ `
执行过去:在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不进入这个函数单步执行/ q6 t3 d% P( ~4 y: y

2 D7 z" ]2 ?: c% L$ U执行出去:该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的位置。
+ Y  X; x9 @: }9 p5 ]' D  K# E7 }# D8 b9 P( I% u
执行到光标处:可以迅速的使程序运行到光标处,其实是挺像执行到断点处按钮功能,但是两者是有区别的,断点可以有多个,但是光标所在处只有一个。+ I) J, H6 d6 V# ?5 }+ o/ @

5 P: L  ?1 ?4 B' m" Y" [; J. N6 ?汇编窗口:可以查看汇编代码,这对分析程序很有用。- P& B: q: o1 z8 s  `

6 V& t# ~5 G. X( L4 P  E观看变量/堆栈窗口:显示变量的窗口,在里面可以查看各种你想要看的变量值,也是很常用的一个调试窗口。
# B* g9 v3 O# ?3 t9 D# B

2 q0 x+ o$ c2 S7 w- q性能分析窗口:观看各个函数执行时间和所占百分比的窗口,用来分析函数的性能- U9 D( S/ |6 m0 {7 H! ]

+ X0 l; j( p. S5 o6 h# u- q逻辑分析窗口:按下该按钮会弹出一个逻辑分析窗口,通过 SETUP 按钮新建一些 IO 口,就可以观察这些 IO 口的电平变化情况,以多种形式显示出来,比较直观。
& x8 {/ a% p. e' o————————————————" F% A4 W( y7 g( }% O6 c! X+ W, u
版权声明:Mr Harsh
* J0 G# X3 {5 T6 L' G- ]如有侵权请联系删除
7 \& w! y# |0 u" R+ d0 f* j3 s) z

9 t4 I. Z7 C# g7 n& ?
赞 收藏 评论0 发布时间:2023-5-14 18:44

举报

0个回答

所属标签

相似技术帖

官网相关资源

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