keil的debug功能

news2024/9/25 22:55:36

文章目录

  • 一.窗口介绍
  • 二.功能
    • 2.1 debug断点调试和窗口变量
    • 2.2 四个花括号功能
      • 2.2.1 进去函数和下一步功能
      • 2.2.2 跳过函数和跳过该行代码功能
      • 2.2.3 函数内部跳出功能
      • 2.2.4 执行到光标处
    • 2.3 查看内部寄存器

一.窗口介绍

在这里插入图片描述
在这里插入图片描述

二.功能

2.1 debug断点调试和窗口变量

先打开下图debug断点调试程序功能
在这里插入图片描述
在下面2张图中,之后我们可以给程序的某行设置断点
在这里插入图片描述
在这里插入图片描述
也可以把鼠标放到下图这里点击就可以设置
在这里插入图片描述
在下图中这个按键会执行到断点去,就是程序只执行到断点处,方便我们调试,就可以看程序有没有问题,如果执行了到断点处,程序没反应,则证明该程序出问题,则修改该处代码,假如在这个断点的上面设置了一个whle循环,如果没有触发某个条件,则会一直执行不到断点处,则证明上面的程序出现问题。
在这里插入图片描述
现在的程序如下列,,如果我断点打到b=1处,点击运行,则它一直没有运行到b=1,是因为按键没有按下。

uint8_t a;
uint8_t b;
int main(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	GPIO_SetBits(GPIOB,GPIO_Pin_5);
	
	
	//按键初始化
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
	GPIO_InitTypeDef GPIO_Key_InitStructure;
	GPIO_Key_InitStructure.GPIO_Mode=GPIO_Mode_IPD;
	GPIO_Key_InitStructure.GPIO_Pin=GPIO_Pin_4;
	GPIO_Key_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOE,&GPIO_Key_InitStructure);
	while(a!=1)
	{
		if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)==0)//按键按下
		{
			Delay_ms(20);
			while(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)==0);
			Delay_ms(20);
			a=1;//按键按下a才赋值为1
		}
	}
	b=1;
	while (1)
	{				
	}
}

此时看不见程序执行到哪里,程序一直在疯狂运行中,我们可以点击红圈右边的×,则可以看见执行到哪里了。
在这里插入图片描述
此时下图红圈箭头则代表程序运行到这里来
在这里插入图片描述
此时我按下按键则程序运行出去到断点处
在这里插入图片描述
此时我们打开一个观察窗口,它可以输入变量,我们可以观察变量结果,如下图,我们输入b,然后在一次打一个断点,则程序往下走以后则b会变成1,因为,运行到此行只是说上面的程序执行完了,这行并未执行,所以第一个断点b并不会等于1,需要在下面空一行,打个新断点才会执行,记得每次改程序需要出去重新编译改程序下载进去。
在这里插入图片描述
之后如果想变量显示十六进制就勾上下图选项,想显示十进制就取消下图选项
在这里插入图片描述

2.2 四个花括号功能

2.2.1 进去函数和下一步功能

在下图中,先使用断点执行程序到该处,然后在点击下图按钮,该按钮是进入该函数,此外如果此行程序是一个变量什么的,点这个就相对于执行到下一步。
在这里插入图片描述

2.2.2 跳过函数和跳过该行代码功能

在下面两张图中,就是跳过该函数功能,还是一样,先执行断点,之后在点击,如果是变量的话就是跳过此行代码。
在这里插入图片描述
在这里插入图片描述

2.2.3 函数内部跳出功能

在下面2张图中,我们进入了该函数内部,如果想跳出去,则可以点击该功能。
在这里插入图片描述
在这里插入图片描述

2.2.4 执行到光标处

先使用鼠标点到某行代码,然后点击该功能,则代码会运行到光标处。
在这里插入图片描述
在这里插入图片描述

2.3 查看内部寄存器

下面两张图片,使用该功能可以查看芯片内部某个功能寄存器的数值

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Scanner流程控制语句

1. Scanner类 Scanner的意思是扫描 Scanner是JDK提供的一个类,位于java.util包下,所以我们如果需要使用则必须导包,导包的语句必须在声明包之后,在声明类之前 Scanner类是用来接受用户输入的各种信息 Scanner类提供了用于接受…

Ubuntu中交叉编译armdillo库

网上关于交叉编译armdillo库比较少,借鉴了一些但是在前几天编译时总是磕磕绊绊,于是写一个详细的编译过程。 交叉编译armdillo库包含两个步骤:交叉编译依赖库和交叉编译armdillo库。armdillo官网介绍依赖库如下图所示: 需要注意如…

01【MATLAB】最小二乘系统辨识

目录 1.系统辨识的定义及其分类 1.1 系统辨识的定义 1.2 系统辨识的分类 2.参数模型 3.系统辨识的步骤 一、最小二乘法(Least Squares Method)一般步骤 二、LSM原理及应用 三、LSM在控制系统建模中的应用 1.系统辨识的定义及其分类 1.1 系统辨识的…

Leetcode面试经典150题-201.数字范围按位与

给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。 示例 1: 输入:left 5, right 7 输出:4示例 2: 输入&…

Kolmogorov-Arnold——代替 MLP以提高模型的代表性和性能

前言 论文地址:https://arxiv.org/abs/2409.10594 源码地址:https://github.com/Adamdad/kat.git 传统的变压器模型使用多层感知器(MLP)来混合通道间的信息,而本文则使用了科尔莫哥罗德网络(KAN&#xff0…

微信第三方开发平台接入公众号整体技术方案

1.1 公众号简介 官网地址:微信公众平台 微信公众号 就像是你在微信里的一个“官方小号”,专门用来发布内容、和粉丝互动。用户可以关注你的公众号,收到你发布的消息,就像朋友圈那样。公众号还能提供很多实用功能,比如…

在 React 中模拟输入

需求 与 Bug 项目的 C# 桌面端使用 CefSharp 内嵌了一个三方网站,在外部实现了一个登录控件,外部登录后希望内嵌的三方网站自动登录,实现代码如下: browser.ExecuteScriptAsync($"document.getElementsByName(username)[0]…

s3c2440——ADC模数转换器,Linux驱动编程——u-boot

一、ADC 模拟:连续;数字:离散。 模拟信号一般指连续变化的电压值。转换的步骤:采样、量化。 ADC中soc电压转为数字信号的方法:逐次逼近法。 分辨率:nbit;表示一个电压比较器比较10次&#xf…

CoreDNS实现跨集群service解析实践

CoreDNS实现跨集群service解析实践 背景介绍使用条件实现方案 CoreDNS是一款使用Go语言实现的专为云原生应用而生的DNS服务器。本文介绍CoreDNS在特定实际场景下的一种进阶使用实践,也许能为其他也在使用CoreDNS做服务发现的同学提供一些启发和思考。 背景介绍 在…

三星推出990 EVO Plus固态硬盘,支持PCIe 4.0性能出色

容量高达4TB,提供增强的性能和能效。性能卓越,随机读写速度分别为为 1,050K IOPS 和 1,400K IOPS。 韩国——2024年9月25日—三星电子于今天宣布推出990 EVO Plus固态硬盘,为其固态硬盘产品线再添新成员。990 EVO Plus 支持 PCIe 4.0和最新的…

Icarus翼星求生教你使用服务器开服

1、购买后登录服务器(百度莱卡云游戏面板) 登录面板的信息在绿色的登陆面板按键下方,不是你的莱卡云账号 进入控制面板后会出现正在安装的界面,大约10分钟左右就能安装完成 2、创建端口 点击目录上的网络,再次页面下点…

kali-linux-2023.4 安装与配置

kali官网 作者:程序那点事儿 日期:2024/01/15 21:34 进入kali官网,点到下载页面 选择安装方式(本次私用虚拟机安装)。裸机安装是指,先要安装虚拟机(例如:CentOS7&#xff09…

【算法】贪心+堆排序实现大根堆及标准库容器类的融合使用

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

centos7安装Redis单机版

一、检查是否有GCC环境 gcc --version # 提示-bash: gcc: 未找到命令 说明没有gcc环境# 安装gcc环境 yum install gcc# 如果yum源报错 # 1.检查网络是否正常 ping www.baidu.com # 2.备份当前的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo…

IntraWeb制作汉堡菜单

IntraWeb开发web网站时如何制作手机页面? delphi源代码:示例两列布局带顶部汉堡菜单(兼容电脑与手机) 功能:交互式网页,两列布局,顶部汉堡菜单,点击汉堡图标关闭左侧栏,…

【NLP】基于“检测器-纠错器”中文文本纠错框架

前言 许多方法将中文拼写纠正(检测和纠正给定中文句子中的错误字符)视为序列标注任务,并在句子对上进行微调。一些方法使用错误检测器作为初步任务,然后将检测结果用于辅助后续的错误纠正过程。然而,现有方法在使用检…

RIFormer:保持你的视觉主干有效但移除令牌混合器

摘要 https://arxiv.org/pdf/2304.05659 本文研究了如何在去除其基本构建块中的标记混合器(token mixers)的同时保持视觉主干的有效性。标记混合器作为视觉变换器(Vision Transformers, ViTs)的自注意力机制,旨在实现…

java项目之新闻稿件管理系统(源码+文档)

项目简介 新闻稿件管理系统实现了以下功能: 新闻稿件管理系统的主要使用者管理员功能有个人中心,用户管理,记者管理,审批员管理,新闻分类管理,新闻信息管理,系统管理等。记者发布新闻信息&…

uniapp 整合 OpenLayer3

安装openLayer插件 命令行&#xff1a;npm install ol 安装sass插件 命令行&#xff1a;npm install -D sass 使用方法&#xff1a; *** *** <style scoped lang"scss"> </style> 安装ElementPlus 命令行&#xff1a;npm install element-plus -…

汽车零部件开发流程关键阶段

目录 1、定点阶段 1.1、定点前的准备工作 1.2、定点决策过程 1.3、定点后的工作交接 2、A样阶段&#xff1a;设计验证与基本功能实现 2.1、样件制作&#xff1a;从设计图纸到实物转化 2.2、功能测试&#xff1a;初步验证与性能评估 2.3、评估与优化&#xff1a;A样阶段…