linux指令查flash坏块有多少

linux指令查flash坏块有多少,第1张

首先调用erase,将NAND全部擦除一遍,然后执行如下检测 *** 作,

如果页大于512字节,

badblockpos = 0

badblockbytes = 2

如果页小于512字节,

badblockpos = 5

badblockbytes = 1

读取每个block的前两页OOB区域的第badblockpos开始的后badblockbytes字节是否为0xff,

如果是,那么说明该block是好的,否则该block是坏块[gliethttp_20080523]!

UINT_T create_bbt(FlashBootType_T fbt)

{

UINT_T Retval

P_FlashProperties_T pFlashP = GetFlashProperties(fbt)

UINT_T BlkSize,BlkNum

UINT_T flash_addr

#define page_size (2048)

#define page_spare_size (64)

#define block_size (64*page_size)

#define tmp_buffer_addr (0x80200000 - page_size - page_spare_size)

#define tmp_spare_buffer_addr (tmp_buffer_addr + page_size)

int i,j

char *bbpos

bbpos = (char*)(tmp_spare_buffer_addr + 0)

BlkSize = pFlashP->BlockSize

BlkNum = pFlashP->NumBlocks

for(i = 0i <BlkNumi++)

{

flash_addr = i * BlkSize

for(j = 0j <2j++)

{

Retval = xdfc_read((UINT_T *)tmp_buffer_addr, flash_addr + j*page_size, page_size, (UINT_T *)tmp_spare_buffer_addr, GetNANDProperties())

if(Retval)

{

goto __create_bbt_mark

}

if(bbpos[0] != 0xff)goto __create_bbt_mark

if(bbpos[1] != 0xff)goto __create_bbt_mark

}

continue

__create_bbt_mark:

RelocateBlock( i, &GetFMProperties()->BBT, fbt )

}

}

1.在插入U盘或硬盘之前,在命令行窗口运行:fdisk -l 命令,系统将显示目前所能识别到的硬件存储设备 内容如: sda sda1 sda2 sdb sdb1 sdb2 等信息,其中,sda与sdb表示目前系统有两个硬盘,后面带有数字表示各个硬盘下的各区目录 硬盘或存储设备一般都是以sd开头. 2.插入U盘或硬盘,再次运行fdisk -l 命令,系统将再次显示目前所能识别到的硬件存储设备,比较两次输出的不各,将发现第二次运行时会增加一些内容, 系统将在原来的基础上增加显示:sdc,等内容,表示新插入的U盘或移动硬盘是挂靠在系统的sdc下. 3.运行mount,如: #mkdir /mnt/usb #mount /dev/sdc /mnt/usb 4.运行完毕,可以直接在/mnt/usb目录下对U盘或移动硬盘的数据进行访问或 *** 作 5.想断开U盘或移动硬盘之前,运行umount命令,保证数据不会造成丢失,命令如下: #umount /dev/sdc


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7240232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存