Nand ECC校验和纠错 详解

摘要: ECC的全称是Error Checking and Correction,是一种用于Nand的差错检测和修正算法。如果操作时序和电路稳定性不存在问题的话,NAND Flash出错的时候一般不会造成整个Block或是Page不能读取或是全部出错,而是整个Page(例如512Bytes)中只有一个或几个bit出错。ECC能纠正1个比特错误和检测2个比特错误,而且计算速度很快,但对1比特以上的错误无法纠正,对2比特以上的错误不保证能检测。校验码生成算法:ECC校验每次对256字节的数据进行操作,包含列校验和行校验。对每个待校验的Bit位求异或,若结果为0,则表明含有偶数个1;若结果为1,则表明含有奇 阅读全文
posted @ 2012-10-24 12:04 crazy_code1990 阅读(2635) 评论(0) 推荐(0) 编辑

s3c2410/s3c2440 nand flash工作原理

摘要: NAND Flash的寻址方式和NAND Flash的memory组织方式紧密相关。NAND Flash的数据是以bit的方式保存在memory cell,一般来说,一个cell中只能存储一个bit。这些cell以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device的位宽。这些Line会再组成Page,通常是528Byte/page或者264Word/page。然后,每32个page形成一个Block,Sizeof(block)=16kByte Block是NAND Flash中最大的操作单元,擦除就是按照block为单位完成 阅读全文
posted @ 2012-10-22 15:00 crazy_code1990 阅读(635) 评论(0) 推荐(0) 编辑

u-boot中的两个数据结构gd_t和bd_t

摘要: gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递.分别定义在./include/asm/global_data.h和./include/asm/u_boot.h1.gd_t: global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。需要用到时用宏定义:DECLARE_GLOBAL_DATA_PTR,指定占用寄存器R8。2.bd_t : board info数据结构定义,位于文件 include/asm-arm/u-boot.h。保存板子参数。#ifnde 阅读全文
posted @ 2012-07-16 17:01 crazy_code1990 阅读(528) 评论(0) 推荐(0) 编辑

U-boot中对SDRAM初始化

摘要: 项目中遇到需要把64M SDRAM升级到128M的情况,我们板子上是两片32M的K4S561632C,而K4S511632C是64M的,直接更换不需要重新画PCB。原理图参见TQ2440—V2核心板,将对应电阻重焊后,就可将原来接到A24,A25引脚上的地址线换到A25,A26上。u-boot中board/samsung/hfrk2440/lowlevel_init.S中:#define BWSCON0x48000000/* BWSCON */#define DW8(0x0)#define DW16(0x1)#define DW32(0x2)#define WAIT(0x1<<2) 阅读全文
posted @ 2012-07-16 16:45 crazy_code1990 阅读(1798) 评论(0) 推荐(0) 编辑