史上最全JLInk调试Kevil指南||一篇就够了||从菜鸟到调试大佬

news2024/11/27 4:17:21

目录

写在前面

问题1:jlink的port选项有SW和JTAG,这两个有什么区别,为什么大多数情况下选SW?

1.配置reset and run,下載即可重启

2.寄存器

问题2:keil中debug调试中会出现register和value,register中包括R0,R1等,value中包含0x00001002,这些代表什么意思,请解释一下单片机寄存器的分布及含义?

3.watch窗口

问题3:单片机Ram的地址有什么用,改变它会造成什么影响?

问题4:单片机的raw有什么用?

参考文章


写在前面


首先推荐几个剪辑视频的工具:
1.EV录屏,EV剪辑,无水印

2.有言一站式AIGC视频创作平台

3.万彩动画大师

4.EV虚拟摄像头+EV录屏 录制手写式微课教程_哔哩哔哩_bilibili

为了更直观形象地方便大家理解,这里特地制作了一个小视频供大家观看:

入门级:keil里JLink调试debug技巧_哔哩哔哩_bilibili

进阶级:史上最全JLInk调试Kevil指南||一篇就够了||从菜鸟到调试大佬_哔哩哔哩_bilibili

问题1:jlink的port选项有SW和JTAG,这两个有什么区别,为什么大多数情况下选SW?

答:

J-Link 是 Segger 公司生产的一款通用的 JTAG 调试器和编程器。在使用 J-Link 进行调试时,你会遇到 port 选项,其中包括 SW 和 JTAG。这两种模式有以下区别:

SW 模式:
SW 模式是指软件仿真模式(Software Debugging Mode)。
在这种模式下,J-Link 通过 SWD(Serial Wire Debug)接口与目标设备进行通信。
SWD 是一种高速、低引脚数量的调试接口,通常用于连接调试器和微控制器。
优点包括速度快、引脚少、适用于小封装的芯片等。
大多数情况下,选择 SW 是因为 SWD 接口相对于 JTAG 接口更为简单,速度也更快。
JTAG 模式:
JTAG 是指联合测试行动组(Joint Test Action Group)。
在这种模式下,J-Link 通过 JTAG 接口与目标设备进行通信。
JTAG 是一种调试和测试接口标准,通常用于连接调试器、测试设备和目标设备。
JTAG 接口相对于 SWD 接口来说,引脚数量较多,通信速度可能比较慢。
在大多数情况下选择 SW 而不是 JTAG 的原因包括:

速度:SWD 接口通常比 JTAG 接口速度更快,适合对速度要求较高的调试场景。
简单性:SWD 接口相对于 JTAG 接口来说,引脚数量更少,连接更简单。
适用性:很多现代微控制器都支持 SWD 接口,因此在大多数情况下选择 SW 是更为常见的选择。
根据具体的调试需求和目标设备支持的接口,你可以选择合适的模式进行调试和编程操作。

1.配置reset and run,下載即可重启

2.寄存器

把数据线联通,高低电平沿数据线导通到目标单元,执行程序需要程序代码存储地址,数据存储需要存储单元地址,调用特殊功能器也是寻找特殊功能寄存器地址,寻址方式有寄存器寻址,寄存器间接寻址,直接寻址,立即数寻址等

问题2:keil中debug调试中会出现register和value,register中包括R0,R1等,value中包含0x00001002,这些代表什么意思,请解释一下单片机寄存器的分布及含义?

在 Keil 中进行调试时,你会看到寄存器(registers)和对应的值(values)。这些寄存器和值在单片机编程中扮演着重要的角色,用于存储数据、指针、状态等。以下是一些常见的寄存器和它们的含义:

通用寄存器(General Purpose Registers):
R0、R1、R2 等:这些是通用寄存器,用于存储临时数据、中间结果等。它们在程序执行期间用于存储各种临时值。
程序计数器(Program Counter):
PC:程序计数器指向当前正在执行的指令的地址。当执行指令时,程序计数器将递增以指向下一条指令。
堆栈指针(Stack Pointer):
SP:堆栈指针指向堆栈的顶部,用于存储函数调用、局部变量等数据。当调用函数或者中断发生时,堆栈指针会被用来管理函数调用的返回地址和局部变量。
特殊功能寄存器(Special Function Registers,SFRs):
这些寄存器是单片机特定的,用于控制外设、配置芯片功能等。例如,控制器的配置、定时器的设置、中断的使能等都可能通过特殊功能寄存器完成。
状态寄存器(Status Register):
状态寄存器存储关于处理器状态的信息,如进位标志、零标志、负标志等。这些标志可用于判断运算结果的正负、是否为零等信息。
内存映射寄存器(Memory-Mapped Registers):
这些寄存器是对设备外设的寄存器进行内存映射,可以通过读写这些寄存器来控制外设的功能。
在单片机编程中,了解这些寄存器以及它们的含义非常重要。通过操作这些寄存器,你可以控制单片机的各种功能、状态和外设,实现你的应用需求。在调试过程中,观察和了解这些寄存器的值可以帮助你理解程序的执行状态和问题所在,有助于调试和优化程序。

3.watch窗口

一般满足2个条件的变量不会被优化,1是全局变量 2是被调用

被优化的变量无法通过Watch窗口查看,局部变量只有在运行到所在块内才能查看

只有全局变量可以全程监视;

函数只要出去,局部变量就被释放了,临时变量只有在进入当前函数中才可监视到其数据;

用static关键词修饰的变量无法监视。

蓝色的是光标,黄色是程序当前停止的位置,断点只能打在灰色处,白色的部分在经过编译器优化后是没有可执行程序的

问题3:单片机Ram的地址有什么用,改变它会造成什么影响?

单片机RAM的地址用于指定存储数据的位置。它允许程序在RAM中读取和写入数据。改变RAM的地址可能会导致以下影响:

1. 数据访问不正确:如果程序尝试访问错误的RAM地址,它可能会读取或写入错误的数据,从而导致程序错误或异常行为。

2. 数据丢失或损坏:如果程序在错误的RAM地址写入数据,可能会覆盖其他重要的数据,导致数据丢失或损坏。

3. 程序异常行为:如果程序在错误的RAM地址读取或写入数据,可能会导致程序异常行为,例如崩溃、冻结或无响应。

因此,在使用单片机RAM时,务必确保正确地指定数据的地址,以避免出现上述问题。
 

问题4:单片机的raw有什么用?

单片机的ROM(Read-Only Memory)和RAM(Random Access Memory)都是存储器,但它们有不同的用途:

**ROM(只读存储器)**

1. 存储程序代码:ROM用于存储单片机的程序代码,包括操作系统、应用程序和驱动程序。
2. 存储固定数据:ROM也可以存储固定数据,如字符集、图形和音频数据。
3. 保护数据:ROM的数据不能被修改,因此可以保护程序代码和数据不被意外修改或删除。

**RAM(随机存取存储器)**

1. 存储临时数据:RAM用于存储程序执行过程中产生的临时数据,如变量、缓冲区和堆栈。
2. 存储用户数据:RAM也可以存储用户输入的数据,如键盘输入、鼠标点击和传感器数据。
3.高速访问:RAM的访问速度比ROM快,因此适合存储需要频繁访问的数据。

总之,ROM用于存储程序代码和固定数据,而RAM用于存储临时数据和用户数据。两者都是单片机存储系统的重要组成部分。

有条件的小伙伴也可以使用keil中debug调试System Viewer窗口观察分析UART3的情况!

参考文章

MDK5 Debug调试方法总结_keil5的debug怎么用-CSDN博客

【工具使用】Keil5软件使用-进阶调试篇_keil5 软件使用 进阶调试篇-CSDN博客
keil调试专题篇-CSDN博客

STM32调试利器之ITM_stm32f103 调试利器之 itm 调试-CSDN博客

Hex2Bin转换软件、Bootloader 、OTA加密升级 、STM32程序加密、其他MCU同样适用-CSDN博客

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

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

相关文章

QT入门教程攻略 QT入门游戏设计:贪吃蛇实现 QT全攻略心得总结

Qt游戏设计:贪吃蛇 游戏简介 贪吃蛇是一款经典的休闲益智类游戏,玩家通过控制蛇的移动来吃掉地图上的食物,使蛇的身体变长。随着游戏的进行,蛇的移动速度会逐渐加快,难度也随之增加。当蛇撞到墙壁或自己的身体时&…

LLM详解

一 定义 Large Language Model,称大规模语言模型或者大型语言模型,是一种基于大量数据训练的统计语言模型,可用于生成和翻译文本和其他内容,以及执行其他自然语言处理任务(NLP),通常基于深度神…

verilog端口使用注意事项

下图存在组合逻辑反馈环,即组合逻辑的输出反馈到输入(赋值的左右2边存在相同的信号),此种情况会造成系统不稳定。比如在data_in20的情况下,在data_out0 时候,输出的数据会反馈到输入,输入再输出,从而造成不…

深度学习常见问题

1.YOLOV5和YOLOV8的区别 YOLOv5 和 YOLOv8 是两个版本的 YOLO(You Only Look Once)目标检测算法,它们在网络架构、性能优化、功能扩展等方面有显著的区别。YOLOv5 是 YOLO 系列的重要改进版本,而 YOLOv8 是最新的一次重大升级&am…

【C++网络编程】(一)Linux平台下TCP客户/服务端程序

文章目录 Linux平台下TCP客户/服务端程序服务端客户端相关头文件介绍 Linux平台下TCP客户/服务端程序 图片来源:https://subingwen.cn/linux/socket/ 下面实现一个Linux平台下TCP客户/服务端程序:客户端向服务器发送:“你好,服务…

大数据-159 Apache Kylin 构建Cube 准备和测试数据

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

AI会计师——让AI+成就价值财务

摘要:用友携手CCTV-10联合策划《AI会计师》专题节目 目录 Part1 数智化凭证采集 Part2 智能月结 Part3 税务风险管控 Part1 数智化凭证采集 AI会计师,源自对大数据、人工智能、云计算等前沿技术的深度融合。它不仅仅是一款软件,更是企业智能…

Java 17 数组最全解读篇(3w字图文并茂)

小熊学Java:https://www.javaxiaobear.cn,包含了海量的面试题和Java学习资料,是一个全能学习的站点,强烈推荐!!! 1. 数组的概述 1.1 为什么需要数组 需求分析1: 需要统计某公司50…

探索远程控制下载工具的奇妙世界

远程控制技术为我们的生活和工作带来了极大的便利。比如协助他人解决电脑问题、远程办公等等。今天我们一同来探讨向日葵远程控制下载软件和其他远程控制软件的奇妙世界。 1.向日葵远程控制 链接直通车:https://down.oray.com 想必很多人都听说过这款软件的卓越声…

如何用AI两小时上线自己的小程序

ChatGPT这个轰动全球的产品自问世以来,已经过了将近2年的时间,各行各业的精英们如火如荼的将AI能力应用到自己生产的产品中来。 为分担人类的部分工作,AI还具有非常大的想象空间,例如对于一个程序员来说,使用AI生成快…

2024 全新视角:MBTI 报告 API 接口登场

MBTI(Myers-Briggs Type Indicator)是一种常用的心理学测量工具,通过分析个体在四个维度上的偏好,将人们分为16种不同的人格类型。随着人工智能和数据科学的快速发展,现在我们有了全新的方式来获取和分析MBTI报告&…

[考研数学]多元函数,向量函数,向量场辨析

参考视频:【【高等数学】多元函数,向量函数,向量场这些概念你能分得清吗?】 首先这几个都是映射 我们求的梯度就是多元函数里面的概念。 我们求的散度和旋度是向量场里面的概念。 多元函数多维到一维的意思是比如说输入一个点&am…

ChatGPT可以分析股票吗?

结合国庆前大A股市的小波牛市以及今天的股市表现,我从多个角度为你提供一些分析和建议: 一、国庆前的小波牛市分析 国庆前,大A股市出现了一波小幅上涨,市场呈现出一些积极的信号: 政策面利好:政府出台了…

A股知识答题pk小程序怎么做?

A股知识答题pk小程序怎么做?以下是制作A股知识答题PK小程序的一般步骤: 一、 需求分析与规划: 明确目标:确定小程序的主要目标,比如是为了帮助用户学习A股知识、进行趣味竞赛,还是作为金融教育工具等。 …

Python 如何使用 SQLAlchemy 进行复杂查询

Python 如何使用 SQLAlchemy 进行复杂查询 一、引言 SQLAlchemy 是 Python 生态系统中非常流行的数据库处理库,它提供了一种高效、简洁的方式与数据库进行交互。SQLAlchemy 是一个功能强大的数据库工具,支持结构化查询语言(SQL)…

Otter Wiki:用 Python 和 Markdown 搭建你的小型知识库,三步搞定!

你有没有想过,有没有一种工具可以轻松管理你的个人知识库,还不用费力学习复杂的操作系统?今天,我们来聊聊 Otter Wiki,一个由 Python、Markdown 和 Git 支撑的小型 Wiki 系统,让你能快速构建属于自己的知识管理工具,完全不需要依赖庞大的平台。 为什么选择 Otter Wi…

《向量数据库指南》深度解读:CLIP模型架构与Mlivus Cloud的向量数据库应用实践

在当今这个数据驱动的时代,向量数据库以其高效、灵活的特性,在AI应用、大数据处理等领域发挥着越来越重要的作用。作为大禹智库的向量数据库高级研究员,同时也是《向量数据库指南》的作者,我深知向量数据库技术的核心价值和未来发展潜力。今天,我们将一起深入探讨CLIP模型…

鸟哥的linux私房菜-基础篇-第四版

第六章 文件与目录 6.1 目录与路径 6.1.2 目录的相关操作 cd:变换目录pwd:显示当前目录mkdir:建立一个新的目录rmdir:删除一个空的目录 cd dmtsai 这个用户的家目录是/home/dmtsai/,而 root 家目录则是/root/&…

LEAP模型的低碳路径建模与温室气体核算方法!详细

LEAP 模型(Long-range Energy Alternatives Planning System),即低排放分析系统,是一个基于情景分析的自底向上的能源—环境核算工具,由斯德哥尔摩环境研究所与美国波士顿大学共同开发。LEAP拥有灵活的结构&#xff0c…

算法笔记(十五)——BFS 解决拓扑排序

文章目录 拓扑排序课程表课程表 II火星词典 拓扑排序 有向无环图(DAG图) 有向无环图指的是一个无回路的有向图 AOV网:顶点活动图 在有向无环图中,用顶点表示一个活动,用边来表示活动的先后顺序的图结构 拓扑排序 找到一…