探究:U盘主控是否有磨损平衡呢?

/ 1评 / 3

都说SSD有磨损平衡,那U盘呢?最小操作单位是sector,首先0扇区是禁区,改了文件系统就挂了,保证U盘没重要文件,改最后一个Block可能是最安全的了.那么怎么确定最后一个Block呢.用MSC的函数啊.所以我就这么写了.

	USBH_MSC_GetLUNInfo(&hUsbHostFS,0,&info);
	for(;;){
		pBuf[0] = 0xAA;
		USBH_MSC_Write(&hUsbHostFS,0,info.capacity.block_nbr,pBuf,1);
		USBH_MSC_Read(&hUsbHostFS,0,info.capacity.block_nbr,pBuf,1);
		if(pBuf[0] != 0xAA){
			break;
		}
		pBuf[0] = 0x55;
		USBH_MSC_Write(&hUsbHostFS,0,info.capacity.block_nbr,pBuf,1);
		USBH_MSC_Read(&hUsbHostFS,0,info.capacity.block_nbr,pBuf,1);
		if(pBuf[0] != 0x55){
			break;
		}
		cycle++;
	}

如果不存在磨损平衡,那么假设这个NAND非常长寿,也应该不会过100K的(100K是一般的外置NOR典型寿命.).而写一个Sector是非常快的.一瞬间就10000(10K)多次了.

大概经过大半分钟,已经超过10K次了,而数据读出验证依然没问题,所以,U盘也是有磨损平衡的,不然我指定这个sector的这个byte,早把他写死掉了.

  1. 茶几说道:

    大哥测试的u盘主控是啥型号?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注