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

基于STM32F1软件仿真经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-14 18:44
MDK 的一个强大的功能就是提供软件仿真,通过软件仿真,我们可以发现很多将要出现的问题,避免了下载到 STM32 里面来查这些错误,这样最大的好处是能很方便的检查程序存在的问题,因为在 MDK 的仿真下面,你可以查看很多硬件相关的寄存器,通过观察这些寄存器,你可以知道代码是不是真正有效。另外一个优点是不必频繁的刷机,从而延长了 STM32的 FLASH 寿命(STM32 的 FLASH 寿命≥1W 次)。当然,软件仿真不是万能的,很多问题还是要到在线调试才能发现。( g# Z! y: J) s" w  S
5 h( m2 ]- G* F0 H
检查配置
: U/ a, n7 D8 o- k- P! r1 Y1 x5 [0 K如下图$ M. b+ R, n3 T' j3 S4 e

9 r6 t. P( |0 ^! X! r
1.png
/ D$ H& Q- T. b7 v) `6 v
# X9 c/ c" W  v, i+ B
Debug 选项卡: e) b$ K/ f, k, s3 ~/ a4 c
Use Simulator,即使用软件仿真。选择:Run to main(),即跳过汇
1 X! m0 T6 ]3 _0 j编代码,直接跳转到 main 函数开始仿真。设置下方的:Dialog DLL 分别为:***DARMSTM.DLL ****和 TARMSTM.DLL,7 B; {6 v! V1 \6 u8 F' }" R: Q

- d# o( M, y& u& H- ^Parameter 均为:# \0 v  J* U4 v" g& S; Q/ K

1 V' ^3 A/ s' V) e-pSTM32F103ZE5 {8 b" a6 Y1 P0 I6 ^$ j
- z2 B( J- s6 t4 F
,用于设置支持 STM32F103ZE 的软硬件仿真(即可以通过Peripherals 选择对应外设的对话框观察仿真结果)。最后点击 OK,完成设置。
' P( w+ s9 T. T$ O
" {8 Y" f/ F9 e
150485d480346f26a2414cbe56a85149.png 0 @& [- m, a  G) l4 C

6 N4 X0 d% L' |
0af6feacf3275d0d132ffca725b47291.png
3 Q) j+ W6 `6 C6 u' p9 O
5 v- k* @5 s- I! H
开始仿真
6 E' d% d1 Z3 p0 A, s4 C9 {- {我们点击 355a821b332f5ed8d3067daa3d47c797.png 开始仿真,进入仿真界面: P' s' C& h. F: N
3 m. m! J* }7 {% Z7 L# W5 ~
b812047dd892a0feba6bd5908193732e.png " `1 N- f$ |1 u9 o0 U

" W( L) b5 V# \1 \* W" c+ \! d# YDebug工具条% ^8 e2 Q+ [" k( t( ?' ]' ^1 Z/ [

/ V8 c: B+ _; Q  f  {( e! ]
9f863c2b4fc078ac9f8aa4140bea96d7.png : D- V9 N5 ~2 z$ |2 l" m& _3 M
7 i( H# b( z7 i7 g
复位:相当于硬件复位按键,从头开始6 R( B6 {5 _# |: ^6 i' b# ~
- J2 G% I/ I) u2 G9 r& u
执行到断点处:该按钮用来快速执行到断点处+ K8 l# i6 L9 h% ]0 j4 i, s

4 c) L& k' [+ y. v挂起:可以使程序停止下来,进入到单步调试状态
6 Q- p' o; q6 K0 F
( f8 |+ V0 s* T  [0 b
执行进去:实现执行到某个函数里面去的功能,在没有函数的情况下,是等同于执行过去按钮的
9 S( U6 R' p% G1 L6 L5 I" g6 s$ f. z, _+ }; Q5 l" F
执行过去:在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不进入这个函数单步执行, j, k5 o6 h7 s- T/ d7 k

% S9 Q/ A& a; e, k4 z  B% v执行出去:该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的位置。
/ T2 f( L& P4 c3 e1 ?/ O, p' c! g" Z
8 }. u2 E$ n( F9 C执行到光标处:可以迅速的使程序运行到光标处,其实是挺像执行到断点处按钮功能,但是两者是有区别的,断点可以有多个,但是光标所在处只有一个。% h/ |9 K7 h7 `

5 c  B4 K, x0 w汇编窗口:可以查看汇编代码,这对分析程序很有用。& ~4 p  j5 Y  o: _7 j1 w+ o

# ^3 l& L0 l; z4 X' U, N观看变量/堆栈窗口:显示变量的窗口,在里面可以查看各种你想要看的变量值,也是很常用的一个调试窗口。: b7 B8 e( z1 \. D! e

) ]& I! H- c1 l* F( ^  Q性能分析窗口:观看各个函数执行时间和所占百分比的窗口,用来分析函数的性能: x1 c1 ^+ K2 l. I3 C3 C  f/ }% @& }- m

& _& u/ O( A" u- l% \* k# [+ B9 d逻辑分析窗口:按下该按钮会弹出一个逻辑分析窗口,通过 SETUP 按钮新建一些 IO 口,就可以观察这些 IO 口的电平变化情况,以多种形式显示出来,比较直观。, T: t5 E1 \# u9 n5 M
————————————————& A$ f8 `* {4 @$ e
版权声明:Mr Harsh6 L: x" U9 z# ?5 \
如有侵权请联系删除7 `5 E3 g! a" \& l

/ x! q' h8 N& j2 \* R% R1 L7 |/ m- O/ [) G
赞 收藏 评论0 发布时间:2023-5-14 18:44

举报

0个回答

所属标签

相似技术帖

官网相关资源

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