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

Flash闪存技术

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的供电电压

相关文章:

Flash闪存技术

1 Mask ROM Cartridges: 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一个完整扇区包…...

避开这些坑!MoveIt C++编程中setGoalTolerance、computeCartesianPath等关键函数使用详解与调试技巧

MoveIt C编程避坑指南:关键函数深度解析与实战调试技巧 在机器人运动规划领域,MoveIt作为ROS生态中的核心组件,为开发者提供了强大的功能接口。然而在实际C编程中,许多开发者往往陷入看似简单却暗藏玄机的函数调用陷阱。本文将聚焦…...

【全场景优化】WaveTools鸣潮性能调校指南:从卡顿到流畅的完整解决方案

【全场景优化】WaveTools鸣潮性能调校指南:从卡顿到流畅的完整解决方案 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 问题定位:硬件与软件的兼容性挑战 当代游戏性能优化面临的核…...

告别广告侵扰:AdGuard广告拦截扩展全平台部署指南

告别广告侵扰:AdGuard广告拦截扩展全平台部署指南 【免费下载链接】AdguardBrowserExtension AdGuard browser extension 项目地址: https://gitcode.com/gh_mirrors/ad/AdguardBrowserExtension 副标题:从新手到高手的一站式配置方案 一、价值定…...

LiuJuan20260223Zimage在CSDN技术博客创作中的全流程辅助

LiuJuan20260223Zimage:技术博主的高效创作伙伴 写技术博客,最头疼的是什么? 是选题枯竭,对着空白文档发呆半天?是写到一半,发现某个技术点解释不清,需要到处查资料?还是好不容易写…...

告别反复插拔SD卡:迪文DGUS II屏串口下载与仿真调试全攻略(附T5L实战技巧)

告别反复插拔SD卡:迪文DGUS II屏串口下载与仿真调试全攻略(附T5L实战技巧) 在工业控制、智能家居和物联网设备的开发中,迪文DGUS II系列串口屏因其高性价比和强大的组态功能,已成为众多开发者的首选。然而,…...

Matlab APP Designer避坑指南:字符进度条不更新的解决方案

Matlab APP Designer避坑指南:字符进度条不更新的解决方案 在Matlab APP Designer开发过程中,进度条是用户交互体验的重要组成部分。许多开发者都遇到过这样的困扰:精心设计的字符进度条在运行时却"卡住"不动,直到整个计…...

评一个典型的“数学可视化 + 计算机图形学入门”的优秀案例(C++精灵库3D案例)

这份代码和视频展示了一个非常典型的“数学可视化 计算机图形学入门”的优秀案例。它不仅仅是一段能运行的代码,更是一个将抽象数学公式转化为直观视觉艺术的教学演示。 以下是对该程序及视频的多维度评论: 1. 技术实现与图形学原理 这段代码虽然简短…...

保姆级教程:深求·墨鉴Podman部署全流程,小白也能轻松搞定

保姆级教程:深求墨鉴Podman部署全流程,小白也能轻松搞定 1. 为什么选择Podman部署深求墨鉴? 传统Docker部署方式虽然常见,但对于深求墨鉴这样的轻量级OCR工具来说,Podman提供了更优雅的解决方案。Podman是一款无需守…...

OpenGL 3D项目避坑指南:从贴图资源获取到交互菜单设计,我的CPT205大作业复盘

OpenGL 3D项目避坑指南:从贴图资源获取到交互菜单设计 当第一次接触OpenGL 3D项目时,许多计算机图形学学习者都会陷入相似的困境——如何在有限时间内完成一个既美观又功能完整的作品?本文将以CPT205课程大作业为例,分享从资源获取…...

跨平台音频格式兼容性处理:让FRCRN支持更多音视频文件

跨平台音频格式兼容性处理:让FRCRN支持更多音视频文件 你有没有遇到过这种情况?精心搭建了一个基于FRCRN模型的音频降噪服务,信心满满地准备上线,结果用户一上传文件,服务就报错。有的用户传的是手机录的.m4a&#xf…...

Phi-3 Forest Laboratory 与SpringBoot微服务整合:打造企业级AI中台

Phi-3 Forest Laboratory 与SpringBoot微服务整合:打造企业级AI中台 最近和几个做企业级应用开发的朋友聊天,大家不约而同地提到了同一个痛点:公司内部有好几个业务团队都想用上最新的AI能力,比如用Phi-3这样的模型做智能客服、文…...

黑丝空姐-造相Z-Turbo应用场景:快速生成创意配图,提升内容创作效率

黑丝空姐-造相Z-Turbo应用场景:快速生成创意配图,提升内容创作效率 1. 镜像概述与核心价值 黑丝空姐-造相Z-Turbo是一款基于Xinference部署的文生图模型服务,专门针对特定风格图片生成进行了优化。该镜像通过gradio提供了直观的Web界面&…...

ESP8266配网总失败?详解AirLink和SoftAP两种模式在机智云项目中的实战区别与选择

ESP8266配网失败全解析:从AirLink到SoftAP的深度诊断手册 配网失败时,ESP8266的红色LED灯常亮像在嘲笑你的无能——这可能是物联网开发者最熟悉的挫败感。当机智云项目卡在最后10%的配网环节,那种"硬件没问题、代码没报错,但…...

新一代OpenWRT主题:Neobird革新路由器管理体验

新一代OpenWRT主题:Neobird革新路由器管理体验 【免费下载链接】luci-theme-neobird 一个专门针对移动端优化的OpenWRT主题,基于luci-theme-material,全新的登录界面,沉浸式Webapp体验。 项目地址: https://gitcode.com/gh_mirr…...

Piping Server开发者指南:如何基于流传输构建自己的应用

Piping Server开发者指南:如何基于流传输构建自己的应用 【免费下载链接】piping-server Infinitely transfer between every device over pure HTTP with pipes or browsers 项目地址: https://gitcode.com/gh_mirrors/pi/piping-server Piping Server是一个…...

AI做表工具三强对决:Excel-Agent、ChatExcel、Excel 原生 Agent,谁才是职场数据处理真王者?

当 AI 遇上 Excel,传统制表、数据清洗、复杂分析的低效困局被彻底打破。当前市场上,Excel-Agent、ChatExcel、Excel 原生 Agent 模式 是 AI 表格领域的三大主流选择,但三者在技术逻辑、使用体验、数据安全、实战效能上差异显著。作为专为 Exc…...

XUnity.AutoTranslator游戏翻译解决方案:从入门到精通的实战指南

XUnity.AutoTranslator游戏翻译解决方案:从入门到精通的实战指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因语言障碍错失优秀的Unity游戏体验?面对满屏外文界面感到…...

WRF风场后处理实战:用Python+Cartopy绘制500hPa风场矢量图(附完整代码)

WRF风场后处理实战:用PythonCartopy绘制500hPa风场矢量图(附完整代码) 气象数据分析中,风场可视化是理解大气环流特征的关键环节。WRF(Weather Research and Forecasting)模式输出的数据包含丰富的三维风场…...

别再乱调参数了!用Matlab polyfit做曲线拟合,从欠拟合到过拟合的实战避坑指南

Matlab曲线拟合实战:从polyfit到正则化的高阶避坑指南 当你面对一组杂乱无章的实验数据时,是否曾为选择哪个多项式阶数而纠结?工程师小张最近就遇到了这个难题——他在处理传感器温度补偿数据时,发现3阶拟合不够精准,但…...

51页可编辑PPT | 农产品区块链溯源信息化平台整体解决方案

许多公司在数字化转型的过程中,常常面临数据孤岛、流程效率低下和客户体验不佳等问题。这些问题导致决策缓慢,难以快速响应市场变化,最终影响公司竞争力。方案的核心目标是帮助企业通过整合数据、优化流程和提升客户体验,实现数字…...

IBM System/4 Pi:航空航天计算机的兴衰与技术传奇

【导语:1981 年航天飞机首飞,其发射和大部分飞行环节由 IBM 的 System/4 Pi 系列 AP - 101B 计算机控制。该系列于 1967 年推出,广泛应用于航空航天等领域,虽发挥重要作用,但相关信息却较难获取。】System/4 Pi&#x…...

找不到api-ms-win-core-path-l1-1-0.dll的官方解决方法(2026更新)

我是一名企业的IT桌面支持,平时处理得最多的就是员工电脑上五花八门的软件报错。最近,api-ms-win-core-path-l1-1-0.dll缺失的工单量激增,尤其在Windows 7系统的电脑上。很多同事第一反应是去网上搜这个文件下载,但这恰恰是IT运维…...

TranslucentTB:颠覆传统的Windows任务栏透明化解决方案

TranslucentTB:颠覆传统的Windows任务栏透明化解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 在当今数字化工作环境…...

基于DAMOYOLO-S与计算机网络技术:构建分布式视频分析集群

基于DAMOYOLO-S与计算机网络技术:构建分布式视频分析集群 想象一下,一个大型物流园区,上百个摄像头日夜不停地运转,管理者需要实时知道:哪条通道拥堵了?哪个区域有异常人员闯入?传统的监控方式…...

LightOnOCR-2-1B部署指南:快速搭建你的私有OCR识别服务

LightOnOCR-2-1B部署指南:快速搭建你的私有OCR识别服务 1. 认识LightOnOCR-2-1B 你是否遇到过需要从大量图片中提取文字的场景?比如扫描的合同、拍照的会议记录,或者历史档案数字化?传统的OCR解决方案要么识别准确率不高&#x…...

MinerU 2.5-1.2B新手教程:无需深度学习基础,快速上手PDF提取

MinerU 2.5-1.2B新手教程:无需深度学习基础,快速上手PDF提取 1. 引言:为什么选择MinerU? PDF文档是我们日常工作和学习中常见的文件格式,但要从PDF中提取内容却常常让人头疼。特别是遇到学术论文、技术报告这类包含复…...

OpenClaw自动化测试:基于Nanobot的持续集成方案

OpenClaw自动化测试:基于Nanobot的持续集成方案 1. 引言 在软件开发领域,测试环节往往是耗时最长、人力投入最大的阶段之一。传统的自动化测试脚本编写不仅需要专业的技术知识,还需要大量的维护成本。随着项目迭代速度加快,测试…...

Blender3mfFormat插件全攻略:从基础到进阶的3MF文件处理指南

Blender3mfFormat插件全攻略:从基础到进阶的3MF文件处理指南 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 一、基础认知:3MF格式与插件价值解析…...

ChatGPT、Claude、Gemini大模型实战对比:哪个更适合你的业务场景?

ChatGPT、Claude、Gemini大模型实战对比:哪个更适合你的业务场景? 当企业面临AI大模型选型时,往往陷入技术参数的海洋却难以找到业务适配的答案。本文将从真实业务需求出发,通过客服对话、内容创作、数据分析三个典型场景的实测数…...