Flash闪存技术

news2026/3/30 9:33:52
1 Mask ROMCartridges: ROM卡带, Character ROM (CHR ROM) and the Program ROM (PRG ROM). Both of them are Mask ROM.SRAM or EEPROM: game status saving.Moto 6502: 6502 - ST7 - STM82 HDD Low-level formatting低级格式化历史HDD一个完整扇区包括头部总计15字节的间隙Gap部分、同步Sync部分和地址标记Address Mark部分总计512字节的数据Data部分以及最后50字节的ECC部分这些都是在低级格式化时所确定的。SCSI指令Format Unit和Mode Select可以一定程度改变HDD的工作模式其中包括扇区尺寸。由于能够改变扇区的定义所以这2个指令可以看着是对HDD的低级格式化操作。3 NOR Flash3.1 eFlashembedded Flash集成在MCU里的嵌入式NOR闪存绝大部分MCU内部使用的是QSPI接口的NOR FlashWinbond和GDST使用的是并行接口的NOR Flash。3.2 QSPI NOR Flash之Top-Boot和Bottom-Boot每个块的大小64 KB每个扇区的大小4 KB每个页的大小256 B顶部或者底部启动设备的启动代码和定制数据的大小一般比标准块小很多为了避免浪费宝贵的空间很多NOR Flash把第一块或最后一块分割为更小的子块例如8KB。这使你更好的控制这些块的内容。依赖于启动代码在NOR Flash中的所在位置这些设备有两种风格顶部启动和底部启动设备。这取决于CPU在重启动或者加电后从哪里获取指令存储空间顶部例如Intel或者存储空间底部例如Motorola。一些NOR Flash可通过外部PIN脚来配置顶部或者底部启动。总之Top boot类型的Flash的小块block放在高地址位上,而Bottom boot类型的flash的小块block起始位置为0x000000。4 NAND Flash4.1 NAND Flash三种接口1Legacy2ONFI3Toggle DDR4.2 NAND命令read1命令代码是00h/01h分别读取上半页A区和下半页B区read2命令代码是50h读取oobC区第一个命令00h用来设置区域为0-255bytes的指针A区第二个命令01h用来设置区域为256-511bytes的指针B区第三个命令50h用来设置区域为512-527bytes的指针C区NAND Flash一上电就进入read1 00h模式所用page的528bytes数据会在12us内传输到数据寄存器。4.3 Bad Block ManagementBad Block TableBBT一般放在block 0因为第一块由厂家保证一定是好的小页512字节的Nand OOB的第6个字节大页2K的OOB第1个字节表示是不是坏块0xff表示好块0x00表示坏块QSPI NOR Flash的第一块或者最后一块一定是好的。4.4 SLC和MLC使用的文件系统SLC时代与其一起成长的软件技术有YAFFS/YAFFS2它是第一个专门为NAND设计的并具有WLWear Leveling和PORPower off Recovery功能的嵌入式文件系统以及JFFS/JFFS2建立可以挂载NAND Driver的MTD设备之上的日志文件系统。MLC预期使用寿命约为3000次PE cycleProgram Erase平均只需5到6年就达到了极限而一般车辆的预期使用寿命要远大于这个年限。5 eMMC和SD5.1 电源定义VCCCcircuit表示电路即接入电路的电压VDDDdevice表示器件即器件内部的工作电压VEEEEmitter发射极电源电压VSSSseries表示公共连接通常指电路公共接地端电压5.2 支持的频率种类达到最大数据速率的前提是8根DATxLegacy SDR26MHzmax_dtr - 26MB/sHS SDRHigh Speed Single Data Rate 52MHzmax_dtr - 52MB/sHS DDRHigh Speed Double Data Rate 104MHzmax_dtr - 104MB/sHS200High Speed 200MHzmax_dtr - 200MB/sHS400High Speed 400MHz需要Data Strobe信号max_dtr - 400MB/s5.3 eMMC芯片架构ARCPS3105-S5PhisonPhison “Five-Person”, 由五位Flash 研发经验超过14年专业人士创立群联采用ARC的SSD主控该公司提供eMMC、UFS和SSD全系列控制器SM2246ENSilicon Motion, Inc.慧荣科技采用ARC的SSD主控该公司提供eMMC、UFS和SSD全系列控制器SiliconGo/YEESTOR硅格半导体该公司提供eMMC、UFS和SSD全系列控制器5.4 命令和响应5.4.1 命令eMMC命令寄存器bit13-8表示opcodeCMD0-63、ACMD0-63eMMC超时寄存器bit3-0表示DAT0-DAT3哪个数据线超时ACMDApplication Command5.4.2 响应R1表示响应长度是一个字节R2表示响应长度是2个字节。R1b和R1的区别在DAT0上存在忙信号busy的传输R1的bit7表示响应包中CRC是否有错误1表示有否则没有5.5 eMMC5.1速度调试5.5.1 速度调试eMMC5.1支持的速度模式DDR50、HS200 SDR、HS200 DDR也叫HS400代码中的配置如下例所示。 drivers/mmc/host/sdhci-pci-core.ccapsMMC_CAP_1_8V_DDRcaps2MMC_CAP2_HS400_1_8V | MMC_CAP2_HS200_1_8V_SDReMMC DTR低速的工作电压是3.3V高速1.8V。类似于USB低速全速DPDM是3.3V高速DPDM是400mV。in drivers/mmc/core/mmc.cmmc_attach_mmc(struct mmc_host *host); - eMMC异常时需要debug该函数mmc_select_driver_type(struct mmc_card *card) - 设置驱动能力MMC_SET_DRIVER_TYPE_A{C/D}等类型5.5.2 eMMC卡调试路径/sys/class/mmc_host/mmcN/mmcN:00001/sys/kernel/debug/mmcN5.5.3 Android eMMC用户分区挂载路径1第一次挂载路径/mnt/media_rw/2第二次挂载路径使用mount的bind方式/mnt/runtime/default/mnt/runtime/read/mnt/runtime/write5.6 CSD寄存器struct mmc_ext_csd {}card-ext_csd.cmdq_enkernel parametermmc_cmdqueueoffps -A | grep mmc5.7 eMMC分区应用实例Android手机系统中各个分区的呈现形式如下1mmcblk0为eMMC的块设备2mmcblk0boot0和mmcblk0boot1对应两个Boot Area Partitions3mmcblk0rpmb则为RPMB PartitionReplay Protected Memory Block具有安全特性的分区指纹数据就是放在这个分区4mmcblk0px为UDAUser Data Area划分出来的SW Partitions5如果存在GPPGeneral Purpose Partitions名称则为mmcblk0gp1、mmcblk0gp2、mmcblk0gp3、mmcblk0gp45.8 Toolsexternal/mmc-utils/read_extcsddo_ffu (it is only for kernel version 4.4)e2label5.9 SPI模式SPI通信模式共有0~3四种他们的区别是时钟相位和极性。适用于MMC和SD的模式是mode 0CPHA0CPOL0但是mode 3多数情况下也管用。剪块透明胶带粘住TF卡第1个脚DAT2插入USB读卡器TF卡进入SPI模式。5.10 SDIOSDIO设备扫描从mmc_rescan函数开始mmc_rescan函数中分别使用400k、300k、200k100k的速率调用mmc_rescan_try_freq进行扫描只要扫描到了设备就会退出扫描。所以如果在400k速率时扫描到了SDIO设备后面3种速率的扫描就不需要再执行。CMD5响应格式为R4返回的OCROperating Conditions Register中包含3 bit的Number of IO functions读出来的值是最大支持的功能索引。6 SD卡LVDS接口6.1 LVDS电流源LVDS电流源串联在NMOS管的Source中电流是3.5 mA所以差分电压摆幅是3.5 mA x (100 // 100) x 2 350 mV。6.2 Pin定义1第一排pin7和8在legacy模式下是DAT0和DAT1UHS-II模式下是LVDS的参考时钟。Pins 7, 8: RCLK/-, Reference Clock, 频率范围从26MHz到52MHz2第二排4根长pin是VDD和VSS。3第二排4根短pin是2个LVDS Lane。Pins 11, 12: D0/-, Lane 0 Differential DataPins 15, 16: D1/-, Lane 1 Differential Data7 UFS7.1 REPORT LUNSUFS协议中REPORT LUNS长度12字节大端格式数据格式为A0 5-byte Reserved 4-byte Allocation Length 1-byte Reserved 1-byte Control命令用于设备向主机汇报其支持的逻辑单元列表。该命令的返回数据格式遵循SCSI协议规范具体如下LUN列表结构大端格式LUN数量8个字节前4个字节表示设备支持的LUN总数 * 8后4个字节保留为0。LUN条目每个LUN条目占用8字节。示例假设设备支持3个LUN2个普通LUN和1个Boot LUN响应数据可能如下00 00 00 00 00 00 00 18 // LUN数量 24 / 8 300 00 00 00 00 00 00 00 // LUN 000 00 00 00 00 00 00 01 // LUN 100 00 00 00 00 00 00 02 // LUN 2Query Request UPIU的数据段是12字节SCSI REPORT LUNS命令。7.2 UFS Provision[30th-Mar-2022]UFS standard defines 2 provisioning types. One is full provisioning and the other is thin provisioning.At the time of shipment of the device, all logical units except for RPMB and REPORT LUNS well known logical units are disabled. Therefore users must set following configurable parameters in Device Descriptor and Unit Descriptor before accessing logical units. Configured parameters are valid after a power cycle. Need do mapping of SCSI LUN id to UPIU LUN id (UFS Protocol Information Unit).QFIL rawprogramX.xml中的physical_partition_number表示UFS的LUN。7.3 UFS固件UFS最大支持的LUN为8个Linux内核中一般从sda到sdh。UFS: Linux /dev/diskUFS固件分成如下的三部分- 前端host接口协议- 中端FTLFlash Transport Layer算法- 后端NFCNand Flash Controller驱动7.4 showcaseSamsung 8nm EA9 Android images are in UFS LUN0.8 AbbreviationsMISOmi s əuMOSIm əu siQUP高通平台的SPI总线和I2C共用core和引脚称为QUPQCOM Universal Peripheral而UART和QUP又共用引脚并且称为BLSPDQSData Query Strobe时钟CLK是被用来指引命令和地址的传输而数据阀门信号DQS则是用来指引数据应该被传输到哪里去。DQS是一个双向总线也是由和时钟同样的频率来进行驱动。MfgToolFreescale Manufacturing ToolNand Flash RBAReserve Block Area预留块区ONFIOpen NAND Flash Interface上电时异步模式下指令切换到同步模式有CLK信号P/E循环Nand Flash编程/擦除次数PORNand Flash Power off Recovery掉电恢复Qimonda: Qi monda, monda means worldR/B#Ready/Busy#SAMSCSI Architecture ModelSASSerial Attached SCSISBCSCSI Block Commands特定设备指令集SPCSCSI Primary Commands基础指令集TATrusted ApplicationVCCQVCC Qualitynand flash的供电电压

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…