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

基于STM32F1软件仿真经验分享

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

$ A5 Z, }; F/ q' G/ Y' C/ m& ~* l检查配置: v0 j: {  V8 `/ b. V
如下图$ M$ r) N7 ]( K% g# Q
; ?3 M, j; c+ ^
1.png
1 x; j7 m5 g2 B8 n) B
: q6 R8 @$ x  M: M3 r
Debug 选项卡
. D+ F" _, s8 k% F. h" {Use Simulator,即使用软件仿真。选择:Run to main(),即跳过汇8 R/ U' |9 J! U/ V; m
编代码,直接跳转到 main 函数开始仿真。设置下方的:Dialog DLL 分别为:***DARMSTM.DLL ****和 TARMSTM.DLL,
9 @8 F) Y/ B9 r& L) p  V3 O. e9 G! i7 Y- @& h
Parameter 均为:
% a  v7 Z$ J# ]7 S- ~% V
1 q( C. X8 o; c/ P3 `. D9 t-pSTM32F103ZE
. s  D" i- j2 R; |& y" z6 z4 f, `3 }; G' k1 q; v3 H& R
,用于设置支持 STM32F103ZE 的软硬件仿真(即可以通过Peripherals 选择对应外设的对话框观察仿真结果)。最后点击 OK,完成设置。
! P# t, [5 m6 u. o: j6 {5 g: _+ i! b; [, h# \  s
150485d480346f26a2414cbe56a85149.png
$ I8 \1 W$ A$ x' E3 T
& x# g# k5 Z' O; C2 C
0af6feacf3275d0d132ffca725b47291.png
0 G! |% e& d: ^

9 G# _% f2 b' J# ]/ m开始仿真1 `% b( n% k% k5 ]; \
我们点击 355a821b332f5ed8d3067daa3d47c797.png 开始仿真,进入仿真界面. Q: I4 ^" h5 q% B$ u" d$ O: V
# e+ ]% H5 n7 l2 r9 W
b812047dd892a0feba6bd5908193732e.png 8 S8 _0 m: y$ Y2 E/ V* V

9 s- K: U/ `  z/ X3 n$ f9 CDebug工具条
$ E! k* Q2 S) d. Z# l7 L7 l
3 d$ ]! B7 M9 ]6 U8 {' C7 V
9f863c2b4fc078ac9f8aa4140bea96d7.png 2 Y. r8 z+ J$ [. }' D" E

) G- h: J! L! f' V  ]( N. y复位:相当于硬件复位按键,从头开始
" f- e# j( M# \8 ]" q9 r8 E
8 `) u  C7 B5 h
执行到断点处:该按钮用来快速执行到断点处/ l- B3 J, O( I
3 ?" W' @; ]3 G
挂起:可以使程序停止下来,进入到单步调试状态
% I& o( d) E  p2 G0 K2 ^% h9 d7 Q& k+ n
执行进去:实现执行到某个函数里面去的功能,在没有函数的情况下,是等同于执行过去按钮的! n4 p" b! S5 R3 b- }& {
" s) E8 ~8 e2 t
执行过去:在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不进入这个函数单步执行# `4 Y& A/ G+ T

. s$ ^2 [7 v( d  V9 M$ Q; e# m: J执行出去:该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的位置。
* F% u- G; m" W5 `0 T4 L  y4 m0 z; ]8 @; l2 V
执行到光标处:可以迅速的使程序运行到光标处,其实是挺像执行到断点处按钮功能,但是两者是有区别的,断点可以有多个,但是光标所在处只有一个。
/ \. F! E# D- P
3 A- C# T# [* j0 p; |/ i8 h/ j汇编窗口:可以查看汇编代码,这对分析程序很有用。
9 {3 v: n, E$ U' Z

1 ~+ w; C9 r: Z& P% K, _观看变量/堆栈窗口:显示变量的窗口,在里面可以查看各种你想要看的变量值,也是很常用的一个调试窗口。; e% |" r4 O0 @: V" g' U4 y6 r
4 D- H* n3 j( A
性能分析窗口:观看各个函数执行时间和所占百分比的窗口,用来分析函数的性能" m" _, V& m- F6 _0 u

9 q1 z# N) j+ J! C' [' e6 a逻辑分析窗口:按下该按钮会弹出一个逻辑分析窗口,通过 SETUP 按钮新建一些 IO 口,就可以观察这些 IO 口的电平变化情况,以多种形式显示出来,比较直观。
' v% F' t* \! W" y————————————————
5 l( {1 ~: a3 i版权声明:Mr Harsh
. i3 V+ \6 K4 ]: S. h如有侵权请联系删除
5 o/ m  ^+ I: G( m  a! q2 W1 {! e# h- h
0 n  d; M6 n# d0 h) ^
收藏 评论0 发布时间:2023-5-14 18:44

举报

0个回答

所属标签

相似技术帖

官网相关资源

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