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

eMMC深度解析:嵌入式多媒体卡的硬件电路设计要点

一、eMMC 技术深度解析

1.定义与背景

eMMC(Embedded Multi Media Card)是一种专为嵌入式系统设计的非易失性存储解决方案,它将 NAND 闪存、主控芯片和接口协议封装在一个 BGA(Ball Grid Array)封装中。其核心目标是简化系统设计、提升数据传输效率、降低功耗,并满足移动设备对存储容量和性能的不断增长需求。eMMC 由 JEDEC(固态技术协会)制定标准,目前最新版本为 eMMC 5.1,传输速率可达 400MB/s,广泛应用于智能手机、平板电脑、工控系統、電力儲能、车载系统、物联网设备等场景。

image-20250514214535650

2.MK-米客方德内部架构与工作原理

(1)核心组件
  • NAND 闪存阵列:存储数据核心,采用 pSLC/SLC/MLC/TLC 等制程,提供不同容量与性能选择。
  • 主控芯片:管理闪存读写、坏块管理、磨损均衡(ECC 纠错、GC 垃圾回收)、协议转换(将外部命令转换为闪存操作指令)。
  • 接口逻辑:兼容 MMC/SD 协议,支持 HS400、HS200 等高速模式,通过并行数据线(DAT0~DAT7)实现数据并行传输。

image-20250514214550521

(2)关键技术
  • 坏块管理:出厂时通过扫描标记不可用块,运行时动态监测新增坏块并更新映射表,确保数据不写入失效区域,通过映射表记录坏块位置,避免数据写入失效区域,延长闪存寿命。
  • 磨损均衡算法:分为动态均衡(如基于空闲块选择)和静态均衡(如数据迁移),通过算法优化延长闪存整体寿命避免特定区块频繁擦写导致寿命提前耗尽。
  • ECC 纠错机制:采用 BCH/LDPC 算法,自动纠正数据读写过程中的比特错误。
  • BCH:适用于 SLC/MLC,纠错能力强但开销高。
  • LDPC:适用于 TLC/QLC,纠错效率更高,支持更大容量纠错码。

数据读写流程:

  1. 主机发送读写命令至 eMMC 主控。
  2. 主控解析命令并执行地址映射,将逻辑地址转换为物理地址。
  3. 通过 ECC 生成校验码,并写入/读取闪存数据。
  4. 返回数据及状态信息至主机。
(3)通信协议-引腳介紹

米客方德 eMMC 采用基于命令/响应的异步通信机制,通过以下信号线实现数据传输:

  • CLK:时钟信号,决定数据传输速率(最高支持 200MHz)。
  • CMD:命令信号线,用于发送指令(如读/写、初始化、配置等)。
  • DAT[0:7]:数据信号线,支持并行传输,提升带宽。
  • RST_N:复位信号,低电平有效。

image-20250514214606742

eMMC 框图

3.eMMC 版本演进与性能对比

版本发布年份最大速率关键特性
eMMC 4.3200952MB/s支持 HS200 模式,满足早期移动设备需求。
eMMC 4.52011200MB/s引入 HS400 高速模式,支持 LPDDR 接口。
eMMC 5.02013400MB/s增强功耗管理,支持硬件加密(eMMC Security)。
eMMC 5.12016400MB/s优化随机读写性能,提升温度适应性。

二、MK-米客方德 eMMC 硬件电路设计详解

(一)电路设计基础

1.典型应用电路

eMMC 电路设计需关注电源、信号连接及保护,以下为典型电路示意:

image-20250514214633834

eMMC 典型应用电路示意图,包含 VCC、VCCQ、VDDi、CLK、CMD、D[0:7]、RST_N 等信号,标注滤波电容、上拉电阻等。

2.电源设计
  • VCC(供电电源):通常为 3.3V 或 1.8V,需通过 LC 滤波电路(如 10uF+0.1uF 电容并联)抑制高频噪声。

  • VCCQ(IO 电源):与 VCC 相同或独立,需确保电平匹配以避免逻辑冲突。

  • VDDi(内部核心电源):用于主控芯片供电,需单独滤波(如 2.2uF 电容),并避免与 IO 电源共线。

    3.  信号线处理

  • CLK 信号:需 50Ω 阻抗匹配,避免反射导致时序错误。

  • 数据线(D0~D7):采用并行传输,需等长布线(误差<50mil),并预留上拉电阻(10KΩ)以增强信号驱动能力。

  • CMD 信号:需上拉至 VCCQ,确保空闲状态为高电平。

(二)关键设计要素

1.滤波与去耦电容布局
  • 电源引脚附近放置多个不同容值电容(0.1uF~10uF),形成“金字塔”滤波结构,吸收不同频段噪声。
  • VCC 与 VCCQ 通过 0Ω 电阻隔离,确保电平一致性。
  • 电容尽量靠近芯片引脚,缩短走线长度,减少寄生电感。
  • 采用 PMIC(电源管理芯片)为 eMMC 提供独立 3.3V 供电,减少系统电源干扰。
2.PCB 布线规则
  • 分层设计:推荐使用 4 层及以上 PCB,信号层与地层相邻,降低信号辐射。
  • 信号隔离:eMMC 信号与其他高速信号(如 USB、射频)保持间距(≥3W),数据线组间添加地线隔离,避免串扰。
  • CLK 走线:采用蛇形走线补偿长度差异,确保与数据线同步到达。
  • 热设计考虑:eMMC 芯片下方铺铜散热,通过过孔连接至地层,增强散热效率。
  • 地平面分割:若存在多个电源域,需在分割区通过 0Ω 电阻或磁珠连接,确保信号回流路径最短。
3.ESD 与浪涌保护
  • 信号线可添加 TVS 二极管或 ESD 保护芯片,防止静电或瞬态高压损坏接口。
  • RST_N 信号线需串联限流电阻(如 1KΩ)并上拉,避免误触发复位。

三、eMMC 性能优化与调试

1.时序参数优化

  • CLK 频率与数据建立/保持时间:根据 eMMC 规格调整 CLK 频率,确保数据在窗口期内稳定传输。
  • 信号延迟匹配:通过仿真工具(如 HyperLynx)验证 CLK 与数据线延迟差,调整 PCB 布线长度。

2.功耗管理

  • 利用 eMMC 的 Deep Power Down 模式(DPD)降低待机功耗,通过软件控制进入/退出 DPD 状态。
  • 动态调整读写电压(如 1.8V→1.2V),平衡性能与功耗。

3.调试工具与测试方法

  • 使用示波器抓取 CLK、数据波形,分析时序违规问题。
  • 通过压力测试(如连续读写、高温老化)验证 eMMC 可靠性。

image-20250514214645520

相关文章:

eMMC深度解析:嵌入式多媒体卡的硬件电路设计要点

一、eMMC 技术深度解析 1.定义与背景 eMMC&#xff08;Embedded Multi Media Card&#xff09;是一种专为嵌入式系统设计的非易失性存储解决方案&#xff0c;它将 NAND 闪存、主控芯片和接口协议封装在一个 BGA&#xff08;Ball Grid Array&#xff09;封装中。其核心目标是简…...

【SPIN】PROMELA语言编程入门同步机制(SPIN学习系列--4)

同步机制 PROMELA 不包含信号量、锁或监控器等常见的同步原语&#xff0c;而是通过语句的**可执行性&#xff08;executability&#xff09;**概念来建模同步机制。计算机系统的架构限制了同步机制的设计&#xff1a;本章主要介绍适用于共享内存系统的同步机制&#xff0c;第7…...

整数的个数

【描述】 给定k&#xff08;1< k < 100&#xff09;个正整数&#xff0c;其中每个数都是大于等于1&#xff0c;小于等于10的数。写程序计算给定的k个正整数中&#xff0c;1&#xff0c;5和10出现的次数。 【输入】 输入有两行&#xff1a;第一行包含一个正整数k&#xff…...

AWS EKS IP 耗尽:原因、解决方案和最佳实践

想象一下&#xff0c;您的 AWS EKS 集群在生产环境中运行顺畅&#xff0c;所有 CI/CD 管道运行正常&#xff0c;服务优雅地扩展&#xff0c;一切都像自动驾驶模式一样。——直到有一天&#xff0c;新的 Pod 无法启动。 您深入研究 kubectl get pods 命令&#xff0c;发现一堆 P…...

艾默生流量计与Profibus DP主站转Modbus RTU/TCP网关通讯案例

艾默生流量计与Profibus DP主站转Modbus RTU/TCP网关通讯案例 在现代工业自动化控制系统中&#xff0c;艾默生流量计因其高精度、稳定性和易用性而备受青睐。然而&#xff0c;为了实现与不同协议设备之间的无缝通信&#xff0c;经常需要借助专业的通讯网关进行协议转换。本文将…...

Python测试单例模式

单例模式的核心思想 单例模式确保一个类只有一个实例&#xff0c;并提供一个全局访问点。这在需要控制资源访问&#xff08;如配置文件、数据库连接等&#xff09;时非常有用。 一个简单的示例&#xff1a; import threading import timeclass Singleton:instance Nonelock…...

Linux架构篇、第五章_06Jenkins 触发器全面解析与实战指南

Linux架构篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;jenkins触发器的介绍与使用 版本号: 1.0,0 作者: laowang 日期: 2025.05.16 适用环境:rocky9.5 文档说明 本文档为《jenkins 触发器的介绍与…...

如何快速更换电脑浏览器ip:教程与注意事项

无论是为了访问地域限制内容、保护隐私&#xff0c;还是解决网络问题&#xff0c;快速更换浏览器IP地址的需求日益增多。以下是快速更换电脑浏览器IP地址的几种常用方法及注意事项&#xff0c;结合了多种场景下的解决方案&#xff1a; 一、快速更换浏览器IP的方法 1. 代理服务…...

《黑马前端ajax+node.js+webpack+git教程》(笔记)——ajax教程(axios教程)

黑马程序员前端AJAX入门到实战全套教程&#xff0c;包含学前端框架必会的&#xff08;ajaxnode.jswebpackgit&#xff09;&#xff0c;一套全覆盖 文章目录 框架前置导学AJAX-Day01-01.AJAX入门与axios使用什么是AJAX如何使用AJAX使用axios获取数据案例axios语法尝试获取数据代…...

超级管理员租户资源初始化与授权管理设计方案

背景说明 在多租户系统中&#xff0c;资源&#xff08;如功能模块、系统菜单、服务能力等&#xff09;需按租户维度进行授权管理。超级管理员在创建新租户时&#xff0c;需要初始化该租户的资源授权信息。 两种可选方案 方案描述方案 A&#xff1a;前端传入选中的资源列表创…...

【Python训练营打卡】day30 @浙大疏锦行

DAY 30 模块和库的导入 知识点回顾&#xff1a; 1. 导入官方库的三种手段 2. 导入自定义库/模块的方式 3. 导入库/模块的核心逻辑&#xff1a;找到根目录&#xff08;python解释器的目录和终端的目录不一致&#xff09; 作业&#xff1a;自己新建几个不同路径文件尝试下如何…...

微前端记录

微前端 实习过程中&#xff0c;做了些微前端方向的调研&#xff0c;记录下 微前端将前端拆分为独立的可以单独运行&#xff0c;测试&#xff0c;部署的代码&#xff0c; 具有技术栈无关&#xff0c;多团队&#xff0c;多业务线协作的特点。 前端现有的页面&#xff0c;分为单页…...

词嵌入基础

一 前言 最近在学习NLP方面知识&#xff0c;在此记录一下词嵌入的技术。 二 词袋法 1.理论 就是统计一个句子或文章中&#xff0c;词语出现的次数。这方法有去重词袋法&#xff0c;无去重词袋法。 a 原理与案例 chinese_docs ["我爱自然语言处理","自然语…...

CSS之网页元素的显示与隐藏(旧土豆网遮罩案例)

网页元素的显示与隐藏。 很多网页的侧边栏都会出现广告&#xff0c;我们点击关闭时&#xff0c;广告会消失不见&#xff0c;但若重新刷新网页页面&#xff0c;则广告会重新出现。网页的广告并非是真的被删除了&#xff0c;而是被暂时的隐藏起来了。 • display • visibil…...

关于 Web 漏洞原理与利用:2. XSS(跨站脚本攻击)

一、原理&#xff1a; 用户输入未过滤被执行 攻击者输入的内容&#xff0c;如果没有被正确处理&#xff08;过滤/转义&#xff09;&#xff0c;被网页原样输出到浏览器中&#xff0c;那么这些内容就可能会被浏览器当成代码执行&#xff0c;这就是 XSS&#xff08;跨站脚本攻击…...

【TTS回顾】深度剖析 TTS 合成效果的客观评估与主观评价

如何评估合成音色的效果 当我们面对一个新发布的 TTS 模型,或者在多个模型之间进行选择时,一个核心问题摆在我们面前:如何科学、全面地评估一个 TTS 模型的合成效果? 仅仅凭感觉“听一听”显然不够客观和系统。我们需要一套行之有效的评估方法和指标体系,来衡量 AI “说话…...

WPF点击按钮弹出一个窗口

一、基本方法&#xff1a;直接实例化并显示窗口 1. 普通窗口&#xff08;无参数&#xff09; 适用场景&#xff1a;简单的弹出窗口&#xff0c;无需传递数据。 private void Button_Click(object sender, RoutedEventArgs e) { var newWindow new MyWindow(); // 实例化…...

WPF中的ObjectDataProvider:用于数据绑定的数据源之一

ObjectDataProvider是WPF(Windows Presentation Foundation)中一种强大而灵活的数据绑定源&#xff0c;它允许我们将对象实例、方法结果甚至是构造函数的返回值用作数据源。通过本文&#xff0c;我将深入探讨ObjectDataProvider的工作原理、使用场景以及如何在实际应用中发挥其…...

Java POJO接收前端null值设置

在 Java 中&#xff0c;若要让 price 字段接收前端传递的 null 值&#xff0c;只需确保以下几点&#xff1a; 1. 使用包装类型 Double 你的 price 字段已经是包装类型 Double&#xff08;而不是基本类型 double&#xff09;&#xff0c;这天然支持 null 值。基本类型 double …...

C++(24):容器类<list>

目录 一、核心概念 二、基本语法 1. 声明与初始化 2.添加元素 3.访问与遍历 4. 删除元素 三、特点 1. 高效插入/删除 2. 不支持随机访问 3. 特有成员函数 4. 内存与性能 四、示例代码 五、成员函数 六、使用场景 七、注意事项 Lists将元素按顺序储…...

WPF Data Binding 及经典应用示例

什么是Data Binding&#xff08;数据绑定&#xff09;&#xff1f; Data Binding是WPF中的核心机制&#xff0c;它建立了UI元素&#xff08;视图&#xff09;与数据对象&#xff08;模型/视图模型&#xff09;之间的连接通道&#xff0c;实现了数据的自动同步。当数据发生变化…...

Qt—模态与非模态对话框

Qt—模态与非模态对话框 核心概念 ​模态对话框​​&#xff1a;强制用户优先处理当前窗口&#xff0c;阻塞指定范围的用户交互。​非模态对话框​​&#xff1a;允许用户自由切换窗口&#xff0c;无交互限制。 一、模态对话框类型与行为 1. 应用级模态&#xff08;Applica…...

如何实现从网页一键启动你的 Electron 桌面应用(zxjapp://)

在现代桌面应用开发中&#xff0c;Electron 凭借其跨平台能力和前端友好的特性&#xff0c;受到了越来越多开发者的青睐。但你是否想过&#xff0c;如何让用户从网页上一键启动你本地的 Electron 应用&#xff1f;比如像某些云盘客户端那样&#xff0c;点击网页上的按钮就能直接…...

linux编译安装srs

下载编译运行 git clone https://github.com/ossrs/srs.git cd srs/trunk ./configure --h265on make需要安装 yum install -y patch yum install -y unzip yum install -y tcl编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/s…...

对于程序员的个人理解

系统架构师 1.下图是应该具备的能力&#xff0c;而且看前辈的资料中&#xff0c;发现干的时间越多就越全能。 2.对于新技术来说应该让其先沉淀三年左右看他是不是能打&#xff0c;同时可以避免其大规模的改动。 3.要有宏观视野 【要看自己所开发的东西是不是可以随时调用&am…...

Web安全基础

文章目录 前端基础浏览器工作原理HTTP超文本传输协议cookiesessiontoken web服务器USBWebServerNginx介绍 前端三大件html超文本标记语言CSS层叠样式表JavaScript基本语法php基本语法 攻击手段文件上传漏洞文件包含漏洞代码执行漏洞变量修改shell监听SQL注入跨站脚本XSSXSS示例…...

从秒开到丝滑体验!WebAssembly助力ZKmall商城重构 B2B2C 商城性能基线

在 B2B2C 电商领域&#xff0c;用户对页面加载速度与交互流畅度的要求日益严苛。传统 Web 技术在处理复杂业务逻辑、海量数据渲染时&#xff0c;常出现卡顿、延迟等问题&#xff0c;导致用户流失。ZKmall 商城创新性地引入 WebAssembly&#xff08;简称 Wasm&#xff09;技术&a…...

word文档交叉引用

参考视频 论文排版中参考文献的引用方法&#xff1a;交叉引用法_哔哩哔哩_bilibili 具体操作 定义编号格式 进入开始页面&#xff0c;重新定义编号格式. 碰到的问题 出现了一个大大的空格&#xff0c;不知道是什么情况&#xff0c;想把编号和参考文献紧贴在一起。 调整列…...

项目QT+ffmpeg+rtsp(三)——延迟巨低的项目+双屏显示

文章目录 前言双屏显示widget.cppwidget.h前言 对于复现情况,分为两种情况 第一种,对于我而言,是直接解压后,就能直接运行了 第二种,对于师兄而言,需要你构建debug后,会产生这个文件夹,执行的时候,地址应该在这,我猜的,这里面没有dll,exe程序就找不到dll这些库,你…...

二分交互题总结

简单版 bool query(int x){cout<<x<<endl;cout.flush();string ans;cin>>ans;return (ans">"); } void solve() {int n;cin>>n;int l1,rn;if(n1)return cout<<"! 1"<<endl,void();if(n2){if(query(2))return cout&…...

昆仑通态MCGSpro,自定义配方功能

最近在做一个机床的控制系统&#xff0c;是用来打磨轴承滚子的&#xff0c;用到了昆仑通态触摸屏&#xff0c;西门子1200&#xff0c;以及1个台达变频器&#xff0c;五个私服电机。大致就是下面这个设备。 对于西门子1200运动控制的相关内容&#xff0c;以及调试过程中遇到的坑…...

工业视觉高精度测量利器——Halcon卡尺工具深度解析

Halcon中的卡尺工具&#xff08;Caliper Tool&#xff09;是工业视觉中用于高精度边缘检测和几何测量的重要功能&#xff0c;尤其在尺寸测量、定位和对象分析中广泛应用。以下从原理、实现到优化的深度解析&#xff1a; 1. 卡尺工具实现原理&#xff08;步骤分解&#xff09;​…...

2025毕业论文与答辩资料精选汇总

毕业季来临&#xff0c;对于即将毕业的大学生来说&#xff0c;毕业论文和答辩无疑是毕业季的“重头戏”。尤其是对于IT行业的学生来说&#xff0c;毕业论文不仅需要扎实的专业知识&#xff0c;还需要良好的表达能力和清晰的逻辑思维。今天&#xff0c;我为大家整理了一份涵盖IT…...

「数智化聚合分销生态系统」定制开发:重构全渠道增长引擎

在数字经济深度重构全球商业格局的时代&#xff0c;企业亟需突破传统分销体系的效能边界&#xff0c;构建具有核心竞争力的现代化营销网络。我们以行业前沿技术为驱动&#xff0c;提供全栈式聚合分销系统定制开发服务&#xff0c;通过深度融合数字化、智能化解决方案&#xff0…...

【物联网】 ubantu20.04 搭建L2TP服务器

部署篇 序言 为了是两个客户端在同一个网络内&#xff0c;需要找一台服务器&#xff0c;搭建一个L2TP服务器&#xff0c;通过L2TP使两个客户端在同一个网络内,为什么要搭建&#xff0c;主要是解决例如员工出差后&#xff0c;还需要连接公司内网资源的问题&#xff0c;本文主要…...

std::ranges::iota

std::ranges::iota_view 和 std::views::iota 是 C23 Ranges 库中的一部分&#xff0c;用于生成一系列递增的值&#xff0c;类似 Python 的 range() 或传统的 for 循环生成器。 一 原形 Defined in header <numeric> Call signature template< std::input_or_output…...

物联网简介:万物互联的未来图景

物联网简介&#xff1a;万物互联的未来图景 引言 在科技飞速发展的今天&#xff0c;我们身边的一切似乎都在悄然发生变化。从清晨智能闹钟根据你的睡眠状态自动唤醒&#xff0c;到厨房里的咖啡机在你起床前已经煮好咖啡&#xff1b;从城市交通系统通过实时数据优化红绿灯时长…...

Python类方法解析:从字节序列重构Vector2d实例

这篇文章将详细解析Python中的classmethod装饰器&#xff0c;并通过一个实际案例——为Vector2d类实现frombytes方法&#xff0c;展示如何从字节序列重构对象实例。 类方法基础 classmethod是Python中一个重要的装饰器&#xff0c;它用于定义类方法。与普通实例方法不同&…...

list.forEach(s -> countService.refreshArticleStatisticInfo(s.getId())); 讲解一下语法

这段代码使用了Java中的forEach方法结合Lambda表达式来遍历一个列表&#xff0c;并对列表中的每个元素执行特定操作。具体来说&#xff0c;它会遍历列表中的每一个元素&#xff0c;并调用countService.refreshArticleStatisticInfo(s.getId())方法来刷新每个文章的统计信息。下…...

linux服务器与时间服务器同步时间

内网部署服务器&#xff0c;需要同步时间 使用系统内置的systemctl-timesyncd进行时间同步 1.编辑配置文件 sudo nano /etc/systemd/timesyncd.conf修改添加内容入下 [Time] NTP10.100.13.198 FallbackNTP#说明 #NTP10.100.13.198&#xff1a;你的主 NTP 时间服务器 IP #Fall…...

通过低功耗蓝牙通信实例讲透 MCU 各个定时器

📖 在嵌入式开发中,“定时器”几乎无处不在。但大多数人一说起定时器,要么只会 HAL_Delay(),要么搞不清楚硬件、虚拟、协议定时器到底有啥区别。 今天我们不讲纯理论,而是直接通过一个完整的 BLE 通信实例,带你一次性搞清楚 MCU 各类定时器的真实用途和工作机制。 📚…...

Spring_Boot(一)Hello spring boot!

新建项目加入 spring_web 依赖&#xff0c;生成如下 pom.xml文件&#xff0c;即为代码配置。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XML…...

MySQL故障排查与生产环境优化

目录 一、前置知识点&#xff1a;MySQL 逻辑架构解析 &#xff08;一&#xff09;客户端和连接服务层&#xff08;最上层&#xff09; &#xff08;二&#xff09;核心服务层&#xff08;第二层&#xff09; &#xff08;三&#xff09;存储引擎层 &#xff08;四&#xf…...

mysql故障排查与环境优化

一、mysql运行原理 mysql的运行分为三层 客户端和连接服务 核心服务功能&#xff08;sql接口、缓存的查询、sql的分析和优化以及部分内置函数的执行等。&#xff09; 存储引擎层&#xff08;负责mysql中数据的存储和提取。&#xff09; 二、示例 1、实验环…...

博图1200硬件组态与启保停程序编写步骤详解

一、前言 在工业自动化控制领域&#xff0c;西门子S7-1200 PLC因其性能稳定、编程灵活而广受欢迎。本文将详细介绍使用TIA Portal&#xff08;博图&#xff09;软件进行S7-1200 PLC硬件组态以及编写基本启保停程序的完整步骤&#xff0c;帮助初学者快速掌握这一基础而重要的技…...

深入解析Java微服务架构:Spring Boot与Spring Cloud的整合实践

深入解析Java微服务架构&#xff1a;Spring Boot与Spring Cloud的整合实践 引言 随着云计算和分布式系统的快速发展&#xff0c;微服务架构已成为现代软件开发的主流模式。Java作为企业级应用开发的核心语言&#xff0c;结合Spring Boot和Spring Cloud的强大生态&#xff0c;…...

AM32电调学习解读九:ESC上电启动关闭全流程波形分析

这是第九篇&#xff0c;前面的文章把各个模块的实现都介绍了一轮&#xff0c;本章是从运行的角度结合波形图&#xff0c;把整个流程走一遍。 先看下一运行的配置&#xff0c;我把一些配置关闭了&#xff0c;这样跑起来会好分析一些&#xff0c;不同配置跑起来效果会有差异。使用…...

迅联文库开发日志(三)登陆注册

目录 一、注册 Controller层 Service层 二、登录 其他需要注意的&#xff1a; 需要实现 Serializable 的场景​ 一、注册 先思考我们需要哪些参数&#xff1a; 邮箱、昵称、密码、邮箱验证码 &#xff08;图片验证码会调用checkCode()验证&#xff09; Controller层 Req…...

Oracle 数据库的默认隔离级别

Oracle 数据库的默认隔离级别 默认隔离级别&#xff1a;READ COMMITTED Oracle 默认使用 读已提交(READ COMMITTED) 隔离级别&#xff0c;这是大多数OLTP(在线事务处理)系统的标准选择。 官方文档 https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/da…...

PDF 合并测试:性能与内容完整性

我们一直在改进 PDF 合并工具 JPedal&#xff0c;并希望通过测试对比其与其他工具的表现。该工具支持合并包括大文件在内的完整文档。 如何测试 PDF 合并输出 我们在示例文件上进行了对比测试&#xff0c;您也可以用自有文件复现。 测试中使用的方法之一是借助 Adobe Reader&a…...