- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux2611MTD驱动情景分析
Linux 2.6.11 MTD驱动情景分析
02/13 2008
最近几天为了熟悉linux的驱动开发,我选择了MTD驱动做了一些研究。我能找到的文章中我觉得有些部分不够细致,所以我还是自己写了一部分分析,希望对别人也能有所帮助,也做为自己的一个备忘。蓝色文字的部分是从网络上摘录的。
?
一个嵌入式系统经常会使用NOR flash 或NAND flash来存放bootload,内核和文件系统等等。
下面是网络上找到的linux下的mtd驱动的分析:
一、Flash硬件驱动层:硬件驱动层负责在init时驱动Flash硬件,Linux MTD
设备的NOR Flash芯片驱动遵循CFI接口标准,其驱动程序位于drivers/mtd/chips子目录下。NAND型Flash的驱动程序则位于/drivers/mtd/nand子目录下。
二、MTD原始设备:原始设备层有两部分组成,一部分是MTD原始设备的通用代码,另一部分是各个特定的Flash的数据,例如分区。
?????? 用于描述MTD原始设备的数据结构是mtd_info,这其中定义了大量的关于MTD的数据和操作函数。mtd_table(mtdcore.c)则是所有MTD原始设备的列表,mtd_part(mtd_part.c)是用于表示MTD原始设备分区的结构,其中包含了mtd_info,因为每一个分区都是被看成一个MTD原始设备加在mtd_table中的,mtd_part.mtd_info中的大部分数据都从该分区的主分区mtd_part- master中获得。
?????? 在drivers/mtd/maps/子目录下存放的是特定的flash的数据,每一个文件都描述了一块板子上的flash。其中调用 add_mtd_device()、del_mtd_device()建立/删除mtd_info结构并将其加入/删除mtd_table(或者调用 add_mtd_partition()、del_mtd_partition()(mtdpart.c)建立/删除mtd_part结构并将 mtd_part.mtd_info加入/删除mtd_table 中)。
三、MTD设备层:基于MTD原始设备,linux系统可以定义出MTD的块设备(主设备号31)和字符设备(设备号90)。MTD字符设备的定义在mtdchar.c中实现,通过注册一系列file operation函数(lseek、open、close、read、write)。MTD块设备则是定义了一个描述MTD块设备的结构 mtdblk_dev,并声明了一个名为mtdblks的指针数组,该数组中的每一个mtdblk_dev和mtd_table中的每一个 mtd_info一一对应。
四、设备节点:通过mknod在/dev子目录下建立MTD字符设备节点(主设备号为90)和MTD块设备节点(主设备号为31),通过访问此设备节点即可访问MTD字符设备和块设备。
五、根文件系统:在Bootloader中将JFFS(或JFFS2)的文件系统映像jffs.image(或jffs2.img)烧到flash的某一个分区中,在/arch/arm/mach-your/arch.c文件的your_fixup函数中将该分区作为根文件系统挂载。
六、文件系统:内核启动后,通过mount 命令可以将flash中的其余分区作为文件系统挂载到mountpoint上。
NOR型Flash芯片驱动与MTD原始设备
?????? 所有的NOR型Flash的驱动(探测probe)程序都放在drivers/mtd/chips下,一个MTD原始设备可以由一块或者数块相同的 Flash芯片组成。假设由4块devicetype为x8的Flash,每块大小为8M,interleave为2,起始地址为0地址相连,则构成一个MTD原始设备(00,其中两块interleave成一个chip,其地址从 00另两块interleave成一个chip,其地址从00
?????? 请注意,所有组成一个MTD原始设备的Flash芯片必须是同类型的(无论是interleave还是地址相连),在描述MTD原始设备的数据结构中也只是采用了同一个结构来描述组成它的Flash芯片。
?
每个MTD原始设备都有一个mtd_info结构,其中的priv指针指向一个map_info结构,map_info结构中的fldrv_priv指向一个cfi_private结构,cfi_private结构的cfiq指针指向一个cfi_ident结构,chips指针指向一个flchip结构的数组。
您可能关注的文档
- JTGF712006《公路交通安全设施施工技术规范》.doc
- JS复合防水涂料聚合物水泥基0101.doc
- Juniper20防火墙标准方案v1.doc
- JXMX4输电线路工程建设标准强制性条文执行检查及汇总表.doc
- Just-in-time(JIT)的研究现状与发展趋势.doc
- JXS-351钢结构检测作业指导书.doc
- JY-WI-08-023A台式攻丝机安全操作规程.doc
- JT-GC-JS07《建筑渗漏开裂通病防治三十七条》.doc
- JX11084毛剑琳贺村初中城郊初中后20学生的教育转化策略研究结题报告.doc
- Juniper防火墙的基本设置v1.doc
- 2024福建福州市马尾区招聘第二批专职船管员4人笔试备考试题及答案解析.docx
- 2024年宣城宁国市从全市村(社区)“两委”干部中择优选聘乡镇(街道)事业单位3人笔试模拟试题及答案解析.docx
- 2024年临沂沂河新区公开选聘工作人员笔试模拟试题及答案解析.docx
- 2024年齐齐哈尔泰来县大学生乡村医生专项计划招聘4人笔试备考试题及答案解析.docx
- 2024年山东省交通运输集团有限公司权属企业招聘(山东省交投物流集团有限公司)笔试备考试题及答案解析.docx
- 2024年青海省第三人民医院编外招聘调整部分岗位招聘计划的笔试模拟试题及答案解析.docx
- 2024福建南平政和县国有资产投资运营集团有限公司旗下子公司政和县振兴乡村发展有限公司招聘4人笔试备考试题及答案解析.docx
- 2024福建三明建宁县农村信用合作联社劳务派遣人员招聘1人笔试备考试题及答案解析.docx
- 2024福建三明医学科技职业学院招聘驾驶员1人笔试备考试题及答案解析.docx
- 2024年绵阳市盐亭县大学生乡村医生专项计划招聘2人笔试备考试题及答案解析.docx
最近下载
- AWS D1.1-2020钢结构焊接规范(中英文版).pdf
- 重大公共卫生项目健康危险因素健康问题调评估报告.doc
- 操作系统原理练习题2及答案.pdf VIP
- 湖北省医疗服务收费标准(综合医疗服务类).pdf
- 《中国共产党巡视工作条例》测试附答案.docx VIP
- 刺络拔罐技术钟代华PPT培训课件.pptx
- 全国学生资助管理信息系统-中职子系统操作手册-简易版_v1.30.pdf
- 3.6.2 中医特色康复医疗的服务标准及规范.docx VIP
- 碧桂园物管员工作岗位手机使用管理办法(V1.0).docx
- 2024-2025学年小学英语三年级上册(2024)接力版(三起)(2024)教学设计合集.docx
文档评论(0)