当前位置: 首页 > news >正文

Eclipse + GDB + J-Link 的单片机程序调试实践

Eclipse + GDB + J-Link 的调试实践

本文介绍如何创建Eclipse的调试配置,如何控制调试过程,如何查看修改各种变量。

对 Eclipse 的要求

  • 所用 Eclipse 应当安装了 Eclipse Embedded CDT 插件。
  • 从 https://www.eclipse.org/downloads/packages/ 下载 Eclipse IDE for Embedded C/C++ Developers ,此版本已经包含所需插件。
    在这里插入图片描述

配置 J-Link 路径

  • 通过菜单 Window>>Preferences 打开全局配置对话框,选择 MCU>>Global SEGGER J-Link Path ,在相应输入框填入 GDBServer 可执行文件名和所在路径。
    在这里插入图片描述

创建调试配置

  • 通过菜单 Run >> Debug configurations… 打开调试配置对话框。
  • 左侧列表中选中 GDB SEGGER J-Link Debugging ,点击左上角 New launch configuration 按钮,新建一个调试配置。
    在这里插入图片描述

调试配置 Main 标签页

  • 确认 Project 名是否正确,若不正确或为空,那么点击右侧 Browse… 按钮选择正确的工程。
  • 确认 C/C++ Application 是否为待调试程序,若不正确或为空,点击右侧 Search Project… 或 Browse…按钮选择待调试程序。
    在这里插入图片描述

调试配置 Debugger 标签页

  • Device name 输入框输入 MCU 型号。
  • 所支持的 MCU 型号可以通过 SEGGER J-Link GDB Server 的 Target Device Settings 对话框查看。
    在这里插入图片描述

调试配置 Startup 标签页

  • 去除 Enable flash breakpoints 选项。
  • 去除 Enable semihosting 选项。
  • 填入 CPU 时钟。
    在这里插入图片描述

调试配置 SVD Path 标签页

  • 若调试驱动程序,需要查看外设寄存器,那么需要指定 SVD file 。
  • 只调试应用层代码,可以忽略。
    在这里插入图片描述

开始调试

  • 配置完成后,点击配置对话框右下角Debug 按钮即可开始调试。
  • 调试配置将保存在 workspace 中,下次需要再次调试时,可以点击菜单Run>>Debug history 中的对应项开始调试,也可以通过工具栏按钮开始调试,见下图。点击调试按钮开始与最近的调试一样的调试,点击调试按钮右侧三角型按钮弹出菜单,可以选择所需的调试配置或菜单。
    在这里插入图片描述

调试控制

  • 开始调试后, Eclipse 将进入调试窗口布局。

  • Eclipse 工具栏将显示调试控制工具,如下图。
    在这里插入图片描述

  • Resume ,连续执行,直到碰到断点或点击暂停按钮。即 Run 操作。
    在这里插入图片描述

  • Suspend ,暂停,连续执行状态下,点击暂停按钮,将在当前位置停止执行。即 Halt 操作。
    在这里插入图片描述

  • Terminate ,结束本次调试。即 Stop 操作。
    在这里插入图片描述

  • Step Into ,单步执行,碰到函数调用语句则进入函数。
    在这里插入图片描述

  • Step Over ,单步执行,若当前语句为函数调用,则函数调用作为单条语句执行,不进入函数。
    在这里插入图片描述

  • Step Return ,执行完当前函数的剩余代码,返回调用处暂停。
    在这里插入图片描述

  • 指令单步模式,点击该按钮切换指令单步和语句单步。进入指令单步后,将自动打开反汇编窗口,再点击 StepInto 或 Step Over 按钮时仅执行一条指令。
    在这里插入图片描述

  • Restart ,复位MCU ,程序从头重新开始执行。
    在这里插入图片描述

添加断点

  1. 在编辑器视图的行号左侧双击,或点击右键弹出菜单选择 Toggle breakpoint 。
  2. 在 Breakpoints 视图,点击右侧三个点弹出菜单选择 Add xxx Breakpoint 菜单,有多种类型的断点,包括Watchpoint 。
    在这里插入图片描述

查看函数调用栈

  • 通过 Debug 视图查看当前调用栈。下方函数调用上方函数。形成一个调用链。
  • Debug 视图可以配合Variables 视图查看每个函数的局部变量,点击选择Debug 视图中不同的函数, Variables 视图将显示与选中函数相应的局部变量。
    在这里插入图片描述

查看修改局部变量

  • 通过 Variables 视图查看函数局部变量。
  • 当 CPU 进入 Halt 时, Variables视图默认显示函数调用栈顶部函数的局部变量,通过 Debug 视图选择调用栈内的其它函数时, Variables 将显示对应函数的局部变量。
  • 如有必要,可以在 Value 列修改全局变量。
    在这里插入图片描述

查看修改全局变量

  • Expressions 视图查看全局变量。
  • 添加变量到 Expressions 视图的方法:
    • 点击 Expressions 视图右侧的加号,在对话框内填入合法的 C 表达式。
    • 调试模式下,双击选中要查看的全局变量,点击右键菜单,选择 Add Watch Expression 。
    • 点击 Expressions 视图的表示式列表的最
  • 如有必要,可以在 Value 列修改全局变量。
    在这里插入图片描述

查看反汇编

  • 点击工具栏的指令单步或通过菜单 Window>>Show View>>Disassembly 打开 Disassembly 视图。
    在这里插入图片描述

查看 CPU 寄存器

  • Registers 视图查看 CPU 寄存器。
  • 一般情况下,寄存器视图配合指令单步和反汇编视图使用。
  • 如果有需要,可以修改寄存器的值。
    在这里插入图片描述

查看修改外设寄存器

  • Peripherals 视图配合 Memory 视图查看修改外设寄存器。
  • Peripherals 视图中勾选要查看的外设。
  • Memory 视图显示外设寄存器,包括寄存器内的位定义。如有必要,可以修改寄存器值。
    在这里插入图片描述

相关文章:

Eclipse + GDB + J-Link 的单片机程序调试实践

Eclipse GDB J-Link 的调试实践 本文介绍如何创建Eclipse的调试配置,如何控制调试过程,如何查看修改各种变量。 对 Eclipse 的要求 所用 Eclipse 应当安装了 Eclipse Embedded CDT 插件。从 https://www.eclipse.org/downloads/packages/ 下载 Ecli…...

前端代码生成辅助工具

1,Axure Axure设计的界面如何生成HTML文件 https://blog.csdn.net/qq_43279782/article/details/112387511 Axure 生成HTML 文件,并用Chrome打开 https://blog.csdn.net/qq_30718137/article/details/80621025 2,OpenUI [开源] OpenUI …...

静态库与动态库总结

一、库文件和头文件 所谓库文件,可以将其理解为压缩包文件,该文件内部通常包含不止一个目标文件(也就是二进制文件)。 值得一提的是,库文件中每个目标文件存储的代码,并非完整的程序,而是一个…...

深入解析tcpdump:网络数据包捕获与分析的利器

引言 在网络技术日新月异的今天,网络数据包的捕获与分析成为了网络管理员、安全专家以及开发人员不可或缺的技能。其中,tcpdump作为一款强大的网络数据包捕获分析工具,广泛应用于Linux系统中。本文将从技术人的角度,详细分析tcpdu…...

【漏洞复现】科立讯通信有限公司指挥调度管理平台uploadgps.php存在SQL注入

0x01 产品简介 科立讯通信指挥调度管理平台是一个专门针对通信行业的管理平台。该产品旨在提供高效的指挥调度和管理解决方案,以帮助通信运营商或相关机构实现更好的运营效率和服务质量。该平台提供强大的指挥调度功能,可以实时监控和管理通信网络设备、…...

什么是自然语言处理(NLP)?详细解读文本分类、情感分析和机器翻译的核心技术

什么是自然语言处理? 自然语言处理(Natural Language Processing,简称NLP)是人工智能的一个重要分支,旨在让计算机理解、解释和生成人类的自然语言。打个比方,你和Siri对话,或使用谷歌翻译翻译一…...

【linux】gcc快速入门教程

目录 一.gcc简介 二.gcc常用命令 一.gcc简介 gcc 是GNU Compiler Collection(GNU编译器套件)。就是一个编译器。编译一个源文件的时候可以直接使用,但是源文件数量太多时,就很不方便,于是就出现了make 工具 二.gcc…...

【多维动态规划】Leetcode 97. 交错字符串【中等】

交错字符串 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串 子字符串 是字符串中连续的 非空 字符序列。 s s1 s2 … snt…...

【JavaScript脚本宇宙】精通前端开发:六大热门CSS框架详解

前端开发的利器:深入了解六大CSS框架 前言 在现代Web开发中,选择适合的前端框架和工具包是构建高效、响应式和美观的网站或应用程序的关键。本文将详细介绍六个广受欢迎的CSS框架:Bootstrap、Bulma、Tailwind CSS、Foundation、Materialize…...

开发技术-Java集合(List)删除元素的几种方式

文章目录 1. 错误的删除2. 正确的方法2.1 倒叙删除2.2 迭代器删除2.3 removeAll() 删除2.4 removeIf() 最简单的删除 3. 总结 1. 错误的删除 在写代码时,想将其中的一个元素删除,就遍历了 list ,使用了 remove(),发现效果并不是想…...

c++ 递归

递归函数是指在函数定义中调用自身的函数。C语言也支持递归函数。 下面是一个使用递归函数计算阶乘的例子&#xff1a; #include <iostream> using namespace std;int factorial(int n) {// 基本情况&#xff0c;当 n 等于 0 或 1 时&#xff0c;阶乘为 1if (n 0 || n…...

RedHat9 | podman容器

1、容器技术介绍 传统问题 应用程序和依赖需要一起安装在物理主机或虚拟机上的操作系统应用程序版本比当前操作系统安装的版本更低或更新两个应用程序可能需要某一软件的不同版本&#xff0c;彼此版本之间不兼容 解决方式 将应用程序打包并部署为容器容器是与系统的其他部分…...

边缘计算项目有哪些

边缘计算项目在多个领域得到了广泛的应用&#xff0c;以下是一些典型的边缘计算项目案例&#xff1a; 1. **智能交通系统**&#xff1a;通过在交通信号灯、监控摄像头等设备上部署边缘计算&#xff0c;可以实时分析交通流量&#xff0c;优化交通信号控制&#xff0c;减少拥堵&…...

计算fibonacci数列每一项时所需的递归调用次数

斐波那契数列是一个经典的数列&#xff0c;其中每一项是前两项的和&#xff0c;定义为&#xff1a; [ F(n) F(n-1) F(n-2) ] 其中&#xff0c;( F(0) 0 ) 和 ( F(1) 1 )。 对于计算斐波那契数列的第 ( n ) 项&#xff0c;如果使用简单的递归方法&#xff0c;其时间复杂度是…...

【教学类65-05】20240627秘密花园涂色书(中四班练习)

【教学类65-03】20240622秘密花园涂色书03&#xff08;通义万相&#xff09;&#xff08;A4横版1张&#xff0c;一大 68张纸136份&#xff09;-CSDN博客 背景需求: 打印以下几款秘密花园样式&#xff08;每款10份&#xff09;给中四班孩子玩一下&#xff0c;看看效果 【教学类…...

Python 学习之基础语法(一)

Python的语法基础主要包括以下几个方面&#xff0c;下面将逐一进行分点表示和归纳&#xff1a; 一、基本语法 1. 注释 a. 单行注释&#xff1a;使用#开头&#xff0c;例如# 这是一个单行注释。 b. 多行注释&#xff1a;使用三引号&#xff08;可以是三个单引号或三个双引号&…...

日志分析-windows系统日志分析

日志分析-windows系统日志分析 使用事件查看器分析Windows系统日志 cmd命令 eventvwr 筛选 清除日志、注销并重新登陆&#xff0c;查看日志情况 Windows7和Windowserver2008R2的主机日志保存在C:\Windows\System32\winevt\Logs文件夹下&#xff0c;Security.evtx即为W…...

【ARM】MDK工程切换高版本的编译器后出现error A1137E报错

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决工程从Compiler 5切换到Compiler 6进行编译时出现一些非语法问题上的报错。 2、 问题场景 对于一些使用Compiler 5进行编译的工程&#xff0c;要切换到Compiler 6进行编译的时候&#xff0c;原本无任何报错警告…...

深入 SSH:解锁本地转发、远程转发和动态转发的潜力

文章目录 前言一、解锁内部服务&#xff1a;SSH 本地转发1.1 什么是 SSH 本地转发1.2 本地转发应用场景 二、打开外部访问大门&#xff1a;SSH 远程转发2.1 什么是 SSH 远程转发2.2 远程转发应用场景 三、动态转发&#xff1a;SSH 让你拥有自己的 VPN3.1 什么是 SSH 动态转发3.…...

python如何把一个函数的返回值,当成这个函数的参数值

python如何把一个函数的返回值&#xff0c;当成这个函数的参数值 1. 递归调用 递归是一种函数自己调用自己的方法。在递归调用中&#xff0c;你可以将前一次调用的返回值作为下一次调用的参数。 def recursive_function(x):# 函数逻辑if 条件满足:return 结果else:return rec…...

【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化及多领域案例应用

随着航空、航天、近地空间遥感平台的持续发展&#xff0c;遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升&#xff0c;呈现出大数据特征。这为相关研究带来了新机遇&#xff0c;但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域…...

SpringBoot: Eureka入门

1. IP列表 公司发展到一定的规模之后&#xff0c;应用拆分是无可避免的。假设我们有2个服务(服务A、服务B)&#xff0c;如果服务A要调用服务B&#xff0c;我们能怎么做呢&#xff1f;最简单的方法是让服务A配置服务B的所有节点的IP&#xff0c;在服务A内部做负载均衡调用服务B…...

Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等

简介 TypeScript 是 JavaScript 的超集&#xff0c;是 JavaScript&#xff08;弱类型语言&#xff09; 的强类型版本。 拥有类型机制文件后缀 .tsTypescript type ES6TypeScript 和 JavaScript 的关系类似 less 和 css 的关系TypeScript对 JavaScript 添加了一些扩展&#x…...

智慧校园-实训管理系统总体概述

智慧校园实训管理系统&#xff0c;专为满足高等教育与职业教育的特定需求而设计&#xff0c;它代表了实训课程管理领域的一次数字化飞跃。此系统旨在通过革新实训的组织结构、执行流程及评估标准&#xff0c;来增强学生的实践操作技能和教师的授课效率&#xff0c;为社会输送具…...

如何用GPT开发一个基于 GPT 的应用?

原文发自博客&#xff1a;GPT应用开发小记 如何开发一个基于 GPT 的应用&#xff1f;答案就在问题里&#xff0c;那就是用 GPT 来开发基于 GPT 的应用。本文以笔者的一个开源项目 myGPTReader 为例&#xff0c;分享我是如何基于 GPT 去开发这个系统的&#xff0c;这个系统的功能…...

大数据生态体系中各组件的区别面试题(更新)

一、MapReduce与Spark有什么区别&#xff1f; 1、处理方式: MapReduce基于磁盘处理数据&#xff0c;将中间结果保存到磁盘中,减少了内存占用&#xff0c;计算速度慢。 基于内存处理数据&#xff0c;将计算的中间结果保存到内存中&#xff0c;计算速度快。2、资源申请方式&…...

数字信号处理实验一(离散信号及离散系统的MATLAB编程实现)

实验要求&#xff1a; 离散信号及离散系统的MATLAB编程实现&#xff08;2学时&#xff09; 要求&#xff1a; 编写一程序&#xff0c;输出一定长度&#xff08;点数&#xff09;&#xff0c;具有一定幅度、&#xff08;角&#xff09;频率和初始相位的实&#xff08;或复&…...

数字图像处理专栏——introduction

Introduction: 数字图像处理技术是我在深入学习研究的方向之一。本科期间跟随导师做基于AndroidOpenCV的病虫识别app&#xff0c;因此入门&#xff0c;我也对该部分知识有进一步探索的欲望&#xff0c;但更多的是因该脚踏实地一步步记录&#xff0c;一步步成长。 本篇从数字图…...

Django 模版继承

1&#xff0c;设计母版页 Test/templates/6/base.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><!-- 修正了模板标签的全角字符问题 -->{% block title %}<title>这个是母版页</title>{…...

Apipost接口测试工具的原理及应用详解(一)

本系列文章简介&#xff1a; 随着软件行业的快速发展&#xff0c;API&#xff08;应用程序编程接口&#xff09;作为不同软件组件之间通信的桥梁&#xff0c;其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此&#xff0c;对API进行严格的测试成为…...

一款轻量级的通信协议---MQTT (内含Linux环境搭建)

目录 MQTT MQTT的关键特点&#xff1a; 应用场景 Linux环境搭建&#xff1a; 1. 安装mosquitto 2. Linux下客户端进行通信 3. PC端和Linux下进行通信 安装MQTT. fx 4. MQTT.fx的使用 1. 点击连接 ​编辑 2. 连接成功 3. 订阅主题或者给别的主题发送消息 遇到的问…...

记netty本地客户端断线无法自动重连 or 远程客户端自动重连本地服务端

记netty客户端断线无法自动完成重连 or 服务端无法让客户端断线重连 引场景案例bootstrap 引 netty既能开发socket服务端&#xff0c;也可开发客户端&#xff0c;实现连接的全双工通信。在客户端断线重启后&#xff0c;可自动重连服务端。 场景 本地代码既有socket客户端也有…...

UNIAPP_在js文件中使用i18n国际化

导入 import { initVueI18n } from dcloudio/uni-i18n import messages from /locale/index const { t } initVueI18n(messages) 使用 t(config.request.i001)....

第三节:如何理解Spring的两个特性IOC和AOP(自学Spring boot 3.x第一天)

大家好&#xff0c;我是网创有方&#xff0c;接下来教大家如何理解Spring的两个特性IOC和AOP。本节有点难&#xff0c;大家多理解。 IOC&#xff08;控制反转&#xff09; 定义与核心思想&#xff1a; IOC&#xff0c;全称Inversion of Control&#xff0c;即控制反转。 其核…...

【51单片机】串口通信(发送与接收)

文章目录 前言串口通信简介串口通信的原理串口通信的作用串口编程的一些概念仿真图如何使用串口初始化串口串口模式波特率配置 发送与接收发送接收 示例代码 总结 前言 在嵌入式系统的开发中&#xff0c;串口通信是一种常见且重要的通信方式。它以其简单、稳定的特性在各种应用…...

【AI研发工具包】sklearn教程(Scikit-learn)

目录 1. 引言 2. 安装sklearn 3. 导入sklearn 4. 加载数据集 5. 数据预处理 6. 训练模型 7. 评估模型 8. 保存和加载模型 9. 自定义数据 10. 深入sklearn 11. 注意事项 1. 引言 Scikit-learn&#xff08;简称sklearn&#xff09;是Python中一个非常流行的机器学习库…...

数位DP——AcWing 1081. 度的数量

数位DP 定义 数位DP是一种动态规划技巧&#xff0c;特别适用于处理与数字的位操作相关的问题&#xff0c;如数字序列的计数、数字的生成等问题。它通过将问题分解为对每一位数字的独立考虑&#xff0c;从而简化问题复杂度&#xff0c;实现高效求解。 数位DP的核心思想是将原…...

2024下半年必追国漫片单,谁将问鼎巅峰?

随着2024年上半年的落幕&#xff0c;国漫市场再度迎来了百花齐放的盛况。从经典续作到全新IP&#xff0c;从玄幻到科幻&#xff0c;每一部作品都以其独特的魅力吸引着观众的目光。本期为大家盘点下半年值得一看的国漫佳作&#xff0c;大胆预测&#xff0c;谁将成为这场神仙打架…...

信息发布小程序h5 uniapp thinkphp

纯手工uniapp thinkphp 全开源打造 信息发布小程序 一、概述 信息发布小程序是一种基于微信平台的小程序应用&#xff0c;旨在为用户提供便捷的信息发布与展示服务。用户可以通过该小程序快速发布各类信息&#xff0c;如招聘、寻物、公告等&#xff0c;同时也可以浏览和搜索…...

Windows定时任务执行脚本

场景&#xff1a;由于网络波动原因导致云数据库没连接上&#xff0c;从而导致某个流程引擎链接不上数据库从而导致该流程引擎服务挂了&#xff0c;网络恢复后 数据库链接正常&#xff0c;但是该引擎服务还是中止状态。 解决方案&#xff1a;在Windows中新建一个定时任务&#…...

优维“统一开放平台”:开放、开发、集成、客制化

基于丰富完善的产品体系&#xff0c;优维重磅推出了统一开放平台。这款由优维自主设计与研发&#xff0c;集数据开发、能力开放、能力集成、客制化为一体的统一开放平台&#xff0c;具备应用市场、应用开发、连接能力、采控平台、API集市、开发者工具等功能模块&#xff0c;可为…...

ChatGPT新纪元:揭秘GPT-4o的多模态能力

GPT-4o登场 探索ChatGPT的多模态创新 今日凌晨&#xff0c;OpenAI向全球宣布了AI发展的新篇章——GPT-4o&#xff0c;每次OpenAI发布重大更新时&#xff0c;尽管令人兴奋&#xff0c;但也不免使众多初创公司的梦想破灭。 GPT-4o的命名中的“o”象征着“omni”——全能的代表。…...

泰勒斯威夫特2022年纽约大学毕业典礼演讲:NYU‘s 2022 Commencement Speaker Taylor Swift

NYU’s 2022 Commencement Speaker Taylor Swift Link: https://www.youtube.com/watch?vOBG50aoUwlI Singer, songwriter, producer, and director Taylor Swift received a Doctor of Fine Arts, honoris causa, at the Commencement for the Class of 2022 and delivered …...

(四)SvelteKit教程:调用外部 API 获取数据

&#xff08;四&#xff09;SvelteKit教程&#xff1a;调用 API 我们先按照如下的方式来构建api服务&#xff1a; step 1:npm i json-serverstep 2:在根目录下新建 db.json 文件&#xff0c;内部写入如下内容&#xff1a;{"users": [{"id": 1,"name…...

数据结构-分析期末选择题考点(排序)

何似清歌倚桃李 一炉沈水醉红灯 契子 ✨ 上一期给大家提供了大概会考的题型给老铁们复习的大致思路 这一期还会是一样&#xff0c;我将整理一下排序的题型以及解题方法给你们 由于时间还很多&#xff0c;我就慢慢总结吧&#xff0c;一天一章的样子&#xff0c;明天总结串、后天…...

Python:探索高效、智能的指纹识别技术(简单易懂)

目录 概括 导入库 函数一 参数&#xff1a; 函数二 函数三 主函数 运行结果 src&#xff1a; model_base 7.bmp ​编辑 总结 概括 指纹识别是一种基于人体生物特征的身份验证技术。它通过捕捉和分析手指上的独特纹路和细节特征&#xff0c;实现高准确度的身份识别。…...

『SD』AI绘画,不会写提示词怎么办?

提示词 有没有想过&#xff0c;为什么你用 SD 生成的猫是长这样的。 而其他人可以生成这样的猫。 虽然生成的都是猫&#xff0c;但猫与猫之间还是有差距的。 如果你的提示词只是“cat”&#xff0c;那大概率就会出现本文第一张图的那个效果。而如果你加上一些形容词&#xff…...

搭建大型分布式服务(四十二)SpringBoot 无代码侵入实现多Kafka数据源整合插件发布

系列文章目录 文章目录 系列文章目录前言MultiKafkaStarter [V2.2]一、功能特性二、快速开始&#xff08;生产端&#xff09;三、快速开始&#xff08;消费端&#xff09;四、其它特性五、变更记录六、参考文章 前言 在分布式服务的架构演进中&#xff0c;消息队列作为核心组件…...

Python 学习路线及技巧

一、学习路线 1. 基础阶段 ● 学习 Python 的语法基础&#xff0c;如变量、数据类型、运算符、控制流等。 ● 掌握常用的 Python 标准库&#xff0c;如 os、sys、re、datetime 等。 ● 通过编写简单的程序来巩固基础&#xff0c;如计算器、字符串处理等。 2. 进阶阶段 ● 深入…...

计算机网络知识整理笔记

目录 1.对网络协议的分层&#xff1f; 2.TCP/IP和UDP之间的区别&#xff1f; 3.建立TCP连接的三次握手&#xff1f; 4.断开TCP连接的四次挥手&#xff1f; 5.TCP协议如何保证可靠性传输&#xff1f; 6.什么是TCP的拥塞控制&#xff1f; 7.什么是HTTP协议&#xff1f; 8…...

MIX OTP——使用 GenServer 进行客户端-服务器通信

在上一章中&#xff0c;我们使用代理来表示存储容器。在 mix 的介绍中&#xff0c;我们指定要命名每个存储容器&#xff0c;以便我们可以执行以下操作&#xff1a; 在上面的会话中&#xff0c;我们与“购物”存储容器进行了交互。 由于代理是进程&#xff0c;因此每个存储容器…...

自研数据迁移扩容服务,通过全量同步、增量同步、数据校验等步骤实现了数据分库分表动态迁移和扩容。

自研数据迁移扩容服务是一个复杂的任务&#xff0c;涉及到数据的全量迁移、增量同步、数据校验以及动态迁移和扩容策略。以下是实现这一服务的关键步骤和考虑因素&#xff1a; ### 1. 全量同步 - **定义数据源和目标**&#xff1a;明确全量数据迁移的源数据库和目标数据库。 -…...

Echarts-柱状图

1.案例1 1.1代码 option = {textStyle: {color: #fff // 标题文字颜色为白色},tooltip: {trigger: axis,axisPointer: {type: shadow,},},legend: {textStyle: {color: white}},grid: {top: 15%,left: 4%,right: 4%,bottom: 7%,containLabel: true},xAxis:{type: category,da…...

PyTorch学习之 torch.squeeze 函数

PyTorch学习之 torch.squeeze 函数 一、功能 torch.squeeze 的主要作用是从给定的张量 input 中移除所有尺寸为1的维度。 二、基本语法 torch.squeeze(input, dimNone)三、参数说明 input (Tensor): 输入的张量。dim (int, 可选): 指定要移除的尺寸为1的维度 如果未指定&am…...

物联网中的常见传感器

物联网 (IoT) 是一个由传感器、软件和其他通过互联网发送数据和信息的技术连接的设备网络。 无线传感器、软件、执行器和计算机设备都是物联网组件的示例。它们通过互联网连接&#xff0c;允许数据在物体或人之间自动传输&#xff0c;无需人工干预。 物联网世界中使用的传感器…...

图形的搭建

例一&#xff1a; 输入描述&#xff1a; 多组输入&#xff0c;一个整数&#xff08;2~20&#xff09;&#xff0c;表示输出的行数&#xff0c;也表示组成“X”的反斜线和正斜线的长度。 输出描述&#xff1a; 针对每行输入&#xff0c;输出用“*”组成的X形图案。 示例一&…...

售价53.86万元新款奔驰E350eL插混版正式上市

6月1日,在 2024 粤港澳车展上,新款梅赛德斯-奔驰 E 350e L 插混版正式上市,售价 53.86 万元。外观方面,新车整体依旧延续燃油版车型的样子,标志性的“花生”大灯,大尺寸格栅以及立标等元素均得以保留。尺寸方面,新车也是保持一直,长宽高分别为 5092/1880/1489mm,轴距为…...

华为举办鸿蒙生态春季沟通会,多款产品焕新亮相

2024年4月11日,华为举办鸿蒙生态春季沟通会,带来鸿蒙智行首款智慧轿车智界S7、全新华为MateBook X Pro领衔的多项新产品、新技术,并公布鸿蒙智行生态最新成绩,展示进一步完善的华为万物互联全场景生态。鸿蒙智行,全面引领智能汽车变革全场景智慧旗舰SUV问界M9上市短短三个…...

QLExpress入门及实战总结

文章目录 1.背景2.简介3.QLExpress实战3.1 基础例子3.2 低代码实战3.2.1 需求描述3.2.1 使用规则引擎3.3.2 运行结果 参考文档 1.背景 最近研究低代码实现后端业务逻辑相关功能&#xff0c;使用LiteFlow作为流程编排后端service服务, 但是LiteFlow官方未提供图形界面编排流程。…...

golang判断字符串是否base64编码的字符串 可准确判断是或否

非常简单的判断一个字符串是否base64编码的方法&#xff0c;就是使用正则base64自身的解码转码来判断&#xff0c;如果失败则一定不是base64编码&#xff0c;否则是base64编码&#xff1a; // 使用正则自身的解码转码来判断字符串是否是base64&#xff0c;可以判断一定不是。 f…...

23种设计模式之一————外观模式详细介绍与讲解

外观模式详细讲解 一、概念二、 外观模式结构核心思想及解释模式的UML类图模式角色应用场景模式优点模式缺点 三、实例演示图示代码展示运行结果 一、概念 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它提供了一个统一的接口&#xff0c…...

通关!游戏设计之道Day16

皆大欢喜计费点 游戏行业中有一项设计显得越来越重要&#xff0c;那就是计费点设计 是开发者琢磨出来的一系列手段&#xff0c;让玩家买了游戏之后&#xff0c;还能继续付费 对于把玩家跟他们的钱拆散&#xff0c;游戏开发者们总是乐此不疲 来看几个能让开发者额外多赚些钱…...