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

2023-11-13


前言

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

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

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

二、keil Debug常用按钮

在这里插入图片描述
单击窗口上的调试按钮快捷图标(上图红色框内图标),进入到软件模拟调试模式。
在这里插入图片描述
RST上图红色框内图标)将程序复位到主函数的最开始处,准备重新运行程序。
在这里插入图片描述
全速运行(上图红色框内图标),运行程序时中间不停止。
在这里插入图片描述
停止全速运行(上图红色框内图标),全速运行程序时激活该按钮,用来停止正全速运行的程序。
在这里插入图片描述
进入子函数内部(上图红色框内图标)。
在这里插入图片描述
单步执行代码(上图红色框内图标),它不会进入子函数内部,可直接跳过函数。
在这里插入图片描述
跳出当前进入的函数(上图红色框内图标),只有进入子函数内部该按钮才被激活。
在这里插入图片描述
程序直接运行至当前光标所在行(上图红色框内图标)。
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
显示/隐藏变量观察窗口,可以查看各个变量值的变化状态。

总结

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • linux中$?,$#等代表什么

    0 这个程式的执行名字 n 这个程式的第n个参数值 n 1 9 这个程式的所有参数 此选项参数可超过9个 这个程式的参数个数 这个程式的PID 脚本运行的当前进程ID号 执行上一个背景指令的PID 后台运行的最后一个进程的进程ID号 执行上
  • C++primer plus 第十一章编程练习

    银行账户类 头文件 ifndef HEAD H define HEAD H include
  • muduo的高性能异步日志

    1 一个日志库大体可分为前端 frontend 与后端 backend 前端是供应用程序使用的接口 API 并生成日志信息 后端则是负责将日志信息写到目的地 每个线程都有自己的前端 而整个程序共用一个后端 对于生产者 前端 而言 要尽量做到
  • sql-labs 41-65关

    Less 41 这关还是堆叠注入 而且还是数字型闭合 可以照搬39关代码 但是与39不同的是 这关没有报错的显示位 查数据 id 1 id 0 union select 1 select group concat username from
  • 计数排序--时间复杂度为线性的排序算法

    我们知道基于比较的排序算法的最好的情况的时间复杂度是O nlgn 然而存在一种神奇的排序算法 不是基于比较的 而是空间换时间 使得时间复杂度能够达到线性O n k 这种算法就是本文将要介绍的计数排序 一 适用情况 这个算法在n个输入元素中每
  • 卷积神经网络超详细介绍

    文章目录 1 卷积神经网络的概念 2 发展过程 3 如何利用CNN实现图像识别的任务 4 CNN的特征 5 CNN的求解 6 卷积神经网络注意事项 7 CNN发展综合介绍 8 LeNet 5结构分析 9 AlexNet 10 ZFNet 1
  • layui option 动态添加_layui select 动态加载案例

    用到知识点 表单监听 form on 局部表单渲染 form render 动态加载的select表单 必须有默认的option项 第一个option 要不然layui 不会渲染出 select 组件 代码如下 添加数据 返回列表 查找所有
  • Vue中子组件通过v-model动态修改父组件中的值

    父子通信中的子传父 使用v model实现双向数据绑定 注意 vue组件是此组件的根组件 是该组件中所有注册的组件的父组件 现有需求 通过子组件中的输入框来动态绑定父组件中data中的数据 代码实现 父组件使用porps来向子组件传值 子组
  • 为什么浏览器中有些文件点击后是预览,有些是下载

    今天给大家分享两个比较有用的浏览器行为与预期不一致的现象 这两个问题其实并不是什么难题 但在工作中发现不少人被难住了 在我的印象中至少有三位同事在群里问这样的问题 上周又有同事被此现象困住了 所以我觉得这应该是个共性问题 在这里分享给大家
  • 物理服务器和云服务器的区别

    1 从概念上区分 云服务器 云主机 是在一组集群服务器商虚拟出多个类似独立服务器的部分 集群中每个服务器上都有该云服务器的一个镜像 形象地讲 集群服务器犹如一个大型的公共停车场 而云服务器的使用 则是卖给了你停车的权利 独立服务器 顾名思义
  • 如何做数据清洗?

    一 预处理阶段 预处理阶段主要做两件事情 一是将数据导入处理工具 通常来说 建议使用数据库 单机跑数搭建MySQL环境即可 如果数据量大 千万级以上 可以使用文本文件存储 python操作的方式 而是看数据 这里包含两个部分 一是看元数据
  • 第四章 索引和视图 总结

    第四章 索引和视图 1 索引 索引主要分为聚类索引和非聚类索引 聚类索引 表中数据行的物理存储顺序与索引顺序完全相同 每个表只能有一个聚类索引 物理的重拍表中的数据以符合索引约束 用于经常查找的列 非聚类索引 不改变表中数据行的物理存储位置
  • linux系统中解决docker: command not found

    新申请了一台阿里云的服务器 打算在上边部署一个容器服务 竟然发现机器上连docker都没安装 如果是mac OS系统 可以参考文章 mac系统中解决docker command not found 解决 针对这个问题 今天特意记录了一下 我
  • 网上总结的字节跳动前端面试题

    1 jQuery与Vue的区别是什么 Vue vue是一个兴起的前端js库 是一个精简的MVVM 从技术角度讲 Vue js 专注于 MVVM 模型的 ViewModel 层 它通过双向数据绑定把 View 层和 Model 层连接了起来
  • Python爬虫常见异常及解决办法

    文章目录 1 selenium common exceptions WebDriverException Message unknown error cannot find Chrome binary 方法一 配置参数 方法二 修改源文件
  • mysql学习-mysql数据类型学习01

    数据类型概览 数值类型 整数类型包括 TINYINT SMALLINT MEDIUMINT INT BIGINT 浮点数类型包括 FLOAT 和 DOUBLE 定点数类型为 DECIMAL tinyint smallint mediumin
  • 【MySQL】MYSQL内核:INNODB存储引擎 卷1pdf——百度网盘下载

    百度网盘地址 https pan baidu com s 1p4CsmBhYzrIawwUznmByYw 资源来之不易 需要获取密码 请关注公众号 全栈船长 并回复数字 0002
  • 前端开发:JS中截取字符串的用法总结,高级Android程序员必会

    var a 0123456789 a substring 5 2 4 start 和 stop 有字符串 但是最后的输出结果是 234 a substring 5 hh start 和 stop 有字符串 但是最后的输出结果是 234 二
  • 计算机在汽车设计方面的应用属于计算机的,计算机技术辅助设计在汽车设计中的应用.pdf...

    82 车辆与动力工程 Vehicles and Power Engineering 2017 年 2 月 计算机技术辅助设计在汽车设计中的应用 温 欣 汪 家宇 杨 海 南 沈 阳理工 大学 辽 宁 沈 阳 110159 摘 要 随着社会经
  • keil软件调试(Debug)仿真教程(软件调试和硬件调试的区别)及常用调试按键详解

    文章目录 前言 一 什么是软件调试 Debug 有什么用 二 keil Debug常用按钮 总结 前言 单片机的调试分为两种 一种是使用软件模拟调试 第二种是硬件调试 两种调试方式各有不同 软件模拟调试有误差 而硬件调试 借用仿真器调试是嵌