免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5372 | 回复: 8
打印 上一主题 下一主题

块设备驱动?MTD设备驱动?有什么区别?FLASH驱动属于哪一类? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-24 14:34 |只看该作者 |倒序浏览
想写一块NOR FLASH的驱动,看了下LDD3上的块设备驱动开发,又在网上无意中看到MTD设备驱动。

LDD3的块设备中降到了块驱动里要添加DISK结构 ,,如果是一个面向块的NOR FLASH,写个块驱动也要添加这个结构 么?
好像又有人说FLASH驱动属于MTD层次,
源码里DRIVER下面又要MTD,也有BLOCK,该怎么写FLASH驱动呢?按那种方式呢?

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2008-07-24 14:40 |只看该作者

回复 #1 lovesunshine 的帖子

具体的实现在于你自己,如果你把它当成普通的块设备,那就用块驱动也行;如果你想遵循cfi,就用MTD。

论坛徽章:
0
3 [报告]
发表于 2008-07-24 20:27 |只看该作者
如果把自己的FLASH驱动写成MTD驱动,我看到MTD下有个chrdev.c,还需要自己写字符设备驱动么?如果写两个冲突不

论坛徽章:
0
4 [报告]
发表于 2008-07-24 23:43 |只看该作者
Flash->MTD

论坛徽章:
0
5 [报告]
发表于 2008-07-25 08:51 |只看该作者
看了一篇叫住LINUX MTD源码分析的文章,我自己写的FLASH MTD驱动必需放在/drivers/mtd/maps下,还是可以放在任何目录下面

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
6 [报告]
发表于 2008-07-25 09:26 |只看该作者
原帖由 lovesunshine 于 2008-7-25 08:51 发表
看了一篇叫住LINUX MTD源码分析的文章,我自己写的FLASH MTD驱动必需放在/drivers/mtd/maps下,还是可以放在任何目录下面


可以放在你自己指定的目录,只要编译的时候包含的路径对了就行了。刚开始做的时候,最好多参考内核源码的一些实现。

论坛徽章:
0
7 [报告]
发表于 2008-07-25 13:02 |只看该作者
一般嵌入式中Nor flash都放在mtd设备中的

论坛徽章:
0
8 [报告]
发表于 2008-07-25 19:39 |只看该作者
最近学习nor flash的MTD驱动,对于map_info的read/write分量不太明白。

nor flash的MTD驱动中,驱动作者需要定义自己的map_info结构体,并且为read/write函数分量赋值。在write函数的实现中,大多使
用__raw_writew来实现。但是向nor flash写入数据是要经过program的过程的,不能像写内存一样写入。而且nor
flash的底层读写函数实际上是在cfi_cmdset_0001/2.c中实现的,并且被赋给mtd_info的read/write分量。

真不知道map_info结构体的read/write函数有何用?大家多指教啊!谢谢

论坛徽章:
0
9 [报告]
发表于 2008-07-25 19:48 |只看该作者
是不是直接调用MTD->read,write的成员函数等就可以直接操作NOR FLASH了??跟踪了下源码,在read ,write函数的N层嵌套函数里有很多map_write(map, CMD(0xB0), adr)这类的调用,从字面意思看貌似是在想FLASH里写命令。看FLASH的芯片手册里说,FLASH可以直接读,编程FLASH时需要先向对应的块写命令。比如擦处块时,看到CFI_CMDSET_0001.C里面的static int __xipram do_erase_oneblock()里有map_write(map, CMD(0x20), adr);
        map_write(map, CMD(0xD0), adr);之类的。是不是只需调用呢mtd->erase(mtd, erase)就可以直接把响应块给擦出,连对块进行的命令MTD层都给封装在相应的底层函数里的啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP