
Linux MTD
qingfengtsing
这个作者很懒,什么都没留下…
展开
-
基于MTD的NANDFLASH设备驱动底层实现原理分析(六)
转载地址:http://blog.youkuaiyun.com/eilianlau/article/details/6965749实在写不下去了,仔细的想了一想还是把mtd/nand/s3c2410.c好好的分析分析在Linux中NANDFLASH设备驱动是被注册成平台驱动的。我还是从函数的入口出发一步一个脚印的分析。突然间发现这些代码真的很经典由于这一次CPU是S3C2440所以分析过程中会把其转载 2014-04-22 09:27:43 · 691 阅读 · 0 评论 -
NAND 坏块管理方法
转载地址:http://www.ibm.com/developerworks/cn/linux/1309_gaozp_nand/目前,NAND 坏块管理方法可分为如下几类:基于 FTL 芯片的坏块管理它使用一个额外的 FTL (Flash Translation Layer)芯片对 NAND 进行管理,对外部屏蔽了坏块信息,U 盘、SD 卡、MMC 卡以及固态硬盘都使用这种管理方法转载 2015-08-20 16:01:26 · 1890 阅读 · 0 评论 -
uboot烧写yaffs文件系统的原理
以前没有特别仔细的研究过nand write和nand write.yaffs凭感觉应该用nand write.yaffs来烧写yaffs文件系统。 可是为什么呢? 于是研究了一些uboot下的代码才知道原因。nand write 是AUTO模式,调用的是nand_write—>chip->ecc.write_page。即使写oob,也仅仅有ecc的信息而nand write.yaffs是RAW原创 2015-10-20 16:13:27 · 612 阅读 · 0 评论 -
Linux下无效唤醒的应用
之前看过百度文库中一篇文章“Linux进程的睡眠和唤醒”,但是不是特别理解。http://wenku.baidu.com/link?url=nXPCC19-zZWPU-ccwnO4ho-6zEuHsCdRn-56gJNbNGN49bjPt8qYuOa6qSI2NCb1s1coom2iob6N_7axaQxl8oxhVDuCznuMu0VfjnHNJ3u今天看到mtdblock.c文件中原创 2015-11-04 22:04:11 · 1010 阅读 · 0 评论 -
linux和vxworks的实时性
硬实时与软实时之间最关键的差别在于,软实时只能提供统计意义上的实时。SYS_CLK_RATE是1000,那么就是1ms。。如果是60那么就大约是16.67ms。。。【我们的设备就是60】通常来讲,vxWorks手册建议不要将时钟率设得太高,否则它就由硬实时变得趋向于软实时了。。因为过高的时钟率使得内核调度频繁进入,可能导致一些低优先级的硬件中断不能得到及时响应。首先看一下linux的实转载 2015-11-06 21:31:46 · 3642 阅读 · 2 评论 -
mtdblock.c中的算法思想
以前以为mtdblock.c文件很简单,其实它蕴含着大道理1. cache原理为了方便数据快速操作,mtdblock加入了 cache。以前以为cache等同于page,但是看code发现cache_size其实是erase size即block size,在代码中由变量sec_size表示。2.mtd_blktrans_opsmtd_blocktrans_op原创 2015-11-11 17:19:26 · 773 阅读 · 0 评论 -
nand flash ecc level
之前做过micron的驱动,对oob读写一直有问题。比如ecc level为4-bit ECC/512 (main) +4 (spare) + 8 (parity) bytes4bit是nand flash intenal ecc纠错的能力。一般nand flash内部ecc使用的是bch硬件校验。需要的校验码长度是 13*4=52bit=8bytes,校验的区域为512(main原创 2015-10-27 10:18:13 · 5038 阅读 · 4 评论 -
linux block IO open的顺序图
抽个时间将blkdev_open的顺序图画了一下。原创 2015-11-23 15:18:45 · 549 阅读 · 0 评论 -
linux block层的class diagram
原创 2015-11-23 14:04:39 · 371 阅读 · 0 评论 -
Linux MTD驱动下的Nand Flash驱动中 mtd->write_oob和ecc.write_oob
转载地址:http://blog.chinaunix.net/uid-14704264-id-187394.html关于mtd->write_oob()和chip->ecc.write_oob(),具体有何区别和联系,自己之前无意间注意到,也迷惑过,但并没有去弄懂,这次看到别人有提问,所以,专门去看了源码,基本算是搞清楚了。mtd->write_oob,是在nand_scan()->n转载 2015-08-19 16:09:29 · 2931 阅读 · 0 评论 -
liux nand坏块管理
转载地址 http://www.ibm.com/developerworks/cn/linux/1309_gaozp_nand/NAND 及其坏块NAND Flash 是一种高密度低成本的存储体,它在各种各样的嵌入式系统中获得了广泛的应用, USB 存储设备、SD 卡、手机、相机和固态硬盘等各种设备中使用的都是 NAND 芯片。其内部结构是按照块/页进行组织的,一个 NAND转载 2015-07-22 16:25:00 · 974 阅读 · 0 评论 -
linux c面向对象分析
我写驱动从来不理解驱动的代码流程,就是根据框架,就像堆积木直接写好。最近好好的看了看linux内核的源代码,以及高焕堂先生的UML+OOPC嵌入式C语言开发精讲,才发现原来c功能这么强大。举例struct k_object{struct file_operations fops;void* data;void* others;};struct aa{原创 2015-07-10 19:13:00 · 1209 阅读 · 0 评论 -
基于MTD的NANDFLASH设备驱动底层实现原理分析(五)
转载地址:http://blog.youkuaiyun.com/eilianlau/article/details/6963225Linux内核在MTD的下层实现了通用的NAND驱动(/driver/mtd/nand/nand_base.c)因此芯片级的驱动实现不再需要我们关心mtd中的那些成员函数了主题转移到nand_chip数据结构中先了解了解nand_chip结构体struct nand转载 2014-04-22 09:26:21 · 796 阅读 · 0 评论 -
基于MTD的NANDFLASH设备驱动底层实现原理分析(一)
转载转载 2014-04-22 09:20:57 · 735 阅读 · 0 评论 -
基于MTD的NANDFLASH设备驱动底层实现原理分析(二)
转载地址:http://blog.youkuaiyun.com/eilianlau/article/details/6962290四、常见的NANDFLASH的操作 1、要实现对 Nand Flash 的操作,比如读取一页的数据,写入一页的数据等,都要发送对应的命令,而且要符合硬件的规定,如图: 比如说要实现读一页的数据,就要发送Read命令,而且分两个周期发送,即分两次发转载 2014-04-22 09:22:22 · 679 阅读 · 0 评论 -
基于MTD的NANDFLASH设备驱动底层实现原理分析(三)
转载地址:http://blog.youkuaiyun.com/eilianlau/article/details/6962693非常的说:我突然发现在写这些关于NAND驱动的文章的时候,原来我一直是在改写别人的博客。。。。。其实这并不要紧的,我也觉得这不仅仅是一种比较好的学习方法了,为什么呢,因为当我在看他的博客的时候,我明白了一点,然后当我自己要写的时候。。对这个东东又进一步了解一点了。。呵呵Copy转载 2014-04-22 09:23:51 · 692 阅读 · 0 评论 -
基于MTD的NANDFLASH设备驱动底层实现原理分析(四)
转载地址:http://blog.youkuaiyun.com/eilianlau/article/details/6962834进过前面3篇文章对NANDFLASH的一些硬件特性以及MTD的上层操作已经有了一个大体概念,这些东西的重要性就像你要吃饭那么你首先得学会拿筷子道理一样吧,应该一样的。五、MTD原始设备层和硬件驱动层的桥梁: 熟悉这几个重要的结构体:linux/mtd/mt转载 2014-04-22 09:25:05 · 712 阅读 · 0 评论 -
基于MTD的NANDFLASH设备驱动底层实现原理分析(七)
转载地址:http://blog.youkuaiyun.com/eilianlau/article/details/6966284初始化基本的硬件配置后probe函数就会开始与NAND芯片进行交互了,它要做的事情主要包括这几个方面:读取NAND芯片的ID,然后查表得到这片NAND芯片的如厂商,page size,erase size以及chip size等信息,接着,根据struct nand_chi转载 2014-04-22 09:29:30 · 570 阅读 · 0 评论 -
基于mx27ads 的yaffs 文件系统释疑
Mx27ads bsp内核采用2.6.19, 选择文件系统中的yaffs2File systems ---> Miscellaneous filesystems ---> YAFFS2 file system support创建测试的yaffs imagemkdir userfsecho test > userfs/testmkyaffsimage userfs us转载 2014-11-10 18:41:31 · 647 阅读 · 0 评论 -
nand read ERROR failed -74
在uboot下进行nand scrub然后输入nand转载 2014-11-11 15:05:17 · 3869 阅读 · 0 评论 -
linux block IO open的顺序图(二)
可能这是我在csdn上最后一篇博客了。 刚写了半天的东西,忽然什么提示都没有就闪退了。 现在想修改以前的blog,居然提示浏览器不支持。 好吧,考虑换平台了。 还是接着上面的顺序图讲讲。 上层应用程序其实调用的是blkdev_open函数,传递过来的参数也就是file和inode。这是底层驱动识别不了的东西,怎么办呢。 那就是填充inode,把inode转换成底层经常使用的block_d原创 2015-11-23 16:02:46 · 975 阅读 · 0 评论