存储
文章平均质量分 94
-飞鹤-
喜欢音乐,喜欢文学,喜欢跑步,喜欢编程!
展开
-
嵌入式开发——基础电路知识
驱动能力、负载能力、逻辑电平、三态输出、推挽输出、开漏输出、上拉电阻、下拉电阻、高通波滤、低通波滤、电源去耦电路、阻抗匹配、差分信号、MOS管与继电器、RS232和RS485、译码器、UART/IIC/SPI、模拟信号和数字信号眼图、真实U盘电路讲解。原创 2024-03-27 16:09:57 · 3645 阅读 · 0 评论 -
嵌入式开发——基础元器件
差分线的好处是,如果传输的信号受干扰,那么两个差分线就同时受干扰,两个信号会同时变化,那么两个信号的幅值差就会近似不变的,利用幅值差来表示信号就可降低干扰。电流表是串联接入电路的,电流表的内阻很小,一般为几mΩ,这样电流表接入电路对电源的外部负载影响很小,所以测量的电流近似于真实值。Vdd,IC的设备电压,在NAND Flash中,与Vccq等同,用于数据传输存储,为了降低功耗,其电压从早期的5V到后来的3.3V, 1.8V甚至1.2V。Vcc,IC的工作电压,主要用于控制IC内部的各种逻辑。原创 2024-03-27 15:45:36 · 1325 阅读 · 0 评论 -
NVMe开发——PCIe配置空间和地址空间
PCIe支持不同功能的设备,不同的设备其需要操作的内存大小也不同,为了更方便地实现这一种,BAR(Base Address Registers)产生了。为此,提出了一个新的增强配置访问机制,即将每个功能的配置空间映射到设备的256MB空间中,按4K对齐来分配访问。PCI的256字节信息不够PCIe使用,所以PCIe在此基础上将配置空间扩展到4K字节,如下图中列出了一些主要的扩展寄存器。Capabilities是一组描述PCIe设备功能相关的结构,它是一个链式的结构,一个指向下一个,直到最后。原创 2024-03-04 18:04:27 · 3466 阅读 · 1 评论 -
NVMe开发——PCIe复位
简介PCIe中有4种复位机制,早期的3种被称为传统复位(Conventional Reset)。传统复位中的前2种又称为基本复位(Fundamental Resets),分别为冷复位(Cold Reset),暖复位(Warm Reset)。第3种复位为热复位(Hot Reset)。第4种复位被称为功能级复位(Function Level Reset),出现在PCIe 2.0规范中。传统复位。原创 2024-03-01 19:39:01 · 3213 阅读 · 0 评论 -
NVMe开发——PCIe电源管理
PCIe电源管理详细描述了与PCI总线PM接口规范和高级配置和电源接口(ACPI)兼容的PCIe功耗管理。PCIe定义了对PCI-PM规范的扩展,主要关注链路电源和事件管理。还概述了OnNow计划、ACPI以及Windows操作系统的相关性。原创 2024-03-01 19:35:49 · 2966 阅读 · 0 评论 -
NVMe开发——PCIe基础
PCI(Peripheral Component Interconnect),外设组件互连。PCI是一种并口总线标准,对比其之前的其他总线,PCI因其速度快、支持即插即用,中断共享等特性,占领计算机总线标准近20年。随着CPU以及外设的速度要求越来越高,PCI总线愈发显得有心无力。PCI因为是并口,在高速信号传输中,因为信号质量问题,以及信号同步问题,并口解决这些问题的成本高,难以为继。在这个时候,PCI的替代者PCIe出现了。原创 2024-03-01 19:28:37 · 2067 阅读 · 0 评论 -
NVMe开发——MTBF介绍
NVM存储器的失效率是如何评估的呢?阿伦尼乌斯公式如何得来的?半导体加速因子又是如何计算的?MTFS计算公式又是如何推导出来的?原创 2024-02-26 18:12:58 · 2049 阅读 · 0 评论 -
ext4文件系统解析
写文件操作时,除了更新Data区处,还会相应更新GDT、Inode Bitmap、Block Bitmap、目录区、Inode Table区。● 针对小于480MB的文件,GDT、目录区、Inode Bitmap,更新较少。Block Bitmap会不停记录使用了的Block,更新较多,Inode Table会不停记录已经使用了的Block数,也更新较多。● 针对超过480MB的文件,尤其是更大的文件,其会启用extent子节点表。原创 2024-02-01 17:33:40 · 5589 阅读 · 0 评论 -
NTFS文件系统解析
MFT表项记录着文件的相关属性,有常驻属性(比较小),有非常驻属性(数据较大,此属性只记录真实数据的索引)。Bitmap和LogFile一般都超过1K,都是记录在MFT的非常驻DATA属性中。MFT表项由MFT_HEADER+多个属性项构成。NTFS文件写操作过程中,最常修改的文件系统内容分别为:MFT、Bitmap、LogFile,其次是DBR区的一些其他元文件如MFTMirror和MFTMirror和MFTMirror和AttrDef等。原创 2024-02-01 16:51:01 · 2124 阅读 · 0 评论 -
文件系统(File System)
文件系统是操作系统中用于管理存储设备上的分区和文件的方法和数据结构。随着存储设备的升级发展,与其相应的文件系统也在不停地发展。原创 2023-03-29 00:15:00 · 3931 阅读 · 0 评论 -
固态存储设备原理与通信协议
固态存储设备(Solid State Storage,SSS)是相对原有的机械硬盘而言,固态存储设备是基于Flash介质的存储设备,其不需要任何机械部分。固态存储设备依据不同的用途,会有不同的表现形式。例如用于便携存储的SD/TF卡,其有专门的SD传输协议以及相应的物理接口,如下图:用于便携的即插即用的还有U盘,其是基于USB传输协议,其接口有很多形式,有如下图常用的Type-A接口,也有Type-C接口的,还有MiniUSB接口的。固态存储器还有用于嵌入式设备的,如eMMC和UFS。原创 2023-03-28 13:34:02 · 2899 阅读 · 1 评论 -
固态存储设备固件升级方案
随着数字化时代的发展,数字数据的量越来越大,相应的数据存储的需求也越来越大,存储设备产业也是蓬勃发展。存储设备产业中,发展最为迅猛的则是固态存储(Solid State Storage,SSS)。数字化时代,海量的数据,需要海量的存储设备。可以说,固态存储设备是数字化时代最重要的基础设施。为了解决发现的Bug,安全漏洞,或者为了提升性能,固态存储设备也有升级其固件的需求。原创 2023-03-10 21:03:55 · 4067 阅读 · 0 评论 -
逻辑扇区和物理扇区
磁盘(disk)是指利用磁记录技术存储数据的存储器。磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。如下图,磁盘是由圆形盘片再加上机械臂磁头构成。...原创 2022-08-16 13:58:46 · 3496 阅读 · 2 评论 -
Linux开发之C++存储设备通信
1. 简介早期的存储设备是SCSI接口,与计算通信也是基于SCSI协议。后来USB接口存储设备、SATA接口、PCIe接口的存储设备,也都是兼容SCSI协议的。所以利用SCSI传输协议可以与所有的存储设备通信。2. 开源软件● sg_raw,可以设置任何SCSI命令。// 写,从文件data.bin读取数据写入设备(SG1581)sg_raw -s 1k -i data.bin /dev/sde a2 00 00 00 00 00 00 02// 读sg_raw -r 1k /dev/dse原创 2020-11-27 19:20:52 · 1853 阅读 · 0 评论 -
SSD Trim介绍
1. 机械硬盘机械硬盘(HDD)主要是通过机械装置来控制磁头在硬盘上对磁性物质进行磁化来进行写读操作的装置,因此机械硬盘可以直接覆盖写,所以不需要特别的擦除操作。操作系统(包括磁盘驱动及文件系统)对机械硬盘的此特性进行了专门优化。当用户删除硬盘上的文件时,操作系统并没有告诉硬盘删除操作,操作系统只是将文件系统的数据映射表进行相应的标记(如FAT表中标记FAT表项为空),并不是真正是删除文件数据。这样做,可以提高操作效率。下次有新文件写入时,操作系统会通过文件系统表项中空白项对应数据区的位置,直接进行覆盖原创 2020-06-19 15:45:19 · 2563 阅读 · 0 评论 -
FatFS使用介绍及示例
1. 简介FatFS是一个适用于小型嵌入式系统的通用的FAT/exFAT文件系统模块。FatFS是使用ANSI C(C89)进行编写的,并且分出了磁盘I/O层,因此它是独立于平台的。不仅仅可以用于各种嵌入式平台,同样台用于Linux、android、MacOS甚至windows平台。主要代码文件:ff.h和ff.c是文件系统相关的代码。diskio.h和diskio.c是磁盘I/O操作接口代码。ffconf.h是文件系统版本配置代码,通过配置来开启关闭功能,可以根据需要提供更小的代码空间占用。原创 2020-05-26 20:48:28 · 7691 阅读 · 0 评论 -
关于ARM Cortex-M0分散加载文件
1. 概念分散加载文件是MDK用来将生成的可执行文件内存分散在ARM存储器上不同位置,达到充分利用存储器的功能。分散加载文件有以下两种用法:1.1. 通用用法通常情况下,如果不需要分散加载文件,或者是简单的分散加载,都可以在Keil的Linker中色选Use Memory Layout from Target Dialog,然后直接在Target界面进行配置。片内ROM可以设置两段代码。1.2. 复杂用法有时候需要更详细的分散加载文件,如将指定文件存放在指定存储位置上。此时就需要使用分散加载文件原创 2020-05-25 18:28:28 · 1546 阅读 · 0 评论 -
遍历Windows USB设备树的几种方法
遍历Windows设备树的几种方法1. 设备信息1.1. 设备实例ID1.2. 设备树2. 使用CM系列函数枚举所有设备2.1. 常用的函数2.2. 示例3. 使用SetupAPI枚举所有设备3.1. 常用的函数3.2. 示例4. 使用DeviceIOControl枚举所有设备4.1. 枚举基本流程4.2. 示例5. 几种方式的关系5.1. SetupAPI与CM5.2. DeviceIoCont......原创 2019-12-28 21:07:12 · 9806 阅读 · 4 评论 -
USB存储设备的5种打开方式以及其关系
1. USB存储设备的标识USB存储设备插入电脑之后,系统会给设备分配物理驱动器号、设备路径、卷路径。1.1. 物理驱动器号StringMeaning\\.\PhysicalDrive0Opens the first physical drive.\\.\PhysicalDrive1Opens the third physical drive.1.2. 设...原创 2019-11-27 15:17:04 · 5519 阅读 · 0 评论 -
Windows下两种方法弹出U盘
1. 通过设置IOCTL_STORAGE_EJECT_MEDIA通过CreateFile打开指定盘符的U盘获取设备句柄hDevice通过DeviceIoControl(hDevice,FSCTL_DISMOUNT_VOLUME…)强制关闭其他进程对设备的占用通过DeviceIoControl(hDevice,FSCTL_LOCK_VOLUME…)对设备进行加锁,防止其他进程干扰通过Dev...原创 2019-11-13 21:38:07 · 7541 阅读 · 1 评论 -
C++获取SMART信息
1. SMART信息介绍S.M.A.R.T. 全称是“Self-Monitoring,Analysis and Reporting Technology”,中文意思是“自我监测分析与报告技术”,它可以对硬盘的温度、内部电路、盘片表面介质材料等进行监测,力求及时分析出硬盘可能发出的问题,并发出警告,从而保护数据不受损失。SMART在96年已经成为硬盘存储行业的一个技术标准,主流硬盘企业均支持此技术...原创 2019-05-10 21:21:15 · 8026 阅读 · 2 评论