当前位置:文档之家› DM368 NAND 启动

DM368 NAND 启动

DM368 NAND 启动
DM368 NAND 启动

芯片上电后是如何启动实现应用功能的?这是许多工程师在看到处理器运行的时候,通常都会问的一个问题。下面我们就以德州仪器的多媒体处理芯片TMS320DM368为例,介绍它的NAND Flash启动原理以及实现。

一.NAND Flash启动原理

德州仪器的多媒体处理芯片TMS320DM368可以实现1080P30 h264的编码,已经广泛的使用在了网络摄像机的应用中。DM368可以支持NOR Flash, NAND Flash, UART, SD Card启动等多种启动方式。对于NAND启动,DM365支持的特性如下:

1. 不支持一次性全部固件下载启动。相反的,需要使用从NAND flash把第二级启动代码(UBL)

复制到ARM的内存(AIM),将控制转交给用户定义的UBL。

2. 支持最大4KB页大小的NAND。

3. 支持特殊数字标志的错误检测,在加载UBL的时候会尝试最多24次。例如在NAND的第1个

block没有找到特殊数字标志,会到下一个block继续查找,一直到查找到第24个block。

4. 支持30KB大小的UBL(DM365有32KB的内存,其中2KB用作了RBL的堆栈,剩下的空间可

以放UBL)

5. 用户可以选择在RBL执行的时候是否需要支持DMA,I-cache(例如,加载UBL的时候)

6. 使用并且需要4位硬件ECC(支持每512字节需要ECC位数小于或等于4位的NAND Flash)。

7. 支持需要片选信号在Tr读时间为低电平的NAND Flash。

在网络网络摄像机的应用中为了节约成本,有一些用户使用了NAND Flash启动方式。图1 就是从上电到Linux启动的一个概要的流程图。首先RBL(ROM boot loader)从NAND上读取UBL(user boot loader)并且复制到ARM的内存里面。UBL运行在ARM的内存里,初始化系统,例如初始化DDR。然后UBL从NAND Flash里面读取U-Boot的内容并且复制到DDR里运行。DDR里面运行的U-Boot又从NAND Flash里面读取Linux内核代码,并且复制到DDR上,然后启动内核。这样DM365的系统就从上电到完成Linux内核启动,然后就可以运行相应的应用程序了。

图1 NAND Flash启动流程

下面我们会一步一步的介绍从上电到Linux启动是如何实现的。

首先我们需要提到的一个概念是RBL,也就是ROM Boot Loader (ROM启动代码)。在DM368芯片上有一块ROM的区域(地址从0x00008000到0x0000 BFFF),这块区域就是存放RBL代码的地方。ROM上的代码是在芯片出厂前就烧写好的,用户是不能修改的。在DM368上,除了AEMIF (Nor Flash)启动,其他的启动方式都需要运行RBL。

无论是上电复位,热复位,还是看门狗复位,在复位信号由低到高的时候,DM368芯片会检测BTSEL[2:0]引脚(启动选择引脚)。只要检测到电平不是001,也就是不是AEMIF (NOR Flash)启动,ARM程序就会从ARM的ROM的地址0x00008000地址开始执行。

RBL首先会读取BOOTCFG寄存器里面的BTSEL信息,如果发现BTSEL的状态是000,就会得知配置的是NAND Flash启动,NAND启动模式开始执行。注意:为了保证NAND启动正常运行,需要保证在复位的时候DEEPSLEEPZ/GIO0引脚拉高。在确认启动是NAND后,首先RBL会初始化最高2KB的内存为堆栈并且关闭所以中断。然后RBL会读取NAND的ID信息,然后在RBL的代码里面的NAND ID 列表,从而得知更详细的NAND Flash的信息,例如页(page)大小等,对EMIF做好相应的配置。DM368支持启动的NAND的ID信息可以在参考文档1(ARM子系统用户手册)里面找到。硬件选型时,请务必选择在NAND ID列表里面支持的NAND芯片。

接下来,RBL会在NAND Flash的第1块的第0个页开始查找UBL的描述符。如果没有找一个合法的UBL的特殊数字标志,RBL会继续到下一个块的第0个页查找描述符,最多第24个块。RBL会到多个块里面查找描述符是根据NAND Flash本身容易与坏块的特点而设计的。24块应该足以避免NAND Flash 坏块的影响。

如RBL在某块里面找到了合法的UBL描述符,这个块号(block number)就会写到ARM内存最后的32位(0x7FFC~0x8000)用于调试时候使用,然后UBL描述符的具体内容将被读取并且处理。UBL

描述符告诉RBL关于下载和将控制权交给UBL所需要的信息,具体见表1.

第0页地址32位描述

0 0xA1AC Edxx 特殊数字标志

4 UBL入口地址用户启动代码的入口地址(绝对地址)

8 UBL使用的页数页数(用户启动diamond的大小)

12 UBL开始的块号开始存放用户启动代码的块号(block number)

16 UBL开始的页数开始存放用户启动代码的页数

20 PLL设置-M PLL设置- 倍率(仅在特殊数字标准表示PLL使能的时候有效)

24 PLL设置-N PLL设置- 分率(仅在特殊数字标准表示PLL使能的时候有效

28 快速EMIF设置快速EMIF设置(仅在特殊数字标准表示快速EMIF启动的时候有效)

表1 NAND UBL描述符

一旦用户需要的启动设置配置好,RBL就会从0x0020第地址开始把UBL搬移到ARM内存。在从NAND读取UBL的过程中中,RBL会使用4位的硬件ECC对NAND Flash上的数据进行检错和纠错。如果因为其他原因读失败,复制会立即停止,RBL会在下个块里面继续寻找特殊数字标志。

对于UBL的描述符有几点注意事项:

1. 入口地址必须在0x0020到0x781C之间

2. 存放UBL的页必须是连续的页,可以分布在多个块内,总共大小必须小于30KB。

3. UBL的起始块号(block number)可以是和存放UBL描述符的块号一样。

4. 如果UBL的起始块号是和存放UBL描述符的块号一样,那UBL的起始页数一定不可以和UBL

描述符存放的页数一样。

但RBL根据UBL描述符里提供的UBL大小信息将UBL全部成功复制到ARM内存后,RBL会跳到UBL起始地址,这样芯片的控制权就交给了UBL,UBL开始在ARM内存里运行了。

也许你会问,既然RBL可以把NAND Flash上的内容复制到ARM内存里运行,为什么我们不直接把U-Boot复制到内存运行?原因是ARM内存太小。一般的U-Boot都是大于100KB,而DM365上可以用于启动的内存只有30KB。也许你又要问了,那为什么不把U-Boot直接复制到DDR上运行,DDR有足够大的空间?这个原因是,芯片上电后并无法知道用户在DM365的DDR2接口上接的DDR信息,RBL 也就无法初始化DDR,在RBL运行的阶段DDR是不可用的。这也是为什么UBL里面初始化DDR是它的一项重要任务。

当NAND启动失败的时候,RBL会继续尝试MMC/SD启动方式。如果你系统使用NAND启动,但NAND上的内容损坏了,如果你的板子上有SD卡接口,也可以改变启动方式,那你可以用SD卡先把系统启动起来,然后重新烧写NAND Flash上的内容。这可以作为产品失效后在客户侧的一个补救方法。

二.NAND Flash启动的软件配合实现

现在我们知道了DM368 NAND Flash启动的原理,下面我们来看看软件是如何根据并配合硬件的要求实现启动的。在DM368 IPNC的软件包里面有一个工具的目录,里面有预先编译好的烧写NAND的CCS 的可执行文件,UBL的二进制文件以及相关源码。

刚才在介绍NAND Flash启动原理的时候,我们提到了RBL需要到NAND Flash上面搜索特殊数字标志。这个特殊数字标志就是由烧写NAND的CCS的工程写到Flash上的。在

flash_utils_dm36x_1.0.0\flash_utils_dm36x\DM36x\CCS\NANDWriter\src\nandwriter.c里面的

LOCAL_writeHeaderAndData()函数就是用来写描述符的。

// Setup header to be written

headerPtr = (Uint32 *) gNandTx;

headerPtr[0] = nandBoot->magicNum; //Magic Number

headerPtr[1] = nandBoot->entryPoint; //Entry Point

headerPtr[2] = nandBoot->numPage; //Number of Pages

#if defined(IPNC_DM365) || defined(IPNC_DM368)

headerPtr[3] = blockNum+3; //Starting Block Number

headerPtr[4] = 0; //Starting Page Number - always start data in page 1 (this header goes in page 0)

对比表1,你可看到headerPtr[3]的内容是用来存放UBL代码的起始块号。这里+3的意思就是UBL 是存放在UBL描述符所放块号后面的第三块里面。headerPtr[4] = 0表示是从第0页开始存放。当然这个值用户是可以修改的。只要你烧写UBL代码的位置和描述符里面的起始块/页数一致就可以了。

在IPNC的代码里面UBL的描述符是会从NAND Flash的第1个块开始写,如果块是好的,就放在第1块的第0页。如果第1块是坏的,就会把UBL的描述符写入到下一个块的第0页。IPNC的代码里面没有将UBL描述符可能有的块号从1到24块(这是RBL搜索的范围),它只是从第1块到第3块。如果UBL描述符放在第1块,那如果第4块是好的话,UBL的代码就从第4块的第0页开始放。

#elif defined(IPNC_DM368)

// Defines which NAND blocks the RBL will search in for a UBL image

#define DEVICE_NAND_RBL_SEARCH_START_BLOCK (1)

#define DEVICE_NAND_RBL_SEARCH_END_BLOCK (3)

在nandwriter.c里面你还可以看到UBL的入口地址是固定的0x100。

gNandBoot.entryPoint = 0x0100; // This fixed entry point will work with the UBLs

要了解为什么是0x100,你就必须要看一下UBL的源码。在UBL源码的UBL.cmd文件里面,你可以看到下面的定义,将入口地址放在boot的地方,而boot的运行地址就是0x100。

-e boot //指定入口地址为boot

...

MEMORY

{

...

UBL_I_TEXT (RX) : origin = 0x00000100 length = 0x00004300

...

UBL_F_TEXT (R) : origin = 0x020000E0 length = 0x00004300

...

}

SECTIONS

{

...

.text : load = UBL_F_TEXT, run = UBL_I_TEXT, LOAD_START(FLASHTEXTStart), LOAD_SIZE(FLASHTEXTSize)

{

*(.boot)

. = align(4);

*(.text)

. = align(4);

}

....

}

在UBL的源码boot.c里面有强制把启动的最初代码放在了boot的section里面。

#if defined(__TMS470__)

...

#pragma CODE_SECTION(boot,".boot");

#endif

void boot(void)

{

...

}

这样从cmd的配置以及代码指定代码段,UBL的程序就能确保是从0x100的地址开始运行。

UBL启动U-Boot的过程,借鉴了RBL启动UBL的原理。烧写描述符也是用同样的

LOCAL_writeHeaderAndData()函数。在nandwriter.c里面,我们把U-Boot的代码叫做应用代码(APP)。// Defines which NAND blocks are valid for writing the APP data

#define DEVICE_NAND_UBL_SEARCH_START_BLOCK (8)

#define DEVICE_NAND_UBL_SEARCH_END_BLOCK (10)

下面是IPNC启动后串口最初的打印。

Valid magicnum, 0xA1ACED66, found in block 0x00000008.

DONE

Jumping to entry point at 0x81080000.

我们可以看到UBL是指第8块的地方找到了U-Boot的描述符,这个

DEVICE_NAND_UBL_SEARCH_START_BLOCK的定义是一致的。

IPNC代码支持在U-Boot里面更新UBL或者U-Boot自己。下面是烧写ubl和U-Boot在U-Boot下的命令。

烧写ubl:

nand write 0x80700000 0x080000 0x08000

烧写U-Boot:

nand write 0x80700000 0x160000 0x28000

要了解为什么NAND Flash的烧写地址是0x80000和0x160000,这还是需要了解nandwriter.c里面的烧写流程。从前面的内容我们可以得知,nandwriter.c烧写UBL是从1+3=4块开始的,而烧写U-Boot 是从8+3=11块。在IPNC上使用的NAND Flash是2K一个页,每个块128KB。所以UBL烧写的地址是128KBx4=0x80000,而烧写U-Boot的地址是128Kx11=0x160000。

所以如果在没有NAND Flash坏块的情况下,nandwriter.c会把UBL的描述符烧写在第1块第0页上,把UBL的代码烧写在第4块第0页上,把U-Boot(APP)的描述符烧写在第8块第0页上,把U-Boot 的代码烧写在第11块第0页上。这样芯片在上电确认是NAND Flash启动后,RBL在执行的时候就会找到UBL相应的描述符,把UBL加载的ARM内存里运行。而UBL又找到了U-Boot的描述符,把U-Boot 加载到DDR上运行。最后U-Boot加载uImage并启动了Linux,完成了从上电到Linux启动的整个过程。

三.结束语

每个芯片一般都有多种启动方式,各个芯片的启动方式都有所不同,但又有类似的地方。上面的介绍也可以作为学习其他芯片其他启动方式的一个参考。

最后感谢李斌在本文整理过程中的帮助!

NandFlash简介

NandFlash简介 分类:Linux2013-03-06 14:34 2945人阅读评论(0) 收藏举报 Flash Memory中文名字叫闪存,是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器。 从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论是以前的SDRAM,DDR SDRAM,还是现在的DDR2,DDR3等,都是断电后,数据就没了。 FLASH的分类:功能特性分为两种:一种是NOR型闪存,以编码应用为主,其功能多与运算相关;另一种为NAND型闪存,主要功能是存储资料,如数码相机中所用的记忆卡。 NOR FLASH和NAND FLASH NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM 一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结结,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。 NOR的读速度比NAND稍快一些。 NAND的写入速度比NOR快很多。 NAND的4ms擦除速度远比NOR的5s快。 大多数写入操作需要先进行擦除操作。 NAND的擦除单元更小,相应的擦除电路更少 在NOR Flash中, 所有的存储区域都保证是完好的, 同时也拥有相同的耐久性。在硬模中专门制成了一个相当容量的扩展存储单元—他们被用来修补存储阵列中那些坏的部分,这也是为了保证生产出来的产品全部拥有完好的存储区域。为了增加产量和降低生产成本, NAND Flash 器件中存在一些随机bad block 。为了防止数据存储到这些坏的单元中, bad block 在IC烧录前必须先识别。在一些出版物中, 有人称bad block 为“bad block”, 也有人称bad block 为“invalid block”。其实他们拥有相同的含义, 指相同的东西。 从实际的应用上来说, NOR Flash与NAND Flash主要的区别在于接口。NOR Flash拥有完整的存取-映射访问接口, 它拥有专门的地址线和数据线, 类似与EPROM。然而在NAND Flash中没有专门的地址线。它发送指令,地址和数据都通过8/16位宽的总线(I/O接口)到内部的寄存器。 SLC/MLC基本原理

启动过程错误提示信息解决办法

启动过程错误提示信息解决办法 制作了根文件系统,在启动之后停在这里了: NET: Registered protocol family 1 NET: Registered protocol family 17 VFS: Mounted root (cramfs filesystem) readonly. Freeing init memory: 116K Failed to execute /linuxrc. Attempting defaults... Kernel panic - not syncing: No init found. Try passing init= option to kernel. 我内核boot option里面的命令行设置为:noitinrd root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200 init=/linurc mem=64M 这类问题很常见,先总体介绍一下解决思路。 能出现让人激动的的控制台,那么系统移植已经接近完成;但是不少人在最后一步出现问题。 要点如下: 1. 在正确的位置烧写正确格式的文件系统映象: 2. 内核支持这种文件系统格式 3. 文件系统的内容要完备 上面说得简单,一个个介绍。 1. 在正确的位置烧写正确的文件系统映象: (a). 正确的位置 嵌入式开发中,常通过bootloader烧写文件系统映象,假设写在flash的地址A处。 内核启动时,显然要从地址A处读取文件系统,内核是怎么知道的呢?通过命令行参数,比如“root=/dev/mtdblock2 ”。/dev/mtdblock2 又是怎么和地址A 对应上的呢?内核将flash划分为 几个分区,这是在代码中固定的。/dev/mtdblock2是第3个分区,它的开始地址必须是A。 在内核启动时,可以看到这些分区的开始地址、结束地址,比如内核启动时会有类似下面的信息: Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit": 0x00000000-0x00030000 : "bootloader" 0x00050000-0x00250000 : "kernel" 0x00250000-0x03ffc000 : "root" 对于上面的内核信息,/dev/mtdblock2对应root分区,开始地址为0x00250000,使用bootloader写文件系统映象时,烧写的地址必须是0x00250000 所以,要保证3点: ① bootloader烧到地址A, ② 地址A是内核某个分区的开始地址, ③ 命令行参数“root=/dev/mtdblockXXX ”是这个分区 (b). 正确格式的文件系统映象 不同的bootloader支持的烧写的文件系统映象格式不同、使用的烧写命令也可能不同,请注意这点。

海力士NANDFlash选型

Q1’2011 DATABOOK Rev 0.1

NAND Flash –SLC / MLC / TLC AND Flash N NAND Flash SLC COMPONENT Product Tech Density Block Size Stack Vcc/Org Package Availability Remark HY27US08281A 90nm 128Mb 16KB Mono 3.3v/X8TSOP/USOP Now HY27US08561A 90nm 256Mb 16KB Mono 3.3v/X8TSOP/USOP/FBGA Now HY27US08121B 70nm 512Mb 16KB Mono 3.3v/X8TSOP/USOP/FBGA Now H27U518S2C 57nm 512Mb 16KB Mono 3.3v/X8TSOP Now HY27US081G1M 70nm 1Gb 16KB Mono 3.3v/X8USOP Now HY27UF081G2A 70nm 1Gb 128KB Mono 3.3v/X8TSOP/USOP/FBGA Now HY27US081G2A 70nm 1Gb 128KB Mono 1.8v/X8FBGA Now H27U1G8F2B 48nm 1Gb 128KB Mono 3.3v/X8TSOP,FBGA Now H27U1G8F2B 48nm 1Gb 128KB Mono 1.8v/X8FBGA Now H27U1G8F2CTR 32nm 1Gb 128KB Mono 1.8v/X8TSOP Q4 '11H27U1G8F2CFR 32nm 1Gb 128KB Mono 1.8v/X8FBGA Q4 '11HY27UF082G2B 57nm 2Gb 128KB Mono 3.3v/X8TSOP,FBGA, LGA Now H27U2G8F2C 41nm 2Gb 128KB Mono 3.3v/X8TSOP Now HY27UF084G2B 57nm 4Gb 128KB Mono 3.3v/X8TSOP Now H27U4G8F2D 41nm 4Gb 128KB Mono 3.3v/X8TSOP Now HY27UG088G5(D)B 57nm 8Gb 128KB DDP 3.3v/X8TSOP Now 2CE/Dual CH.H27U8G8G5D 41nm 8Gb 128KB Mono 3.3v/X8TSOP Now H27QBG8GDAIR-BCB 32nm 32Gb 512KB DDP 1.8v/x8VFBGA Now 2CE/Dual CH.H27QCG8HEAIR-BCB 32nm 64Gb 512KB QDP 1.8v/x8VFBGA Now 4CE/Dual CH.H27QDG8JEAJR-BCB 32nm 128Gb 512KB ODP 1.8v/x8 JFBGA Feb. '11 4CE/Dual CH.NAND Flash MLC COMPONENT Product Tech Density Block Size Stack Vcc/Org Package Availability Remark H27U8G8T2B 48nm 8Gb 512KB Mono 3.3v/X8TSOP Now H27UAG8T2M 48nm 16Gb 512KB(4KB Page)Mono 3.3v/X8TSOP/VLGA Now H27UAG8T2A 41nm 16Gb 512KB(4KB Page)Mono 3.3v/X8TSOP Now H27UBG8U5A 41nm 32Gb 512KB(4KB Page)DDP 3.3v/X8TSOP Now H27UBG8T2M 41nm 32Gb 512KB(4KB Page)Mono 3.3v/X8VLGA Now H27UBG8T2A 32nm 32Gb 2MB(8KB Page)SDP 3.3v/x8TSOP / VLGA Now H27UCG8VFA 41nm 64Gb 512KB(4KB Page)QDP 3.3v/X8TSOP Now H27UCG8UDM 41nm 64Gb 512KB(4KB Page)DDP 3.3v/X8VLGA Now Dual CH.H27UCG8U5(D)A 32nm 64Gb 2MB(8KB Page)DDP 3.3v/x8TSOP / VLGA Now Dual CH. LGA H27UCG8T2M 26nm 64Gb 2MB(8KB Page)SDP 3.3v/x8VLGA Now H27UDG8VEM 41nm 128Gb 512KB(4KB Page)QDP 3.3v/X8VLGA Now 4CE,Dual CH.H27UDG8V5(E)A 32nm 128Gb 2MB(8KB Page)QDP 3.3v/x8TSOP / VLGA Now 4CE,Dual CH.H27UEG8YEA 32nm 256Gb 2MB(8KB Page)ODP 3.3v/x8VLGA Now 4CE,Dual CH.H27UAG8T2B 32nm 16Gb 2MB(8KB Page)SDP 3.3v/x8TSOP Now H27UBG8T2B 26nm 32Gb 2MB(8KB Page)SDP 3.3v/x8TSOP Now Legacy H27UCG8U2B 26nm 64Gb 2MB(8KB Page)DDP 3.3v/x8TSOP Jan. '11Legacy H27UDG8V2B 26nm 128Gb 2MB(8KB Page)QDP 3.3v/x8FBGA-100Feb. '11HS(ONFi2.2)H27UEG8Y2B 26nm 256Gb 2MB(8KB Page) ODP 3.3v/x8 FBGA-100 Mar. '11 HS(ONFi2.2)NAND Flash TLC COMPONENT Product Tech Density Block Size Stack Vcc/Org Package Availability Remark H27UAG8M2M 41nm 16Gb 768KB (4KB page)SDP 3.3V/x8VLGA Now H27UBG8M2A 32nm 32Gb 1MB (4KB page) SDP 3.3V/x8 VLGA Now

NandFlash的基础知识

NAND FLASH的基础知识 NAND Flash 的数据是以bit 的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。这些cell 以8 个或者16 个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device 的位宽。这些Line 会再组成Page,(Nand Flash 有多种结构,我使用的Nand Flash 是K9F1208,下面内容针对三星的K9F1208U0M),每页528Byte,每32 个page 形成一个Block, Sizeof(block)=16kByte = 32 page = 32 * 528 byte Numberof(block)=64Mbyte/16kbyte=4096 1page=528byte=512byte(Main Area)+16byte(Spare Area) Nand flash 以页为单位读写数据,而以块为单位擦除数据。按照这样的组织方式可以形成所谓的三类地址: --Block Address -- Page Address --Column Address 对于NAND Flash 来讲,地址和命令只能在I/O[7:0]上传递,数据宽度是8 位。 512byte需要9bit来表示,对于528byte系列的NAND,这512byte被分成1st half和2nd half,各自的访问由地址指针命令来选择,A[7:0]就是所谓的column address。32 个page 需要5bit 来表示,占用A[13:9],即该page 在块内的相对地址。Block的地址是由A14 以上的bit 来表示,例如512Mbit的NAND,共4096block,因此,需要12 个bit 来表示,即A[25:14],如果是1Gbit 的528byte/page的NAND Flash,则block address用A[26:24]表示。而page address就是blcok address|page address in block NAND Flash 的地址表示为:Block Address|Page Address in block|halfpage pointer|Column Address 地址传送顺序是Column Address,Page Address,Block Address。由于地址只能在I/O[7:0]上传递,因此,必须采用移位的方式进行。例如,对于512Mbit x8 的NAND flash,地址范围是0~0x3FF_FFFF,只要是这个范围内的数值表示的地址都是有效的。以NAND_ADDR 为例: ◆第1 步是传递column address,就是NAND_ADDR[7:0],不需移位即可传递到I/O[7:0] 上,而halfpage pointer 即bit8 是由操作指令决定的,即指令决定在哪个halfpage 上进行读写。而真正的bit8 的值是don't care 的。 ◆第2 步就是将NAND_ADDR 右移9 位,将NAND_ADDR[16:9]传到I/O[7:0]上 ◆第3 步将NAND_ADDR[24:17]放到I/O 上 ◆第4 步需要将NAND_ADDR[25]放到I/O 上因此,整个地址传递过程需要4 步才能 完成,即4-step addressing。 如果NAND Flash 的容量是256Mbit 以下,那么,block adress 最高位只到bit24,因此寻址只需要3 步。下面,就x16 的NAND flash 器件稍微进行一下说明。由于一个page 的main area 的容量为256word,仍相当于512byte。但是,这个时候没有所谓的1st halfpage 和2nd halfpage 之分了,所以,bit8就变得没有意义了,也就是这个时候bit8 完全不用管,地址传递仍然和x8 器件相同。除了,这一点之外,x16 的NAND使用方法和x8 的使用方法完全相同。 正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同,典型的分配是这样的

10种常见的电脑启动故障及其解决方法

10种常见的电脑启动故障及其解决方法 计算机开机自检时出现问题后会出现各种各样的英文短句,短句中包含了非常重要的信息,读懂这些信息可以自己解决一些小问题,可是这些英文难倒了一部分朋友,下面是一些常见的BIOS短句的解释,大家可以参考一下。 1、CMOS battery failed 中文:CMOS电池失效。 解释:这说明CMOS电池已经快没电了,只要更换新的电池即可。 2、CMOS check sum error-Defaults loaded 中文:CMOS 执行全部检查时发现错误,要载入系统预设值。 解释:一般来说出现这句话都是说电池快没电了,可以先换个电池试试,如果问题还是没有解决,那么说明CMOS RAM可能有问题,如果没过一年就到经销商处换一块主板,过了一年就让经销商送回生产厂家修一下吧! 3、Press ESC to skip memory test 中文:正在进行内存检查,可按ESC键跳过。 解释:这是因为在CMOS内没有设定跳过存储器的第二、三、四次测试,开机就会执行四次内存测试,当然你也可以按 ESC 键结束内存检查,不过每次都要这样太麻烦了,你可以进入COMS设置后选择BIOS FEATURS SETUP,将其中的Quick Power On Self Test设为 Enabled,储存后重新启动即可。

4、Keyboard error or no keyboard present 中文:键盘错误或者未接键盘。 解释:检查一下键盘的连线是否松动或者损坏。 5、Hard disk install failure 中文:硬盘安装失败。 解释:这是因为硬盘的电源线或数据线可能未接好或者硬盘跳线设置不当。你可以检查一下硬盘的各根连线是否插好,看看同一根数据线上的两个硬盘的跳线的设置是否一样,如果一样,只要将两个硬盘的跳线设置的不一样即可(一个设为Master,另一个设为Slave)。 6、Secondary slave hard fail 中文:检测从盘失败。 解释:可能是CMOS设置不当,比如说没有从盘但在CMOS里设为有从盘,那么就会出现错误,这时可以进入COMS设置选择 IDE HDD AUTO DETECTION进行硬盘自动侦测。也可能是硬盘的电源线、数据线可能未接好或者硬盘跳线设置不当,解决方法参照第5条。 7、Floppy Disk(s) fail 或 Floppy Disk(s) fail(80) 或Floppy Disk(s) fail(40) 中文:无法驱动软盘驱动器。

Nand Flash存储结构及控制方法

Nand Flash存储结构及控制方法(K9F1G08) 2011-02-26 15:05:59| 分类:默认分类 | 标签: mini2440nandflash k9f1g08 |字号订阅 一、NAND Flash介绍和NAND Flash控制器的使用 NAND Flash在嵌入式系统中的作用,相当于PC上的硬盘 常见的Flash有NOR Flash和NAND Flash,NOR Flash上进行读取的效率非常高,但是擦除和写操作的效率很低,容量一般比较小;NAND Flash进行擦除和写操作的效率更高,并且容量更大。一般NOR Flash用于存储程序,NAND Flash 用于存储数据。 1)NAND Flash的物理结构 笔者用的开发板上NAND Flash型号是K9F1G08,大小为128M,下图为它的封装和外部引脚 I/O0-I/O7 数据输入/输出 CLE 命令锁存使能 ALE 地址锁存使能 CE 芯片使能 RE 读使能 WE 写使能 WP 写保护 R/B 就绪/忙输出信号 Vcc 电源 Vss 地 N.C 不接 K9F1G08功能结构图如下

K9F1G08内部结构有下面一些功能部件 ①X-Buffers Latches & Decoders:用于行地址 ②Y-Buffers Latches & Decoders:用于列地址 ③Command Register:用于命令字 ④Control Logic & High Voltage Generator:控制逻辑及产生Flash所需高压 ⑤Nand Flash Array:存储部件 ⑥Data Register & S/A:数据寄存器,读、写页时,数据存放此寄存器 ⑦Y-Gating ⑧I/O Buffers & Latches ⑨Global Buffers ⑩Output Driver

NANDFLASH 常见问题汇总

NAND flash常见问题汇总 掉程序(这里专指使用NAND flash的主板掉程序),这是一个让工程师浑身发毛的问题,特别是用着用着程序就没有了,往往这个时候很多工程师都无法下手,问题出现的时候你可能根本不在旁边,无法看到问题现象,而且通过测量信号也很难发现问题的原因,这个时候很多工程师可能会采用更换主板器件的方式,用排除法来定位问题,基本上换一个NAND flash就可以解决问题了。这个时候很多工程师可能就会表示NAND flash有问题,需要换厂商,换品牌。但其实还可以更加深入的去了解问题的原因,这里我总结一下我遇到过得NAND flash掉程序的情况及原因。 1.电源电压不稳导致的NAND flash程序错误 很多时候,产品在客户手中出现了问题,工程师把产品拿回来,重新烧录程序产品可以上电启动,反复测试并不会出现掉程序的情况。如果这种产品是带有电池的产品,就可以考虑一下是否在客户实际使用中是用电池的情况,当电池的电量比较低,或者在极端情况下,程序对于电池电量的检测阈值较低,这个时候主控就有可能刚刚可以启动,但是很快电量不够,NAND flash内的程序乱掉,从而无法正常启动。 解决方法可以在程序中加入或者提高电池电量检测的阈值,保证所有芯片在这个阈值上均可以正常工作。 2.DRAM工作状态不正常导致的NAND flash程序错误 主控, DRAM和NAND flash基本构成了一个产品的最小系统。当系统中的任何一环出现问题,整个系统就可能出现问题。但是当DRAM出现问题时,有可能反映出来的是NAND flash 出错,掉程序或者查明NAND flash坏块过多。对于这种情况,处理起来就会复杂一些。如果直接重新烧录程序,系统又能正常工作,则说明之前存储在NAND flash中的程序确实乱了,但是NAND flash的功能正常,特别是SLC规格的1bit ECC 的NAND flash,出错概率非常小。因为对于NAND flash来说,只有当写数据或者擦除数据时,数据可能产生坏块,当程序只是读取的状态时,由于不涉及电荷的改变,所以NAND flash一般不会出现问题。但从程序的调试端口读到NAND flash坏块很多时,看是否有更深入的调试工具,例如JTAG等调试工具,可以深入调试NAND flash的情况。有些时候,因为一些程序误操作,导致将原本good block的标志位标记成了bad block。用过JTAG调试工具可以修改标志位,并且重新打标,重新烧录一遍程序,有可能主板又能重新启动了。 3.坏块管理未做好 因为NAND flash都面临着可能出现坏块的问题,所以必须应该对于坏块进行管理,在规格书中可以看到,坏块产生的三种情况,在编程的时候,在擦出的时候,在读取的时候。对于这几种情况下,程序应该怎么操作,规格书中也有流程图来说明,在读取和擦除中,如果出现失败情况,就需要重新坏一个块进行目标块的转移,并且对于当前块进行标识,在坏块表中进行更新。通过对于坏块表的维护,达到程序避免写入坏块中的情况。在读取程序时,也需要对于ECC进行校验,保证读取的程度是真实可靠的。但是很多工程师可能由于对于坏块管理做的不够仔细,导致产品在实际使用中,会出现掉程序的问题。工程师也应该从程序方面着手,分析一下程序对于坏块部分管理是否完善。 从上面三种类型只是部分说明了关于掉程序这个问题的一些原因。特别是对于1bit ECC 的SLC NAND flash大部分适用,工程师们可以进行参考。

电脑启动错误提示信息解释大全

电脑启动错误提示信息解释大全 .CMOS battery failed CMOS电池失效。一般出现这种情况就是说明给主板CMOS供电的电池已经快没电了,需要朋友们及时更换主板电池。 CMOS check sum error-Defaults loaded CMOS执行全部检查时发现错误,要载入系统预设值。一般来说出现这句话有两种解释:一种是说主板CMOS供电电池快要没电了,朋友们可以先换个电池试试看;第二种解释是如果更换电池后问题还是没有解决,那么就说明CMOS RAM可能有问题了,如果主板没过一年的话就可以到经销商处换一块主板,要是过了一年就让经销商送回生产厂家修一下吧! Floppy Disk(s) fail 或 Floppy Disk(s) fail(80) 或Floppy Disk(s) fail(40) 无法驱动软盘驱动器。系统提示找不到软驱,首先要看看软驱的电源线和数据线有没

有松动或者是接反,最好是是把软驱放到另外一台机子上试一试,如果这些都不行,那么只好再买一个了,好在目前市场中的软驱还不算贵。 Hard disk install failure 硬盘安装失败。这是因为硬盘的电源线或数据线可能未接好或者硬盘跳线设置不当引 起的。朋友们可以检查一下硬盘的各根连线是否插好,看看同一根数据线上的两个硬盘的跳线设置是否一样。如果一样,只要将两个硬盘的跳线设置不一样即可(一个设为Master,另一个设为Slave)。 Hard disk(s) diagnosis fail 执行硬盘诊断时发生错误。出现这个问题一般就是硬盘内部本身出现硬件故障了,你可以把硬盘放到另一台机子上试一试,如果问题还是没有解决,只能去修一下了。如果硬盘还在包换期内的话,最好还是赶快去换一块! Hardware Monitor found an error,enter POWER MANAGEMENT SETUP for details,

nandflash时序

三星系列的NAND FLASH芯片容量从8MB到256MB(最近听说有1G容量的了),对于需要大容量数据存储的嵌入式系统是一个很好的选择,尤其是其接近1MB/元的高性价比,更是普通nor flash 无法比拟的。本文以K9F2808U0C为例,采用AVR芯片连接,进行了初步的读写试验,完成了芯片的ID读出功能。 电路连接如下图: 左边是所使用的AVR芯片ATmega16L的局部电路,右边是K9F2808芯片的连接图,数据/地址总线使用ATmega16的PORTB端口连接,其它全部所需信号线使用IO连接,组成了IO模拟方式。 K9F2808芯片的全部命令字如下: 其中,Read1读取的是普通数据存储区域的数据,Read2读取的是每页存储器附加的16Bytes区域的数据;Page Program可以编程一页最大528Bytes的数据,Block Erase擦除指定页面数据,Read Status可以读取芯片状态。 芯片的整个读写时序可以分解为4个基本步骤,即1、命令写入,2、数据写入,3、数据读出,4、地址写入。 1、命令写入时序如下:

对应函数为: void WriteCmd(unsigned char cmd) { nandPortD = 0xFF; ClsLine(nandSPortO,nandALE); ClsLine(nandSPortO,nandnCE); SetLine(nandSPortO,nandCLE); ClsLine(nandSPortO,nandnWE); nandPortO = cmd; SetLine(nandSPortO,nandnWE); ClsLine(nandSPortO,nandCLE); SetLine(nandSPortO,nandALE); } 2、数据写入时序如下: 对应函数为:

电脑报警声提示大全

一、Award BIOS自检响铃含义: 1短:系统正常启动。恭喜,你的机器没有任何问题。 2短:常规错误,请进入CMOS Setup,重新设置不正确的选项。 1长1短:RAM或主板出错。换一条内存试试,若还是不行,只好更换主板。 1长2短:显示器或显示卡错误。 1长3短:键盘控制器错误。检查主板。 1长9短:主板Flash RAM或EPROM错误,BIOS损坏。换块Flash RAM试试。 不断地响(长声):内存条未插紧或损坏。重插内存条,若还是不行,只有更换一条内存。不停地响:电源、显示器未和显示卡连接好。检查一下所有的插头。 重复短响:电源有问题。 无声音无显示:电源有问题。 二、AMI BIOS自检响铃含义: 1短:内存刷新失败。更换内存条。 2短:内存ECC较验错误。在CMOS Setup中将内存关于ECC校验的选项设为Disabled就可以解决, 不过最根本的解决办法还是更换一条内存。 3短:系统基本内存(第1个64kB)检查失败。换内存。 4短:系统时钟出错。 5短:中央处理器(CPU)错误。 6短:键盘控制器错误。 7短:系统实模式错误,不能切换到保护模式。 8短:显示内存错误。显示内存有问题,更换显卡试试。 9短:ROM BIOS检验和错误。 1长3短:内存错误。内存损坏,更换即可。 1长8短:显示测试错误。显示器数据线没插好或显示卡没插牢。 三、Phoenix BIOS自检响铃含义: 自检响铃自检响铃含义 1短系统启动正常 1短1短2短主板错误 1短1短4短ROM BIOS校验错误 1短2短2短DMA初始化失败 1短3短1短RAM刷新错误 1短3短3短基本内存错误 1短4短2短基本内存校验错误 1短4短4短EISA NMI口错误 3短1短1短从DMA寄存器错误 3短1短3短主中断处理寄存器错误 3短2短4短键盘控制器错误 3短4短2短显示错误 4短2短2短关机错误 4短2短4短保护模式中断错误

Nand Flash的读写操作

NandFlash的读写操作 正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同,典型的分配是这样的: 1block = 32page 1 page = 512bytes(datafield) + 16bytes(oob) 需要注意的是,对于flash的读写都是以一个page开始的,但是在读写之前必须进行flash 的擦写,而擦写则是以一个block为单位的。同时必须提醒的是,512bytes理论上被分为1st half 和2sd half,每个half各占256个字节。 我们讨论的K9F1208U0B总共有4096 个Blocks,故我们可以知道这块flash的容量为4096 *(32 *528)= 69206016 Bytes = 66 MB 但事实上每个Page上的最后16Bytes是用于存贮检验码和其他信息用的,并不能存放实际的数据,所以实际上我们可以操作的芯片容量为4096 *(32 *512) = 67108864 Bytes = 64 MB 由上图所示,1个Page总共由528 Bytes组成,这528个字节按顺序由上而下以列为单位进行排列(1列代表一个Byte。第0行为第0 Byte ,第1行为第1 Byte,以此类推,每个行又由8个位组成,每个位表示1个Byte里面的1bit)。这528Bytes按功能分为两大部分,分别是Data Field和Spare Field,其中Spare Field占528Bytes里的16Bytes,这16Bytes是用于在读写操作的时候存放校验码用的,一般不用做普通数据的存储区,除去这16Bytes,剩下的512Bytes便是我们用于存放数据用的Data Field,所以一个Page上虽然有528个Bytes,

电脑报错提示信息

电脑在启动和运行过程中,如果遇有故障均会出现相应的报错提示信息,我们可以按照出现的提示信息来解决当前遇到的故障。但是这些提示信息绝大部分都是英文提示或机器码,让人深感困惑。本文收集整理了电脑在启动、运行过程中经常出现的报错提示信息,并给出完整的解决方案,希望能对你在排除故障时有所帮助。 一、排查系统启动错误 一个完整的系统启动过程需要有系统BIOS和操作系统的紧密配合。如果某一个环节出错,都会导致系统启动失败。 1.BIOS自检提示声释义 BIOS检测报错一般情况下会发出长短不等的提示声,不同的提示声代表不同的错误信息,根据这些信息的含义,再做相应诊断就不难了。下面就以较常见的两种BIOS(Award BIOS和AMI BIOS)的为例,介绍开机自检响铃代码的具体含义: (1)Award的BIOS自检提示声释义: 1短:系统正常启动。这是我们每天都能听到的,也表明电脑没有任何问题。 2短:常规错误,请进入CMOS Setup,重新设置不正确的选项。 1长1短:RAM或主板出错。换一条内存试试,若还是不行,只好更换主板。 1长2短:显示器或显卡错误。 1长3短:键盘控制器错误。检查主板。 1长9短:主板Flash RAM或EPROM错误,BIOS损坏。换块Flash RAM试试。不停地响:电源、显示器未与显卡连接好。检查一下所有的插头。 重复短响:电源问题。 无声音无显示:电源问题。 (2)AMI的BIOS自检提示声释义: 1短:内存刷新失败。更换内存条。 2短:内存ECC校验错误。在CMOS Setup中将内存关于ECC校验的选项设为Disabled就可以解决,最根本的解决办法还是更换内存。 3短:系统基本内存(第1个64MB)检查失败。换内存。 4短:系统时钟出错。 5短:中央处理器(CPU)错误。 6短:键盘控制器错误。 7短:系统实模式错误,不能切换到保护模式。 8短:显示内存错误。显示内存有问题,更换显卡试试。 9短:ROM BIOS检验和错误。 1长3短:内存错误。内存损坏,更换即可。 1长8短:显示测试错误。显示器数据线没插好或显卡没插牢。 2.Award BIOS启动信息详解

NAND flash详解

NAND flash和NOR flash的区别详解 [导读]我们使用的智能手机除了有一个可用的空间(如苹果8G、16G等),还有一个RAM容量,很多人都 不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的这二种存储. 关键词:NOR flashNand flashFlaSh 我们使用的智能手机除了有一个可用的空间(如苹果8G、16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的。这二种存储设备我们都统称为“FLASH”,FLASH是一种存储芯片,全名叫Flash EEPROM Memory,通地过程序可以修改数据,即平时所 说的“闪存”。Flash又分为NAND flash和NOR flash二种。U盘和MP3里用的就是这种存储器。 相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。NOR Flash 的读取和我们常见的 SDRAM 的读取是一样,用户 可以直接运行装载在 NOR FLASH 里面的代码,这样可以减少 SRAM 的容量从而节约了成本。 NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取 512 个字节, 采用这种技术的 Flash 比较廉价。用户不能直接运行 NAND Flash 上的代码,因此好多使用 NAND Flash 的 开发板除了使用 NAND Flah以外,还作上了一块小的 NOR Flash 来运行启动代码。 NOR flash是intel公司1988年开发出了NOR flash技术。NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash 闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 Nand-flash内存是flash内存的一种,1989年,东芝公司发表了NAND flash结构。其内部采用非线性宏单元 模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快 等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、

开机错误信息提示详解

开机错误信息提示详解 WinXP非法操作详解 1、停止错误编号:0x0000000A 说明文字:IRQL-NOT-LESS-OR-EQUAL 通常的原因:驱动程序使用了不正确的内存地址。 解决方法:如果无法登陆,则重新启动计算机。当出现可用的作系统列表时,按F8键。 在Windows高级选项菜单屏幕上,选择"最后一次正确的配置",然后按回车键。 检查是否正确安装了所有的新硬件或软件。如果这是一次全新安装,请与硬件或软件的制造商联系,获得可能需要的任何Windows更新或驱动程序。 运行由计算机制造商提供的所有的系统诊断软件,尤其是内存检查。 禁用或卸掉新近安装的硬件(RAM,适配器,硬盘,调制解调器等等),驱动程序或软件。 确保硬件设备驱动程序和系统BIOS都是最新的版本。 确保制造商可帮助你是否具有最新版本,也可帮助你获得这些硬件。 禁用 BIOS内存选项,例如cache或shadow。 2、停止错误编号:0x0000001E 说明文字:KMODE-EXCEPTION-NOT-HANDLED 通常的原因:内核模式进程试图执行一个非法或未知的处理器指令。 解决方法:确保有足够的空间,尤其是在执行一次新安装的时候。 如果停止错误消息指出了某个特定的驱动程序,那么禁用他。如果无法启动计算机。 应试着用安全模式启动,以便删除或禁用该驱动程序。 如果有非Microsoft支持的视频驱动程序,尽量切换到标准的VGA驱动程序或Windows提供的适当驱动程序。 禁用所有新近安装的驱动程序。 确保有最新版本的系统BIOS。硬件制造商可帮助确定你是否具有最新版本,也可以帮助你获得他。 BIOS内存选项,例如cache,shadow。 3、停止错误编号:0x00000023或0x00000024

nandflash命名规则大全(三星,海力士,美光)

NAND Flash Code Information(1/3)
Last Updated : August 2009
K9XXXXXXXX - XXXXXXX
1
1. Memory (K) 2. NAND Flash : 9 3. Small Classification (SLC : Single Level Cell, MLC : Multi Level Cell, SM : SmartMedia, S/B : Small Block) 1 : SLC 1 Chip XD Card 2 : SLC 2 Chip XD Card 3 : 4bit MLC Mono 4 : SLC 4 Chip XD Card 5 : MLC 1 Chip XD Card 6 : MLC 2 Chip XD Card 7 : SLC moviNAND 8 : MLC moviNAND 9 : 4bit MLC ODP A : 3bit MLC MONO B : 3bit MLC DDP C : 3bit MLC QDP F : SLC Normal G : MLC Normal H : MLC QDP K : SLC Die Stack L : MLC DDP M : MLC DSP N : SLC DSP O : 3bit MLC ODP P : MLC ODP Q : SLC ODP R : MLC 12-die stack S : MLC 6 Die Stack T : SLC SINGLE (S/B) U : MLC 16 Die Stack W : SLC 4 Die Stack 4~5. Density 12 : 512M 32 : 32M 64 : 64M 2G : 2G AG : 16G DG : 128G GG : 384G NG : 96G
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18
6. Technology 0 : Normal (x8) C : Catridge SIP M : moviNAND P : moviMCP Z : SSD 7. Organization 0 : NONE 6 : x16
1 : Normal (x16) D : DDR N : moviNAND FAB T : Premium eSSD
8 : x8
8. Vcc A : 1.65V~3.6V B : 2.7V (2.5V~2.9V) C : 5.0V (4.5V~5.5V) D : 2.65V (2.4V ~ 2.9V) E : 2.3V~3.6V R : 1.8V (1.65V~1.95V) Q : 1.8V (1.7V ~ 1.95V) T : 2.4V~3.0V S : 3.3V (3V~3.6V/ VccQ1.8V (1.65V~1.95V) U : 2.7V~3.6V V : 3.3V (3.0V~3.6V) W : 2.7V~5.5V, 3.0V~5.5V 0 : NONE 9. Mode 0 : Normal 1 : Dual nCE & Dual R/nB 3 : Tri /CE & Tri R/B 4 : Quad nCE & Single R/nB 5 : Quad nCE & Quad R/nB 6 : 6 nCE & 2 RnB 7 : 8 nCE & 4 RnB 8 : 8 nCE & 2 RnB 9 : 1st block OTP A : Mask Option 1 L : Low grade 10. Generation M : 1st Generation A : 2nd Generation B : 3rd Generation C : 4th Generation D : 5th Generation E : 6th Generation Y : 25th Generation Z : 26th Generation
16 : 16M 40 : 4M 80 : 8M 4G : 4G BG : 32G EG : 256G HG : 512G ZG : 48G
28 : 128M 56 : 256M 1G : 1G 8G : 8G CG : 64G FG : 256G LG : 24G 00 : NONE
-1-
Part Number Decoder

相关主题
文本预览
相关文档 最新文档