蓝桥杯嵌入式之 Keil 仿真与调试

news2024/9/24 21:17:43

这篇文章为大家讲解 蓝桥杯嵌入式的 Keil 仿真与调试 , 这在比赛和今后的工作中都是常用的。大家看完后一定会对此有一个深刻的认识。

文章目录

  • 前言
  • 一、调试器的准备工作:
        • 1.在 Keil uVision集成开发环境下,选择CMSIS-DAP Debugger调试器。
        • 2.在Setting 下,选择SW模式。
        • 3.在Flash选项卡下,勾选 Reset and Run。
  • 二、Keil 仿真与调试:
        • 1. “复位” ,“全速运行”。
        • 2. “停止”,“单步运行”。
        • 3. “以函数为单位单步运行”,“退出当前函数”。
        • 4.“运行到指定位置”。
  • 三、设置断点:
  • 四、使用窗口观察变量,寄存器值:
        • 1. watch 窗口。(观察变量)
        • 2. 观察寄存器值。
  • 总结


前言


一、调试器的准备工作:

1.在 Keil uVision集成开发环境下,选择CMSIS-DAP Debugger调试器。

在这里插入图片描述

(在此之前要将开发板接口连接仿真器再连上电脑。)

在这里插入图片描述

2.在Setting 下,选择SW模式。

在这里插入图片描述

3.在Flash选项卡下,勾选 Reset and Run。

在这里插入图片描述
最后点击 OK 即可。


二、Keil 仿真与调试:

点击这个 “放大镜” 进入调试阶段。

在这里插入图片描述

1. “复位” ,“全速运行”。

① 是 Reset 复位,点击即可回到程序的最初位置。
② 是 Run 全速运行,如果不设置断点,则程序将运行完毕。

在这里插入图片描述

2. “停止”,“单步运行”。

① 是 Stop 停止,即若全速运行一程序,点击就可让程序停止当前的进程。
② 是 Step 键,即单步运行。此键可进入函数内部逐句运行

在这里插入图片描述

3. “以函数为单位单步运行”,“退出当前函数”。

① 是 Step Over ,即以函数为单位单步运行,此键不可进入函数内部逐句运行。。
② 是 Step Out ,即跳出函数。若使用 Step 键 进入函数逐步运行后,可点击 Step Out 跳出函数。

在这里插入图片描述

4.“运行到指定位置”。

此键 是 Run to Cursor Line ,即 将鼠标点击程序某处,点击后程序就运行到刚刚鼠标点击的某行

在这里插入图片描述


三、设置断点:

在程序某处设置了断点,点击 全速运行 程序后,程序运行到设置断点的某行。(之后可点击Step 键单步运行程序,逐步调试)

1 是设置断点,2 是 禁用某个断点,3 是禁用全部设置的断点, 4 是销毁所有的断点。

在这里插入图片描述

注意:禁用断点不是销毁。(可以自己尝试一下)


四、使用窗口观察变量,寄存器值:

1. watch 窗口。(观察变量)

(1)点击这个小眼镜 右边的黑色倒三角即可看到有两个 watch 窗口。

在这里插入图片描述

(2) 点击watch1 窗口即可在里面输入自己想到观察的变量,再回车即可。

在这里插入图片描述

(3) 右击你的变量名即可出现值的不同进制,可随意选择。

在这里插入图片描述

此 watch 窗口多用于观察全局变量的值,也可观察局部变量。不过局部变量在其函数结束就释放了,观察意义不大。

2. 观察寄存器值。

我们可以看到点击后可以看到很多的寄存器,我们以GPIOB为例。

在这里插入图片描述

我们可以在里面找到 GPIO ,点击选择 GPIOB 即可 。

在这里插入图片描述

观察 IDR 即可。运行程序后可观察到寄存器值的变化。

在这里插入图片描述


总结

Keil 仿真与调试在我们参加 蓝桥杯 和今后的工作中都比较常用,希望大家自己多多尝试调试, 下节课继续为大家 讲解 蓝桥杯嵌入式 的 相关知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

final关键字深入解析

final关键字特性 final关键字在java中使用非常广泛,可以申明成员变量、方法、类、本地变量。一旦将引用声明为final,将无法再改变这个引用。final关键字还能保证内存同步,本博客将会从final关键字的特性到从java内存层面保证同步讲解。这个内…

SpringBoot项目从18.18M瘦身到0.18M

一、前言 SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开…

GAMES101作业6及课程总结(重点解决SAH扩展作业)

这次作业相对于作业5会麻烦一点点,而且框架相较于作业五的也麻烦了一点,当然作业的难点其实主要还是在扩展作业SAH那块。 目录课程总结与理解(光线追踪)框架梳理作业一:光线生成作业二:光线-三角形相交作业…

Neo4j图数据库 批量写入与查询

1 前言 1-1 简介 工作中需要对所有的实体数据进行存储构建实体知识图谱,为基于知识图谱的问答提供数据基础。选择使用Neo4j作为数据库进行存储。以下是关于Neo4j的简介。 1-2 任务背景 将处理好的实体数据(共计1100万)写入图数据库中,并且提供查询接口…

量子计算(二十):量子算法简介

文章目录 量子算法简介 一、概述 二、量子经典混合算法 量子算法简介 一、概述 量子算法是在现实的量子计算模型上运行的算法,最常用的模型是计算的量子电路模型。经典(或非量子)算法是一种有限的指令序列,或一步地解决问题的…

乐视--996、内卷、裁员环境下一朵“奇葩”

在2022.12.28日我们发表了一篇“为什么四天工作制才是企业良药,而非裁员”,大家认为四天工作制与我们的距离就像实现“一个小目标”一样,不太可能。这不他来了,乐视来了,他真的来了,“鸡毛真的上天了”。他来了他来了他…

SQL技巧:使用AVG()函数计算占比

计算方式对比 一般计算占比,比如转换率、留存率等,都是先分组求和再相除得到结果,但是在一定的条件下,可以直接使用AVG()求出百分比。 比如,要求统计报名转化率,报名转化率公式为转化率报名人数/浏览人数…

内核解读之内存管理(8)内存模型

文章目录基本的术语CONFIG_FLATMEM(平坦内存模型)稀疏的内存模型基本的术语 在介绍内存模型之前需要了解一些基本的知识。 1、什么是page frame? 在linux操作系统中,物理内存被分成一页页的page frame来管理,具体pa…

c++11 标准模板(STL)(std::deque)(八)

定义于头文件 <deque> std::deque 修改器 擦除元素 std::deque<T,Allocator>::erase iterator erase( iterator pos ); (1)(C11 前) iterator erase( const_iterator pos ); (C11 起) iterator erase( iterator first, iterator last ); (2)(C11 前) iterator …

即时编译助力人大金仓KES分析能力飞跃

随着数字化技术对各行各业的不断渗透&#xff0c;人大金仓在金融、能源、电信等行业逐步进入深水区&#xff0c;面临越来越多的核心类系统改造升级&#xff0c;这些系统不仅需要满足在线交易系统运行的高实时性要求&#xff0c;还需要保证高效分析能力以帮助客户进行业务决策。…

红米pro14笔记本系统故障怎么U盘重装系统?

红米pro14笔记本系统故障怎么U盘重装系统&#xff1f;今天和大家一起来分享如何使用U盘重装系统的方法分享。有用户的红米pro14笔记本系统出现了一些问题需要进行重新安装&#xff0c;那么今天我们就一起来分享看看怎么U盘重装系统的方法吧。 准备工作&#xff1a; 1、U盘一个&…

Java执行Linux命令死锁阻塞挂起,Runtime.getRuntime().exec阻塞卡死问题解决

1、前言&#xff1a; 最近在做一个需求需要调用linux下的ffmpeg来对处理视频&#xff0c;很简单的需求&#xff0c;我像往常一样写下如下的代码片段&#xff1a; Process process Runtime.getRuntime().exec(cmd); process.waitFor(); But当我运行代码时&#xff0c;发现代码执…

前端笔记 ---- document.execCommand 函数整理

1. 语法 使用语法 bool document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)返回值 一个 Boolean &#xff0c;如果是 false 则表示操作不被支持或未被启用。 备注&#xff1a; 在调用一个命令前&#xff0c;不要尝试使用返回值去校验浏览器的兼容性 2. 参…

基于Vue和SpringBoot的宾馆管理系统的设计和实现

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…

树形结构——红黑树

前言 在 JDK1.8 之后&#xff0c;HashMap 的底层是由数组、链表、红黑树来实现的&#xff0c;当数组长度到 64 的时候&#xff0c;或者链表长度到 8 的时候&#xff0c;会调用 treeifyBin 转换为红黑树实现。因为红黑树是小伙伴们面试的时候经常被考到的知识点&#xff0c;因此…

OSPF-MGRE实验

1.首先配ip [r6]int g 0/0/1 [r6-GigabitEthernet0/0/1]ip add 192.168.1.2 24 [r6-GigabitEthernet0/0/1]int g 0/0/0 [r6-GigabitEthernet0/0/0]ip add 192.168.2.2 24 [r6-GigabitEthernet0/0/0]int g 0/0/2 [r6-GigabitEthernet0/0/2]ip add 192.168.3.2 24 [r6-GigabitEt…

git pull 和git fetch

1.git fetch 用户一&#xff1a;本地初始化项目&#xff0c;创建文件&#xff0c;保存本地仓库&#xff0c;提交远程仓库 $ git init $ touch file.txt $ git add . $ git commit -m "创建了file.txt文件" [master (root-commit) 4dcee36] 创建了file.txt文件1 file …

简单又好用的财务分析工具有哪些?

什么样的财务分析工具才能算是简单又好用&#xff1f;是能够快速完成组合多变的财务指标运算分析&#xff1b;能够充分发挥企业经营健康晴雨表作用&#xff0c;反映企业财务健康状态&#xff1b;还是能够支持多维度动态分析、自助分析&#xff1b;或者是轻松合并账套&#xff0…

跨域与JSONP

1、同源策略 1.1、什么是同源 如果两个页面的协议&#xff0c;域名和端口都相同&#xff0c;则两个页面具有相同的源。 例如&#xff0c;下表给出了相对于 http://www.test.com/index.html 页面的同源检测&#xff1a; URL 是否同源 原因 http://www.test.com/other.html…

智慧图书馆中的“智慧”体现在哪些方面?

在信息时代背景下&#xff0c;各个领域都发生了巨大变革&#xff0c;图书馆也不例外&#xff0c;开始逐步向着现代化方向发展。传统图书馆存在较多的缺陷&#xff0c;已经无法满足人们的借阅需求&#xff0c;引进信息化技术&#xff0c;打造智慧图书馆是目前图书馆的必然发展趋…