随笔分类 -  U-boot

摘要:Flash型号:NandFlash型号:TC58NVG2S3ETA00pagesize: 2KBoobsize : 64Bblocksize : 128K关于ECC可以参考:http://www.cnblogs.com/pengdonglin137/p/3438001.html,其中介绍了256B纠错1位的ECC生成算法,而这里的512B跟它的方法类似。这里有一个EXCEL表格,它是对下面将要分析的算法的动态演示,只需要更改其中的16*16的表格中的数字,相应的ECC会自动计算出来。我将结合EXCEL和代码一块解释。#include #include #include #include #in 阅读全文
posted @ 2013-12-11 15:07 dolinux 阅读(2353) 评论(0) 推荐(0) 编辑
摘要:word下载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 @ 2013-11-22 17:28 dolinux 阅读(6761) 评论(0) 推荐(0) 编辑
摘要:参考:http://www.design-reuse.com/articles/24503/nand-flash-memory-embedded-systems.html Abstract : This paper presents fundamental information about NAND Flash memory used in Embedded Systems. It disc... 阅读全文
posted @ 2013-11-22 16:04 dolinux 阅读(1067) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-14833587-id-76513.htmlnand info & nand device显示flash的信息:DM365:>nand infoDevice 0: NAND 32MiB 3,3V 8-bit, sector size 16 KiBDM365:>nand deviceDevice 0: NAND 32MiB 3,3V 8-bitnand read(.oob) addr off size不管是读取data, 使用nand read,还是读取oob,使用命令nand read.oob, 后面跟的地址a 阅读全文
posted @ 2013-11-22 11:53 dolinux 阅读(961) 评论(0) 推荐(0) 编辑
摘要:一、内存详解 NAND闪存阵列分为一系列128kB的区块(block),这些区块是 NAND器件中最小的可擦除实体。擦除一个区块就是把所有的位(bit)设置为"1"(而所有字节(byte)设置为FFh)。有必要通过编程,将已擦除 的位从"1"变为"0"。最小的编程实体是字节(byte)。一些NOR闪存能同时执行读写操作(见下图1)。虽然NAND不能同时执行读写操作,它可以采用称为"映射(shad... 阅读全文
posted @ 2013-11-21 14:59 dolinux 阅读(12342) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-28852942-id-3987462.html在嵌入式编程中,我们经常讲程序保存在 nand flash中。但是我们知道,nand flash的接口设计和 RAM 的接口设计是不一样的。他的 数据线通常都是复用的,所以通常存取都是以块为单位(nor flash带有RAM接口,有足够的地址线来寻址,所以可以访问内存中每一个字节) 这导致了,nand flash不可以片内执行程序(nor flash可以,因为他能存取内存每一个字节)对于 s3c2440 来说,当使用 nand flash 启动时,为了解决 nand flash 不能 阅读全文
posted @ 2013-11-15 08:57 dolinux 阅读(738) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2013-11-09 13:21 dolinux 阅读(237) 评论(0) 推荐(0) 编辑
摘要:https://docs.google.com/viewer?url=http://files.cnblogs.com/pengdonglin137/%E3%80%90%E8%AF%A6%E8%A7%A3%E3%80%91%E5%A6%82%E4%BD%95%E7%BC%96%E5%86%99Linux%E4%B8%8BNand_Flash%E9%A9%B1%E5%8A%A8_v1.2.pdf 阅读全文
posted @ 2013-11-08 08:45 dolinux 阅读(221) 评论(0) 推荐(0) 编辑
摘要:参考:http://www.linux-mtd.infradead.org/doc/ubi.htmlUBI - Unsorted Block ImagesTable of contentsBig red noteOverviewSource codeMailing listUser-space toolsUBI headersUBI volume tableImplementation detailsMinimum flash input/output unitNAND flash sub-pagesUBI headers positionFlash space overheadSaving 阅读全文
posted @ 2013-11-03 10:04 dolinux 阅读(1399) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.sina.com.cn/s/blog_9452251d01015z9h.html有了mkfs.ubifs和ubinize两个工具后,就可以制作UBIFS镜像了,具体步骤如下:1.使用mkfs.ubifs命令将某个文件夹制作为UBIFS镜像,具体命令为:mkfs.ubifs -r/tmp/rootfs-m 2048 -e 126976-c 992 -o ubifs.img以上命令的含义为将/tmp/rootfs文件夹制作为UBIFS文件系统镜像,输出的镜像名为ubifs.img,-m参数指定了最小的I/O操作的大小,也就是NANDFLASH一个page的大小,-e参数 阅读全文
posted @ 2013-11-01 17:08 dolinux 阅读(1767) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.csdn.net/kickxxx/article/details/6707589目录Table of contentsBig red noteUser-space toolsUBI headersUBI volume tableImplementation detailsMinimum flash inputoutput unitNAND flash sub-pagesFlash space overheadSaving erase countersHow UBI flasher should workMarking eraseblocks as badScalab 阅读全文
posted @ 2013-10-31 15:57 dolinux 阅读(1132) 评论(0) 推荐(0) 编辑
摘要:转:NAND Chip DriversNAND technology users such as USB pen drives, DOMs, Compact Flash memory, and SD/MMC cards emulate standard storage interfaces such as SCSI or IDE over NAND flash, so you don't need to develop NAND drivers to communicate with them.5On-board NAND flash chips need special driver 阅读全文
posted @ 2013-10-31 14:31 dolinux 阅读(722) 评论(0) 推荐(0) 编辑
摘要:转:http://wiki.laptop.org/go/NAND_Flash_Bad_Block_Table1OLPC NAND Bad Block Management1.1Introduction1.2Basic Concepts1.3Multi-Chip Devices1.4Bad Block Table Location1.5Bad Block Table Format1.6Consistency Checks1.5.1Header Format1.5.2Bitmap Format1.6Consistency Checks1.7Safe Update Procedure1.8Recov 阅读全文
posted @ 2013-10-31 13:53 dolinux 阅读(1281) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.chinaunix.net/uid-27675161-id-3392636.html相关知识引用《嵌入式 Linux 应用开发 完全手册》 Nand Flash 每一页大小为(512+16)字节,当然还有其它格式的,比如对于大页的 Nand Flash 是(2048+64),其中 512 字节就是一般的数据存储区,16 字节称为 OOB(Out Of Band)区。通常在 OOB 区存放坏块标记和前面512 字节的 ECC 校验码等。 jffs2 文件系统映像文件中没有 OOB 区的内容,如果将它烧写到 Nor Flash 中,则是简单的“平铺”关系;如果将它烧到 阅读全文
posted @ 2013-10-31 13:10 dolinux 阅读(3000) 评论(0) 推荐(0) 编辑
摘要:上面这种算法可以实现“非零即一”,原理是通过使用两次逻辑非操作,值得借鉴。 阅读全文
posted @ 2013-10-31 11:20 dolinux 阅读(704) 评论(0) 推荐(0) 编辑
摘要:如何根据一个结构体成员的地址、结构体类型以及该结构体成员名获得该结构体的首地址?#define list_entry(ptr, type, member) \ ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))其中,ptr为指向该结构体成员的指针,type为该结构的类型,member为该结构成员的名称。理解: &((type *)0)->member的目的是为了获得上图中问号表示的范围的大小。这段代码等价于:type * p = (type *)0; //便于获得某个结构体成员相对于该结构体 阅读全文
posted @ 2013-10-23 15:19 dolinux 阅读(936) 评论(0) 推荐(0) 编辑
摘要:编译时的出错信息::0: error: macro names must be identifiers原因:You have a-Dflag with no name. Look in your makefile to see what is causing it.所以需要分析相应的Makefile,看是不是由上面的这种情况,其可能的原因:有类似-D$(AVCHIP),其中AVCHIP是一个变量,但是这个变量没有进行赋值,其实从编译是否的打印信息也可以看到有一个-D,但是后边没有跟参数,据此在代码中进行定位。 阅读全文
posted @ 2013-10-15 08:45 dolinux 阅读(2674) 评论(0) 推荐(0) 编辑
摘要:采用的Linux是Debian6,虚拟机采用VirtualBox。 用VirtualBox安装Debian的方法,可以参见我的另一篇博客http://www.cnblogs.com/pengdonglin137/p/3343135.html,这里仅补充说明一下。 1、修改VirtualBox的虚拟机 阅读全文
posted @ 2013-10-13 16:29 dolinux 阅读(2196) 评论(0) 推荐(3) 编辑
摘要:CRC代码实现1:#include #include unsigned int cfgCrc32(const unsigned char* pSrc, int nSize) { int i, j, nIdx = 0; unsigned int byte, crc, mask; static unsigned int table[256]; if (table[1] == 0) { for (byte = 0; byte = 0; j--) { mask = -(crc & 1); ... 阅读全文
posted @ 2013-10-09 15:53 dolinux 阅读(1856) 评论(0) 推荐(0) 编辑
摘要:http://files.cnblogs.com/pengdonglin137/U-Boot_Reference_Manual.pdf 阅读全文
posted @ 2013-10-09 13:21 dolinux 阅读(258) 评论(0) 推荐(0) 编辑