有关字符设备与块设备驱动程序.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
资料来自网络,请保护知识产权,请您下载后勿作商用,只可学习交流使用。程序

Linux对存储设备的管理 块设备 ->文件系统 字符设备也可以完成简单的存储工作 嵌入式Linux的存储通常通过MTD设备 MTD设备驱动 MTD(memory technology device)是用于访问memory设备(ROM、flash)的Linux子系统 在硬件和上层之间提供了一个抽象的接口 ,MTD把文件系统和Flash设备相隔离 MTD与文件系统 MTD原始设备有两部分组成 MTD原始设备的通用代码, 各个特定的Flash的数据,例如分区。 mtd_info、mtd_table(mtdcore.c)、mtd_part(mtd_part.c) MTD设备层 linux系统定义出MTD的块设备(主设备号31)和字符设备(设备号90)。设备节点:通过mknod在/dev子目录下建立MTD字符设备节点(主设备号为90)和MTD块设备节点(主设备号为31),通过访问此设备节点即可访问MTD字符设备和块设备。 根文件系统 在Bootloader中将文件系统映像烧录到flash的某一个分区中,在启动的时候,将该分区作为根文件系统挂载。 文件系统: 内核启动后,mount NAND和NOR——性能比较 NOR和NAND是现在市场上两种主要的非易失闪存技术 NOR的读速度比NAND稍快一些 NAND的写入速度比NOR快很多 NAND的擦除速度远比NOR的快 大多数写入操作需要先进行擦除操作 NAND的擦除单元更小,相应的擦除电路更少 接口差别 NOR flash带有SRAM接口,线性寻址,可以很容易地存取其内部的每一个字节 NAND flash使用复用接口和控制IO多次寻址存取数据 NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作易于取代硬盘等类似的块设备 从NAND Flash启动 经典2410试验箱不带NOR Flash,只能从NAND Flash启动。由硬件实现选择从NAND启动。 系统上电或者复位时NAND Flash控制器自动将NAND Flash的前4KB拷贝到一段内置RAM中,并将这段RAM映射到0址处。 Nand Flash连接原理 Nand上yaffs文件系统的优势 专门为Nand flash设计的日志文件系统 jffs/jffs2不适合大容量的Nand flash jffs的日志通过jffs_node建立在RAM中,占用 RAM空间:对于128MB的Nand大概需要4MB的空间来维护节点 启动的时候需要扫描日志节点,不适合大容量的Nand flash 使用yaffs文件系统 通过cat /proc/yaffs命令可以看到yaffs系统的相关信息 mount -t yaffs /dev/mtdblock/0 /mnt/yaffs IDE接口软硬件设计 IDE接口简介 Integrated Drive Electronics(IDE)本意是指把控制器与盘体集成在一起的硬盘驱动器。 通常说的IDE接口,称之为ATA(Advanced Technology Attachment)接口 控制器是载有芯片的小型电路板,这些芯片对硬盘驱动器如何正确存储和访问数据进行控制。大多数控制器还带有一些内存,它充当缓冲器以增强硬盘驱动器性能。也就是说它提供了将完整设备与计算机(主机)连接的方法。 UP-2410CL上IDE接口逻辑原理图 IDE接口标准 CSEL 电缆主从选择 DMARQ DMA请求 CS0 片选0 INTRQ 中断请求 CS1 片选1 IOR 读取IO口 D[15:0] 数据线 IORDY IO就绪 DASP 驱动器有效 IOW 写入IO口 A[2:0] 地址 PDIAG 通过检测 DMACK DMA应答 RESET 复位 低电平有效 IDE设备寄存器 CS1 CS0 A2 A1 A0 读取 写入 位 1 0 0 0 0 数据寄存器 数据寄存器 16 1 0 0 0 1 错误寄存器 特征寄存器 8 1 0 0 1 0 扇区数寄存器 扇区数寄存器 8 1 0 0 1 1 扇区号寄存器 扇区号寄存器 8 1 0 1 0 0 柱面号(低字节) 柱面号(低字节) 8 1 0 1 0 1 柱面号(高字节) 柱面号(高字节) 8 1 0 1 1 0 驱动器/磁头 驱动器/磁头 8 1 0 1 1 1 状态寄存器 命令寄存器 8 0 1 1 1 0 可选状态寄存器 设备控制寄存器 8 0 1 1 1 1 驱动器地址寄存器 保留 8 IDE接口的驱动程序 在include/asm-arm/arch-s3c2410/ide.h中实现: IO空间分配 入口在ide_init_default_hwifs ide_register_hw注册驱动器 IDE设备工作在

文档评论(0)

精品报告 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档