文章目录

  • 前言
  • 一、什么是软件调试(Debug),有什么用?
  • 二、keil Debug常用按钮
  • 总结

前言

单片机的调试分为两种,一种是使用软件模拟调试,第二种是硬件调试,两种调试方式各有不同,软件模拟调试有误差,而硬件调试,借用仿真器调试是嵌入式开发中常用方法。

一、什么是软件调试(Debug),有什么用?

单片机的调试分为两种,一种是使用软件模拟调试,用开发单片机程序的软件(IDE)去模拟单片机的指令执行,并模拟单片机片内资源,从而实现调试的目的,但是计算机无法准确的模拟单片机的时序,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。
为了解决软件调试的问题
第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。
仿真的作用:
仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样 就可以在软件里看到真实的执行情况。不仅如此,还可以通过计算机断的软件实现单步、全速、运行到光标的常规调试手段。

二、keil Debug常用按钮


单击窗口上的调试按钮快捷图标(上图红色框内图标),进入到软件模拟调试模式。

RST上图红色框内图标)将程序复位到主函数的最开始处,准备重新运行程序。

全速运行(上图红色框内图标),运行程序时中间不停止。

停止全速运行(上图红色框内图标),全速运行程序时激活该按钮,用来停止正全速运行的程序。

进入子函数内部(上图红色框内图标)。

单步执行代码(上图红色框内图标),它不会进入子函数内部,可直接跳过函数。

跳出当前进入的函数(上图红色框内图标),只有进入子函数内部该按钮才被激活。

程序直接运行至当前光标所在行(上图红色框内图标)。

显示/隐藏编译窗口(上图红色框内图标),可以查看每句 C 语言编译后所对应的汇编代码。


显示/隐藏变量观察窗口,可以查看各个变量值的变化状态。

总结

在软件调试模式下,我们可以设置断点、单步、全速、进入某个函数内部运行程序,同时还可以查看变量变化过程、模拟硬件 IO 口电平状态变化、查看代码执行时间等。

keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解相关推荐

  1. Debussy软件简介及仿真教程

    ** Debussy软件简介及仿真教程 ** 一.Debussy 软件简介 Debussy 是 NOVAS Software, Inc(思源科技)开发的 HDL Debug & Analysi ...

  2. 变频器调试过程中的常用参数设置详解

    变频器调试过程中的常用参数设置详解 变频器的设定参数较多,每个参数均有一定的选择范围,使用中常常遇到因个别参数设置不当,导致变频器不能正常工作的现象.因此,变频器调试是从正确设置变频器参数开始的.以下 ...

  3. PyKivy入门教程:Kivy Python库的介绍、安装及使用方法详解

    PyKivy入门教程:Kivy Python库的介绍.安装及使用方法详解 Kivy是一个跨平台的Python GUI工具包,可以用于开发能够在多种设备和操作系统上运行的应用程序.Kivy支持触摸输入. ...

  4. 本文是对优雅草蜻蜓C影视便捷追剧小程序微信支付配置教程-大部分小程序支付通用,从微信配置到后台的详解,其他小程序系统均可参考

    本文是对优雅草蜻蜓C影视便捷追剧小程序微信支付配置教程-大部分小程序支付通用,从微信配置到后台的详解,其他小程序系统均可参考 微信支付配置 1,下载工具 ​ 编辑切换为居中 添加图片注释,不超过 14 ...

  5. Labview软件、NI数据采集卡、汽车发动机数据采集学习总结(四)-------发动机上的传感器详解

    系列文章目录 第一章:汽车发动机数据采集上位机环境的搭建 第二章:Labview中的DAQ助手中器件详解 第三章:利用labview和NI数据采集卡采集汽车发动机中温度传感器的电压信号并处理 第四章: ...

  6. 首席新媒体运营黎想教程:最全电商运营方案,50个技巧详解

    做电商该怎么运营是个问题,一开始就做好定位.选品.定价.测款.老客-然后再去大力推广.那么一个合格的电商运营到底应该是什么样子的?这其实很难有定论,如果把店铺运营销量做的好,那么这个人肯定是比一般人好 ...

  7. 西门子s1200教程_如何进行西门子的S-1200的S7单边通讯图文详解

    根据笔者的工作实践经验发现,在平时所做的项目中.PLC与PLC之间的通讯是必不可少的,但是通讯的类型种类太多我们应该要怎样选择呢? 根据现在的发展趋势Profinet应该是以后的主流,相对于modbu ...

  8. Direct2D教程II——绘制基本图形和线型(StrokeStyle)的设置详解

    目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网友可以去看看.本系列也是介绍Direct2D的教程,是基 ...

  9. dx绘制2d图像_Direct2D教程II——绘制基本图形和线型(StrokeStyle)的设置详解

    目前,在博客园上,相对写得比较好的两个关于Direct2D的教程系列,分别是万一的Direct2D系列和zdd的Direct2D系列.有兴趣的网友可以去看看.本系列也是介绍Direct2D的教程,是基 ...

最新文章

  1. CGContextSaveGState与CGContextRestoreGState的作用
  2. 人工智能在哪些方面可以对IT运营产生重大影响
  3. 寒假作业,2.25,G - iBoard
  4. 1080 Graduate Admission (30 分)【难度: 一般 / 知识点: 模拟 排序】
  5. ApkTool反编译出错brut.common.brutexception及java.io.filenotfoundexception 之一
  6. IntelliJ IDEA 设置代码检查级别
  7. hdu2846(字典树)
  8. 机器学习数学基础之微分
  9. 解析、查询身份证号代码
  10. Qt中QListView设置其编辑状态
  11. 多卡聚合路由器在视频可视化指挥调度的解决方案
  12. 手机电视一CMMB系统技术应用浅谈
  13. U盘等无法弹出的解决办法
  14. AVKit  做一个页面类似于B站的视频页面 (第一种做法)
  15. 一枚菜鸟前端工程师月度工作总结
  16. 第四次实验(全连MGRE、星型拓扑、OSPF通私有网段)
  17. 计算机输入设备和输出设备怎么区分,输入设备和输出设备的区别
  18. python pandas excel 慢_使用Python、Pandas和openpyx时,小Excel电子表格加载速度非常慢...
  19. 区块链龙头股都有哪些?区块链概念股有哪些?
  20. 【多线程】采用Callable接口创建线程

热门文章

  1. 微信小程序开发教程:项目一微信小程序入门 课后习题
  2. Spring学习--基于狂神说
  3. 埃斯顿工业机器人控制柜_Yaskawa工业机器人控制柜详细介绍
  4. 库卡KRL有关Stream传输格式
  5. ai域名为什么突然那么多人注册?
  6. 训练好的神经网络怎么用,神经网络训练电脑配置
  7. 如何在手机上使用脚本
  8. 大数据发展趋势及动态
  9. html音乐播放器歌单,H5音乐播放器【歌单列表】
  10. 【计算机网络】数据链路层 : 总结 ( 封装成帧 | 流量控制与可靠传输 | 差错控制 | 介质访问控制 | 局域网 | 广域网 | 数据链路层设备 ) ★★★