随笔分类 -  Linux

上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
Linux 应用编程、驱动编程、内核知识、读书笔记
摘要:本文的主要目的是,看了之后,你应该对Nand Flash的硬件特性以及对应的Linux下软件平台有了基本的认识,进一步地,对如何实现Linux下的Nand Flash的驱动,知道要做哪些事情了,以及大概是如何实现的。这样,如果有了对应的开发环境,你就可以自己去实现Nand Flash的驱动了。不过额外提示一句的是,写出代码,并不代表你就完全搞懂了整个系统的流程。而且已经写好的代码,很可能有bug,要你不断地调试,通过调试,你才会对整个系统以及Nand Flash的方方面面有个更深入的了解的。而且,你会发现,为了写驱动那点代码之前,却要弄懂太多的东西,包括硬件的工作原理,软件的协议规范,软件.. 阅读全文
posted @ 2014-02-20 18:04 摩斯电码 阅读(205) 评论(0) 推荐(0) 编辑
摘要:转载:http://blog.csdn.net/beatbean/article/details/84486231. Compile宏控制位于include/linux/init.h[cpp]view plaincopy/*Theseareforeverybody(althoughnotallarchswillactuallydiscarditinmodules)*/#define__init__section(.init.text)__coldnotrace#define__initdata__section(.init.data)#define__initconst__section(.i 阅读全文
posted @ 2014-01-26 11:42 摩斯电码 阅读(1657) 评论(0) 推荐(0) 编辑
摘要:转:http://www.linuxso.com/command/modprobe.htmlmodprobe(module probe)功能说明:自动处理可载入模块。语 法:modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]补充说明:modprobe可载入指定的个别模块,或是载入一组相依的模块。modprobe会根据depmod所产生的相依关系,决定要载入哪些模块。若在载入过程中发生错误,在modprobe会卸载整组的模块。insmod 与 modprobe 都是载入 kernel module,不过一般差别于 modprobe 能够处理 modul. 阅读全文
posted @ 2013-12-27 18:25 摩斯电码 阅读(3334) 评论(0) 推荐(0) 编辑
摘要:以TC58NVG2S3ETA00为例:下面是它的一些物理参数:图一图二图三图四图五图6-0图6-1说明一下,在图6-1中中间的那个布局表可以看做是实际的NandFlash一页数据的布局,其中Data区域用于存放有效的数据,也就是我们可以通过类似read、write、pread、pwrite可以访问的区域,那每页中的64字节的OOB区域是无法通过前面的几个函数访问的,他们会自动跳过OOB区域,访问OOB区域需要借助特殊的命令。简单说明一下:Data A(512B)对应的ECC校验码存放在ECC for Data A(4 byte)中,OOB A (8byte) 对应的ECC校验码存放在紧接着的下 阅读全文
posted @ 2013-12-11 11:23 摩斯电码 阅读(6679) 评论(5) 推荐(2) 编辑
摘要:转:http://www.linuxforu.com/2012/01/working-with-mtd-devices/Working with MTD DevicesByMohan Lal Jangiron January 31, 2012 inCoding,Developers·6 CommentsThis article shows how kernel and application developers (in C) can make use of MTD in Linux.MTD (Memory Technology Devices) are NAND/NOR-based 阅读全文
posted @ 2013-12-10 18:16 摩斯电码 阅读(561) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.csdn.net/zhouzhuan2008/article/details/11053877目录MTD总概述MTD数据结构MTD相关层实现MTD,Memory Technology Device即内存技术设备字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问;同时,两者读写数据的基本单元不同。字符设备,以字节为基本单位,在Linux中,字符设备实现的比较简单,不需要缓冲区即可直接读写,内核例程和用户态API一一对应,用户层的Read函数直接对应了内核中的Read例程,这种映射关系由字符设备的file_operations维护。块设备,则以块为单位接受输 阅读全文
posted @ 2013-12-10 18:10 摩斯电码 阅读(2599) 评论(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 摩斯电码 阅读(6507) 评论(0) 推荐(0) 编辑
摘要:一、内存详解 NAND闪存阵列分为一系列128kB的区块(block),这些区块是 NAND器件中最小的可擦除实体。擦除一个区块就是把所有的位(bit)设置为"1"(而所有字节(byte)设置为FFh)。有必要通过编程,将已擦除 的位从"1"变为"0"。最小的编程实体是字节(byte)。一些NOR闪存能同时执行读写操作(见下图1)。虽然NAND不能同时执行读写操作,它可以采用称为"映射(shad... 阅读全文
posted @ 2013-11-21 14:59 摩斯电码 阅读(10853) 评论(0) 推荐(0) 编辑
摘要:参考:http://blog.sina.com.cn/s/blog_3cba7ec10100gk4k.htmlhttp://blog.sina.com.cn/s/blog_3cba7ec10100gk4o.html细心的朋友会注意到,当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法.那么我来谈谈这个问题.先来说说free命令[root@server ~]# free -mtotalusedfreesharedbufferscachedMem:24916386010 阅读全文
posted @ 2013-11-21 13:25 摩斯电码 阅读(470) 评论(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 摩斯电码 阅读(718) 评论(0) 推荐(0) 编辑
摘要:参考:http://blog.chinaunix.net/uid-20683355-id-1895778.htmlhttp://www.linuxdiyf.com/viewarticle.php?id=66496安装完毕后,会在/usr/src下面生成一个Linux源码包。 阅读全文
posted @ 2013-11-10 15:59 摩斯电码 阅读(301) 评论(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 摩斯电码 阅读(1365) 评论(0) 推荐(0) 编辑
摘要:在Linxu下查看块设备信息:如果有类似mtdinfo或者ubinfo这样的命令,可以直接使用 mtdinfo /dev/mtd0 ubiinfo /dev/ubi2_0如果没有上面的这些命令的话查看mtd设备信息 进入 /sys/class/mtd/mtd* ,然后使用cat命令即可看到指定设备的信息查看ubi设备的信息 进入 /sys/class/ubi/ubi* ,同样使用cat命令即可其实,mtd-utils中的很多命令的实现就是利用上面的这种方法。 阅读全文
posted @ 2013-11-01 17:33 摩斯电码 阅读(777) 评论(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 摩斯电码 阅读(1734) 评论(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 摩斯电码 阅读(1074) 评论(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 摩斯电码 阅读(700) 评论(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 摩斯电码 阅读(1237) 评论(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 摩斯电码 阅读(2951) 评论(0) 推荐(0) 编辑
摘要:上面这种算法可以实现“非零即一”,原理是通过使用两次逻辑非操作,值得借鉴。 阅读全文
posted @ 2013-10-31 11:20 摩斯电码 阅读(682) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.163.com/sunshine_linting/blog/static/44893323201282114012845/1.google"linux kernel maillist"就知道了,方法很多 2.比较简单的方法:http://vger.kernel.org/vger-lists.html列出了linux内核的邮件列表,点击"subscribe / unsubscribe",你要的应该是http://vger.kernel.org/vger-lists.html#linux-kernel学习Linux内核可以订阅Li 阅读全文
posted @ 2013-10-28 16:20 摩斯电码 阅读(888) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 下一页