Keil的软件仿真和硬件仿真

2023-11-19

一、软件仿真

    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”



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

Keil的软件仿真和硬件仿真 的相关文章

  • Event Driven Class OSAL 基于事件驱动的模拟操作系统

    EventDrivenClassOSAL详解 Event Driven Class OSAL 基于事件驱动的模拟操作系统 前言 什么是OSAL OSAL为 Operating System Abstraction Layer 即 操作系统抽
  • I2C总线的通讯距离

    关于I2C总线 I2C总线不适合远距离通信 尤其是使用线缆与接口器件进行通信时一般不选择 I2C 使用I2C总线都是在用一个开发板上或者距离比较近 如果是远距离通信 比如说超过2米 这个时候对硬件就有特殊的要求了 通信线缆小于0 2米 一般
  • keil5安装到中文路径,导致软件、文件打不开,或打开文件为灰色,无法编译运行

    keil5安装到中文路径 导致软件 文件打不开 1 查看keil软件安装位置 1 1 win键 搜索keil 点击打开文件位置 1 2 鼠标右键 I 打开文件所在的位置 2 修改安装文件夹为英文名称 2 1找到中文名称文件夹 修改为英文名称
  • 单片机学习——存储器详解(程序存储器、片内RAM、拓展RAM、EEPROM)

    单片机必学系列 单片机学习 中断系统 单片机学习 存储器详解 程序存储器 片内RAM 拓展RAM EEPROM 单片机学习 定时器 计数器 单片机学习 A D转换 更新ing 单片机学习 存储器详解 程序存储器 片内RAM 拓展RAM EE
  • BES 平台 SDK之提示音的添加

    本文章是基于BES2700 芯片 其他BESxxx 芯片可做参考 如有不当之处 欢迎评论区留言指出 仅供参考学习用 BES 平台 SDK之按键的配置 谢文浩的博客 CSDN博客 关于系统按键简介可参考上一篇文章 链接如上所示 一 提示音的制
  • STM32 USB DP/DM内置的上下拉电阻阻值

    根据USB协议 工作在主机模式 USB DP DM下拉到GND 工作在设备模式 上拉到VCC DP上拉表示高全速设备 DM上拉表示低速设备 STM32在Device模式只支持高速或全速 图片来源于 STM32F407数据手册 红色为示意 实
  • CORE-ESP32C3

    目录 参考博文 源于网友oled eink aht10项目 源代码修改及复现说明 主要修改 显示效果 编辑硬件准备 软件版本 日志及soc下载工具 软件使用 接线说明 天气显示屏 硬件接线 温度采集 日期温度显示屏 正常初始化LOG 示例代
  • 零基础开发NBIOT

    前言 shineblink core 开发板 简称Core 的库函数支持NBIOT通信功能 所以只用几行代码即可实现基于M5311 NB模块的联网通信 TCP UDP MQTT 功能 这里我们主要介绍通过TCP实现联网通信的功能 更多关于T
  • ESP32S3学习——SPIFFS 文件系统

    芯片 esp32s3 开发环境 espidfv4 4 一 官网相关资料 1 简介 SPIFFS 是一个用于 SPI NOR flash 设备的嵌入式文件系统 支持磨损均衡 文件系统一致性检查等功能 2 说明 目前 SPIFFS 尚不支持目录
  • 数字IC验证:ARM总线协议AMBA中AHB、APB的简介、区别与联系

    写在前面 最近实习项目里用到这2个协议 因此简单整理一下 内容大多来自ARM官方文档与网络上的 我主要做一个整合 加上自己的理解补充 内容来源都会分别标出 如有侵权请指出 立刻删帖 官方文档入口 AMBA 包括AHB ASB APB 文章目
  • 嵌入式开发(7)系统定时器(SysTick)之延时函数运用

    目录 一 系统定时器 1 简介 2 工作原理 3 频率的概念 二 库函数SysTick定时器操作 系统定时器配置 三 寄存器SysTick定时器操作 1 系统定时器的用途 2 寄存器 3 官方示例 4 毫秒级延时函数 5 微秒和毫秒延时的优
  • 合宙Air700E/4G模块使用AT指令查询基础信息

    Air700E使用AT指令查询基础信息 前言 AT指令使用 AT 确认AT固件 AT CGMR 请求制造商版本 AT CGMM 返回制造商型号编码 AT CGSN x 查询产品序列号 AT CGSN 1 查询IMEI AT CGSN 2 查
  • Esp8266 Node Mcu 一直乱码的问题详解

    最近一直在做项目 遇到的这个问题花了我很长时间 因此在这里写出自己的经历供大家参考 喜欢的可以点个赞 比较简单的方案 在Arduino上设置Node Mcu 1 打开文件 gt 首选项 复制这样一个网址 http arduino esp82
  • HardFault_Handler问题查找方法

    一 程序进入HardFault Handler 可能原因 1 内存溢出 常见的于数组访问越界 2 堆栈溢出 堆栈设置过小等 二 排查方法 方法1 出现该情况后 可首先查看LR寄存器中的值 确定当前使用堆栈为MSP或PSP 1 打开寄存器窗口
  • 通过Keil如何查看MCU的RAM与ROM使用情况

    概述 在很多偏门MCU 还是使用keil进行开发 开发过程中能免会出现ram rom不够问题 怎么查看呢 下面揭晓答案 一 查看方式 1 编译后 2 通过map查看 方法很简单 鼠标对准红色圈 双击即可 有时 双击不了 只要按照上图配置 此
  • ESP8266 教程3 — 通过TCP组建局域网并通信

    目录 1 ESP8266 的 AP 模式 1 1 查询 ESP8266 的wifi应用模式 1 2 设置 ESP8266 模块的wifi信息 1 3 查询已经接入的设备 2 ESP8266 的Station 模式 2 1 设置ESP8266
  • Flash存储芯片:NOR Flash、NAND Flash、UFS和eMMC的比较与解析

    前言 在数字化时代的今天 数据的存储和管理变得越来越重要 各种各样的存储技术应运而生 以满足不同的使用场景和需求 其中 Flash存储芯片以其非易失性 可擦写性和可编程性等优势 占据了重要地位 本博客将详细介绍Flash存储芯片中的NOR
  • 数据类型:C++中的基本数据类型

    数据类型 C 中的基本数据类型 在C 中 数据类型是用于存储不同种类数据的变量类型 C 提供了多种基本数据类型 包括字符型和数值类型 本篇博客将详细介绍C 中的基本数据类型 并提供相应的示例代码 目录 引言 字符型数据类型 2 1 char
  • STM32F4单片机ADC采样及ARM-DSP库的FFT

    模拟信号经过ADC采样后变成数字信号 数字信号可以进行FFT运算 在频域中更容易分析信号的特征 本文将介绍如何用STM32F4的进行ADC采样 并利用ARMDSP库里的FFT算法对ADC采样值进行快速傅里叶变换 我使用的是STM32F407
  • 【零基础玩转BLDC系列】基于反电动势过零检测法的无刷直流电机控制原理

    无刷直流电动机基本转动原理请参考 基于HALL传感器的无刷直流电机控制原理 基本原理及基础知识本篇不再赘述 目录 反电势过零检测法的原理 反电势过零检测实现方法 位置传感器的存在限制了无刷直流电机在某些特定场合中的应用 如 使电机系统的体积

随机推荐

  • HDLBits刷题_Verilog Language_Procedures_Alwaysblock1

    学习内容 Since digital circuits are composed of logic gates connected with wires any circuit can be expressed as some combin
  • VMWARE虚拟机更新Ubuntu卡在登陆界面的问题解决

    昨天在搭建开发环境的时候 需要安装一些图形包和升级系统的组件 升级重启后 发现系统进不去了 如下图所示 我的是VMWARE虚拟机 不存在独显驱动问题 所以排除这个问题 将lightdm组件重新装一次 问题可以解决 步骤如下 1 重启 看到如
  • Cuda Streams的概述(四)-- 同步

    同步 同步的APIs 同步所有的事情 阻塞host端 直到所有的CUDA调用完成 cudaDeviceSynchronize 同步主机端特定的流 阻塞host端 直到流里的CUDA调用完成 cudaStreamSynchronize str
  • PyQt开发样例: 利用QToolBox开发的桌面工具箱Demo

    老猿Python博文目录 专栏 使用PyQt开发图形界面Python应用 老猿Python博客地址 一 引言 toolBox工具箱是一个容器部件 对应类为QToolBox 在其内有一列从上到下顺序排列的标签部件项 tabbed widget
  • (转)AI技术能给金融带来什么

    AI技术能给金融带来什么 2017 04 13 今日投资官微 来源 维基百科 文因互联分析 人工智能的热潮被AlphaGo带到顶点 然而在人工智能的学科发展史上是有繁荣期和稳定期的 一个技术突破会带来一定时期内难以想象的繁荣 之后的科学发展
  • [Hadoop] 实际应用场景之 - 阿里

    http blog csdn net u010415792 article details 9151475 Hadoop在淘宝和支付宝的应用从09年开始 用于对海量数据的离线处理 例如对日志的分析 也涉及内容部分 结构化数据等 使用Hado
  • 阿里老哥独家珍藏的Java面试突击宝典,轻松应对95%秋招面试题

    临近秋招 想必有不少老哥已经在为面试做准备了 大家想必也知道现在面试就是看项目经验 基本技术 个人潜力 也就是值不值得培养 总之就是每一次面试都是对我们能力的检验 无论是软实力还是硬实力 软实力其实就是简历包装 自我介绍 与面试官交谈技巧等
  • UVA 1347 Tour

    描述 Click Here quad 给定平面上n n lt 1000 个点的坐标 按照x递增的顺序给出 各点x坐标不同 且均为整数 你的任务是设计一条路线 从最左边的点出发走到最右边的点再返回 要求除了最左边和最右边之外 每个点恰好经过一
  • java中什么是并发,如何解决?

    多个进程或线程同时 或着说在同一段时间内 访问同一资源会产生并发问题 银行两操作员同时操作同一账户就是典型的例子 比如A B操作员同时读取一余额为1000元的账户 A操作员为该账户增加100元 B操作员同时为该账户减去 50元 A先提交 B
  • awk读取ini配置文件

    awk读取ini配置文件 一 awk基础 二 读取ini 1 net ini文件 2 打印 三 读取特定Section的Key的值 1 设置特定值 2 查找匹配项 四 总结 一 awk基础 F 指定分割符 print 打印 0 表示整个当前
  • 软件项目管理与开发流程管理 课程

    软件项目管理与开发流程管理 课程背景 以 IT领域典型的软件开发项目管理为主线 结合业界公认最成功的Rational软件开发统一流程架构 Rational Unified Process 和奉为项目管理圣经的美国项目管理协会 PMI 项目管
  • mnist数据集及其读写格式

    mnist数据集及其读写格式 1 mnist 数据集 2 idx 数据格式 参考文献 1 mnist 数据集 mnist数据是手写的数字0 9的数据集 共包含训练集60000个样本和测试集10000个样本 mnist是NIST的子集 同时m
  • Sa-Token获取当前所有可用Token

    记录一下写的小工具 里面的逻辑只能让各位大佬自己看了 各位用的时候自己改改 TokenInfo这个类是自定义的 我这里是获取了一下当前token对应的用户最大的生命周期 各位大佬们自行享用了 获取所有有效token集合 return pub
  • Python -- The eric Python IDE

    Python The eric Python IDE ataru 21 Jul 2008 14 26 最近在看Qt4 結果就看到eric這個為了Python與Ruby開發的IDE工具 它本身是用Python Qt寫出來的 因此這正可以當作希
  • 我的世界1.12 Java崩溃,1.12.2崩溃报告求助

    官方认证版本 mod都是在百科或者CurseForge上下载的 每次崩溃都没得前兆 突然崩溃 之后打开存档就会直接崩溃 crash reports如下 Minecraft Crash Report WARNING coremods are
  • STM32使用HAL库实现按键的单击、双击、长按

    STM32使用HAL库实现按键的单击 双击 长按 目录 STM32使用HAL库实现按键的单击 双击 长按 前言 具体思路 工程配置 代码实现 实验效果 扫描以下二维码 关注公众号雍正不秃头获取更多STM32资源及干货 前言 编程开发环境 S
  • 【完结版】jmeter+ant+python自动化框架,且支持jenkins持续集成

    前言 本文是实现jmeter ant python脚本的自动化测试框架 并且把整套部署在jenkins 通过jenkins的构建来出发脚本的运行 而且还会在jenkins上展示html报告 本文记录搭建框架的整个步骤 以及遇到的问题和记录解
  • css 排除具有某个class的项

    idname li not classA display inline block 增加样式时将li中有class的去掉
  • 使用决策树进行特征选择

    使用决策树进行特征选择 决策树也是常用的特征选取方法 使用决策树集合 如随机森林等 也可以计算每个特征的相对重要性 这些重要性能够辅助进行特征选择 该方法主要使用信息增益率来进行特征选择 from sklearn import datase
  • Keil的软件仿真和硬件仿真

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