一、软件仿真

Keil有很强大的软件仿真功能,通过软件仿真可以发现很多将要出现的问题,Keil的仿真可以查看很多硬件相关的寄存器,通过观察这些寄存器值的变化可以知道代码有没有正常运行。这样可以避免频繁下载程序,延长单片机Flash寿命。

开始仿真之前,先配置一些选项。

1.在工程设置里设置好芯片型号和晶振频率。

2.在“Debug”选项卡中选择“Use Simulator”,表示使用软件仿真;选择“Run to main()”则表示跳过汇编代码,直接跳转到main函数开始仿真。设置下面的“Dialog DLL”项为“DARMSTM.DLL”和“TARMSTM.DLL”;parameter项为“-pSTM32F103C8”,用于设置支持STM32F103C8的软硬件仿真。

3.点击开始仿真,这个时候会多出来一个工具条,就是Debug工具条。

1     2   3    4   5   6    7               8            9   10   11   12   13           14

1:复位,其功能等同于硬件上按复位按钮,相当于实现了一次硬复位。按下该按钮后,代码会重新从头开始执行。

2:执行到断点处,按按钮用来快速执行到断点处,有时候并不需要观看每步时怎么执行的,而是想快速执行到程序的某个地方看结果,这个按钮就可以实现这样的功能,前提是已在查看的地方设置了断点。

3:停止运行,此按钮在程序一直执行的时候变为有效,可以使程序停止下来进入到单步调试状态。

4:执行进去,该按钮用来实现执行到某个函数里面去的功能,在没有函数的情况下等同于执行过去按钮。

5:执行过去,在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不进入这个函数单步执行。

6:执行出去,该按钮是进入了函数单步调试的时候,有时候可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数回到函数被调用的位置。

7:执行到光标处:该按钮可以迅速使程序运行到光标处,与执行到断点处按钮功能类似。

8:汇编窗口,通过该按钮可以查看汇编代码,这对分析程序很有用。

9:堆栈局部变量窗口,通过该按钮可以显示Call Stack+Locals窗口,显示当前函数的局部变量及其值,方便查看。

10:观察窗口,MDK5提供2个观察窗口(下拉选择),该按钮按下则弹出一个显示变量的窗口。输入想观察的变量或表达式,即可查看其值,是很常用的调试窗口。

11:内存查看窗口,MDK5提供4个内存查看窗口,按下按钮,则弹出一个内存查看窗口,可以在里面输入要查看的内存地址,然后观察这一片内存的变化情况。

12:串口打印窗口,MDK5提供4个串口打印窗口。按下该按钮,则弹出一个类似串口调试助手界面的窗口,用来显示从串口打印出来的内容。

13:逻辑分析窗口,该图标下面有3个选项,一般用第一个,也就是逻辑分析窗口。通过SETUP按钮新建一些IO口,于是可以观察这些IO的电平变化情况,并以多种形式显示出来,比较直观。

14:系统查看窗口,该按钮可以提供各种外设寄存器的查看窗口(通过下拉选择),选择对应外设即可调出该外设的相关寄存器表,并显示这些寄存器的值,方便查看设置是否正确。

二、硬件仿真

硬件仿真则是程序下载到单片机中,进行的仿真,是程序实际在单片机中运行的情况。

需要选择后面那个选项,然后在下拉单里选择自己的仿真器。然后后面步骤和软件仿真一样。

注:要在逻辑硬件仿真里使用逻辑分析仪之类的工具,要开“Trace”

Keil的软件仿真和硬件仿真相关推荐

  1. STM32-Keil软件仿真和硬件仿真/在线仿真

    软件仿真和硬件仿真什么区别?软件仿真就是没有硬件参与的仿真,完全是模拟实现的.硬件仿真是将程序下载到控制芯片的FLASH或RAM中,直接在硬件上实现仿真.[有什么问题欢迎联系讨论,一起解决问题] 仿真 ...

  2. CCS 软件仿真和硬件仿真结果不同解决办法

    起因:我用的是C6748板子,在用CCS进行软件仿真和硬件仿真时,发现矩阵的计算结果不同.查看内存,发现软件仿真内存中没有初值,但连接上板子后debug时发现有的内存中存在数据. 经过学习与思索,确定 ...

  3. 【软件工程师学硬件】之 仿真

    大多数软件工程师对仿真没有概念,因为软件里没有仿真的说法,但是软件开发里原型的说法,这个原型就有些类似于仿真. 仿真,顾名思义,就是乱真,和真的差不多.这只是个说法,要是假的都能成为真的,就不需要真的 ...

  4. 51单片机学习笔记(10)——Keil延时软件仿真

    C语言编程常用的有4种延时方法: 在某些时候,我们想要知道程序里面的延时函数到底延时多长时间,这时候就可以用Keil软件仿真来实现. ①在keil中编写一个简单的延时应用程序: #include &q ...

  5. iar 看时序_IAR 硬件仿真查看运行时间

    最近做STM8的项目,IDE从Keil变成IAR非常不习惯,就像用惯VS用回VC一样.调试软件延时函数,想看一下运行效果,竟然无从下手(Keil有一个查看运行时间的窗口),网上都是用Simulator ...

  6. 51单片机能否实现硬件仿真

    stm32使用stlink进行硬件仿真,具有很大的优点,能够实时监测到io电平,对于时序分析和debug具有很大帮助,而对于stc系列单片机, 如果单纯地使用软件仿真,实际中仿真会很不方便,这就为寻求 ...

  7. matlab 硬件驱动,基于MATLAB的驱动电路硬件仿真与研究

    近年来,随着电力电子技术的高速发展,对开关器件驱动电路的研究也得到了很大进展.IGBT的触发和关断要求给其栅射极提供正向和负向电压,其中栅极电压可由不同的驱动电路产生.IGBT的驱动电路是连接IGBT ...

  8. 硬件仿真加速器与原型验证平台

    基于软件仿真工具对于动辄几百万门的ASIC验证而言,几乎显得力不从心.不管是从成本还是从性能的角度来看,使用硬件仿真器或者基于FPGA的原型验证平台,几乎是验证工程师的不二法门.因为基于硬件的环境能够 ...

  9. 《硬件仿真(Emulation)EDA工具前端设计流程》

    硬件仿真(Emulation)EDA工具设计流程总结,仅介绍必要设计步骤,具体详细步骤由于公司机密,暂不详细说明. 文章目录 前言 1. Emulation 1.1 什么是Emulation 1.2 ...

最新文章

  1. springMVC 使用WebApplicationContext获取ApplicationContext对象
  2. com.android.vivi删除,vivi命令详解
  3. 可以获取python整数类型帮助的是什么-下列选项中可以获取Python整数类型帮助的是()。...
  4. CloudStack无法添加模板和iso
  5. 棋盘最短路径 python_Dijkstra 最短路径算法 Python 实现
  6. python和javascript详细对比_python与javascript 引入模块的方法对比
  7. 惊艳!亚洲规模最大、标准最高的金融数据中心 |上证所金桥技术中心基地项目...
  8. msf principle
  9. 计算机科学与软件工程的区别
  10. 复工大势下,远程办公的科技企业只能“坐以待毙”吗?
  11. paip.信用卡账单处理系统功能vO22
  12. 良心国产 PDF 软件!永久免费!不流氓
  13. 基于matlab指纹识别论文,基于MATLAB的指纹识别算法.doc
  14. C或C++报错:ld returned 1 exit status报错的原因
  15. sqlserver大批量数据查询的优化方式
  16. Spring MVC 详解
  17. Ceph 问题记录:MDSs report oversized cache / clients failing to respond to cache pressure
  18. 4、Flutter - 控件基础 (二)ListView 列表展示数据、布局
  19. 智能对话系统原理和实践
  20. iOS开发 设置状态栏字体颜色

热门文章

  1. 移动测试基础 测试之道--阿里巴巴八年测试专家
  2. 马尔可夫模型(HMM)与隐马尔克夫模型(转)
  3. echart示例 ---大量
  4. 程序调试介绍及其使用
  5. Linux输出重定向 文件 21
  6. mysql查询根据时间排序
  7. [免签约]微信+支付宝个人收款解决方案
  8. Ubuntu18.04 Hadoop 搭建
  9. Bootstrap框架菜鸟入门教程
  10. JavaWeb:实现购物商城(课程设计完整版)