STM32如何使用使用仿真器下载程序

STM32如何使用使用仿真器下载程序,第1张

不用安装驱动。DAP支持下载和在线仿真程序,支持XP/WIN7/WIN8/WIN10,支持KEIL和IAR直接下载,非常方便。(实际上DAP本身还支持Linux等系统,只是需要软件支持)

把DAP用USB线连接电脑,如果DAP的灯亮则表示正常,可以使用。

仿真器的另外一端连接到开发板,给开发板上电,就可以通过软件KEIL或者IAR给开发板下载程序。

KEIL软件配置。

在DAP连接好电脑和开发板且开发板供电正常的情况下,打开编译软件KEIL,在魔术棒选项卡里面选择仿真器的型号。

点击  魔术棒->Debug页->下拉框选择CMSIS-DAP Debugger选项。

配置如图:

Debug Settings 选项配置,点击CMSIS-DAP Debugger右侧的Settings按钮,在d出的对话框中配置如下:

在Utilities页,勾选“Use Debug Driver”

选择芯片型号(若工程已配置该选项可忽略)

在Device中选择要下载的目标芯片,图中以STM32F429IGT6型号为例,请根据你自己使用的芯片选择。如果使用的是MDK5软件,可能找不到某些芯片,需要安装MDK的芯片支持包。可参考如下经验:

9MDK5 安装 破解

选择芯片的FLASH,具体选择多大的FLASH要根据板子上的芯片型号决定。例如STM32F103ZET6选512K,STM32F429IGT6选1M。这里面有个小技巧就是把Reset and Run也勾选上,这样程序下载完之后就会自动运行,否则需要手动复位。擦除的FLASH大小选择Sectors即可,不要选择Full Chip,不然下载会比较慢。

9

如果前面步骤都成功了,接下来就可以把编译好的程序下载到开发板上运行。下载程序不需要其他额外的软件,直接点击KEIL中的LOAD按钮即可。

10

程序下载后,Build Output选项卡如果打印出verify OK 表示下载成功,若步骤8中有勾选Reset and run选项,还会 Application running…表示程序下载成功并运行。

如果没有出现实验现象,按复位键试试。

GXWorks2软件,在没有硬件PLC的时候,可以应用软件自带的程序仿真功能,从而在一定程度上验证编程的正确性。其程序仿真功能的使用步骤如下:

1、打开GXWorks2软件,新建一个简单的工程,如图

2、单击工具栏上的“模拟开始/停止”按钮,或单击主菜单中“调试”-->“模拟开始/停止”选项

3、d出下面的窗口,等待写入完成后,单击“关闭”按钮

4、这时会看到GX Simulator2窗口,如图,选择“RUN”或“STOP”选项可以启动或停止仿真,在GX Simulator2窗口中选择“RUN”

5、在主窗口的“ *** 作编辑区”中选择梯形图中软元件“X0”,单击鼠标右键,在右键菜单中选择“调试”-->“当前值更改”

6、在d出的“当前值更改”窗口“on”按钮

7、可以看到“ *** 作编辑区”中变化如图:

至此就可以应用此仿真模式来进行工程调试,修改设计中的错误,达到预期设计的仿真效果。

simulation 与 emulation 的区别

解释一:

模拟(Simulation)即选取一个物理的或抽象的系统的某些行为特征,用另一系统来表示它们的过程。模拟技术的高级阶段称为仿真模拟(Emulation)、系统仿真,即用一数据处理系统来全部或部分地模拟某一数据处理系统,以致于模仿的系统能想被模仿的系统一样接受同样的数据、执行同样的程序、获得同样的结果。

解释二:

仿真 (Emulation) 是试图模仿一个设备的内部设计;模拟 (Simulation) 是试图模仿一个设备的功能。

解释三:

Emulation:When one system performs in exactly the same way as another, though perhaps not at the same speed A typical example would be emulation of one computer by ( a program running on) another You migh use emulation as a replacement for a system whereas you would use a simulation if you just wanted to analyse it and make predictions about it

Simulation: Attempting to predict aspects of the behaviour of some system by creating an approximate (mathematical) model of it This can be done by physical modelling, by writing a special-purpose computer program or using a more general simulation package, probably still aimed at a particular kind of simulation (eg structural engineering, fluid flow) Typical examples are aricraft flight simulators or electronic circuit simulators A great many simulation languages exist, eg {Simula}

解释四:

Simulation,是指用软件去模拟某个系统的功能,并不要求实现该系统的内部细节,只要在同样的输入下,软件的输出和所模拟系统的输出一致就可以了。比如你在 PC 机上用一个软件去 simulate 红白机的游戏 “超级玛莉”,你只要让你的软件运行出来的效果和红白机上 “超级玛莉” 游戏一样就可以,至于这个软件你是怎么实现则无关紧要。

Emulation,是指用软件去模拟出某个系统中各个部件的组成,真实地模拟出系统的运行机制。这就要求软件的作者需要非常了解所模拟系统的内部结构,能够利用各种数据结构实现出各个部件的模型。同样去 emulate 红白机的游戏 “超级玛莉”,首先就要用软件模拟出红白机中的各种硬件,如 CPU、内存、图形处理芯片、声音处理芯片以及游戏手柄等,再通过将加载游戏的 ROM 来运行该游戏。现在各种游戏模拟器,如 MAME、VirtualNes 都是采用 emulation 的手段去实现游戏的模拟,所以它们又叫做 emulator。

模拟就是指用在某个平台上用纯软件的方法去模拟另一个平台上程序的运行,模拟包含 “Simulation” 和 “Emulation”,通过上面对这两者的分析大家可以知道,“Simulation” 是一种高层次上的模拟,类似于 “黑盒”,而 “Emulation” 更注重于对底层的模拟,类似于 “白盒”。

仿真的解释就比较多了,有的说仿真是指用机器底层的微指令来解释执行另一个平台的指令,有的说仿真是软件结合硬件来模拟另一种平台程序的运行,即 “硬件仿真 + 软件模拟”。其实这两者是针对不同仿真对象和宿主平台而言的:前者具体的是讲系统仿真,是以大型机 CPU(现在也可以指 PC 机)为仿真对象的,通常在研制 CPU 的过程中,用宿主机的 CPU 去仿真其软件的运行,这样可以使硬件和软件的研发过程同步,加快整体系统的研发进度;后者一般指嵌入式仿真,做过嵌入式开发的朋友都知道,开发过程中经常要用仿真器去调试程序,我们可以在 PC 机上调试嵌入式系统中的某个程序,通过仿真器向嵌入式微控制器发送调试信号(如 JTAG),使微控制器执行某条指令,而 PC 机上会相应地显示出该条指令执行的结果,看上去似乎是 PC 在 “执行” 这条指令一样,这样来达到仿真的目的。但不管怎样,仿真总是与硬件相关的,这一点与模拟是有区别的。

现在还出现了 “虚拟机” 一词,在我看来,虚拟机更多地采用了模拟技术,而不是仿真,但是虚拟机相对于一个模拟器而言要复杂很多,像 Bochs 这样的虚拟机实质上应该是一个 emulator,而像 VirtualPC、VMWare 和 VirtualBox 这样的虚拟机,则采用了更为复杂的技术,既有 simulation,也有 emulation,甚至还有系统仿真,所以不能单纯地将它认为是一个模拟器。

解释五

simulation 是模拟出原系统的一个抽象模型,而不需要真的去做真实系统要做的事情。因此它其实不具备真实系统的功能,只是当某一功能执行时,通常不必输出功能执行的结果,只是在 simulator 中记录下由此引发的状态变化。因此它通常用于设计初期的模型验证。

emulation 则更进一步,要真正地去做所有真实系统能做的事情,只不过做的 “过程” 不同,它一般用于处理兼容性问题和在资源有限的条件下完成系统原型的实现。

如果把真实系统比作一个人的话,simulator 就是这个人的一幅肖像画,而 emulator 则是这个人的一个克隆人

举个例子,我们要实现一个 p2p 文件分发系统。

最开始的时候我们可以实现一个 simulator:它用一个函数来模拟节点间的通信,这个函数的输入是网络性能(带宽,跳数…),输出是通信时延 ———— 注意,并没有真正的数据在传输和拷贝,甚至都没有真正的节点,我们只是模拟了通信时延这个 “特征 (feature)”。

接下来,我们把这个分发系统实现了,编译成一个 exe 文件,但这时我们发现我们没有足够多的计算机来组成一个真实的、具有足够规模的网络来进一步测试(通常 p2p 网络的节点数成百上千),这时,我们可以写一个 emulator:它可以区分同一个计算机上的不同进程,因此我们可以在一台计算机上开 100 个进程,这样可以用 100 台计算机模拟出 10000 台计算机的网络 ———— 注意,此时数据真的是通过 Socket 在传输,只不过有的数据走的是 loopback 口,并没有真的进网卡。

解释六

simulation 是用软件实现,emulation 要涉及到硬件实现的部分。这个区分很简单明了,在很多情况下也是适用的(包括上面举的 p2p 分发系统的例子)。但是这种说法只是对于大多数情况的一种归纳性解释,因此在某些情况下就无法区分二者了。比如,这种解释无法区分 Operating System Emulator 和 Operating System Simulator———— 这个时候二者都不涉及硬件,这是因为真实系统 (Operating System) 本身就不涉及硬件。

再说说 “模拟” 与 “仿真”。首先,即使在正式场合下(如论文标题),{模拟,仿真} 和 {simulation,emulation} 这两个集合并不是一一映射的。你可以看到 "模拟 - simulation" 的组合,也可以看到 "仿真 - simulation" 的组合。显然,这个不一致现象是由于同时存在两种一一映射造成的。这个问题不是说理能解决的,还得随着使用次数越来越大,看大多数人的习惯。个人感觉,simulation 翻译成 “模拟”,而 emulation 翻译成 “仿真” 的情况多一些。

最后,提一下 “虚拟” 这个概念。这个概念最近火的不行,英文名叫 virtualization。我还没有仔细调查它和前两个概念的细微差别,但是可以肯定的是,virtualization 和 emulation 比较相似,和 simulation 不是一回事。其他的,以后查到再补进来吧。

解释七

维基百科上对仿真器 (emulator) 和模拟器 (simulator) 的解释如下:

仿真器(Emulator),又称仿真程序,在软件工程中指可以使计算机或者其他多媒体平台(掌上电脑,手机)能够运行其他平台上的程序,常被错误的称为模拟器。仿真器多用于电视游戏和街机,也有一些用于掌上电脑。仿真器一般需要 ROM 才能执行,ROM 的最初来源是一些原平台的 ROM 芯片,通过一些手段将原程序拷贝下来(这个过程一般称之为 “dump”)然后利用仿真器加载这些 ROM 来实现仿真过程。 (>

以上就是关于STM32如何使用使用仿真器下载程序全部的内容,包括:STM32如何使用使用仿真器下载程序、如何使用三菱GXWorks2 程序仿真功能、simulation 与 emulation 的区别(转)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9707985.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存