收藏 分享(赏)

太阳能灯具与普通灯具的比较iMc.doc.doc

上传人:eukav 文档编号:7104899 上传时间:2019-05-06 格式:DOC 页数:3 大小:38KB
下载 相关 举报
太阳能灯具与普通灯具的比较iMc.doc.doc_第1页
第1页 / 共3页
太阳能灯具与普通灯具的比较iMc.doc.doc_第2页
第2页 / 共3页
太阳能灯具与普通灯具的比较iMc.doc.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、MTD(memory technology device 内存技术设备)是用于访问 memory 设备(ROM、flash)的Linux 的子系统。MTD 的主要目的是为了使新的 memory 设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD 的所有源代码在/drivers/mtd 子目录下。CFI接口的 MTD 设备分为四层(从设备节点直到底层硬件驱动),这四层从上到下依次是:设备节点、MTD 设备层、MTD 原始设备层和硬件驱动层。MTD 原 始 设 备 描 述 所 有 组 成 MTD 原 始 设 备 的 Flash 芯 片 必 须 是 同 类 型 ( 无 论 是in

2、terleave 还 是 地 址 相 连 ) , 在 描 述 MTD 原 始 设 备 数 据 结 构 中 采 用 同 一 结构 描 述 组 成 Flash 芯 片 。 每 个 MTD 原 始 设 备 有 一 个 mtd_info 结 构 , 其 中 的priv 指 针 指 向 一 个 map_info 结 构 , map_info 结 构 中 的 fldrv_priv 指 向 一个 cfi_private 结 构 , cfi_private 结 构 的 cfiq 指 针 指 向 一 个 cfi_ident结 构 , chips 指 针 指 向 一 个 flchip 结 构 的 数 组 。 其

3、中mtd_info、 map_info 和 cfi_private 结 构 用 于 描 述 MTD 原 始 设 备 , 因 为 组成 MTD 原 始 设 备 的 NOR 型 Flash 相 同 , cfi_ident 结 构 用 于 描 述 Flash 芯片 信 息 ; 而 flchip 结 构 用 于 描 述 每 个 Flash 芯 片 专 有 信 息 。 根 文 件 系 统 文 件 系 统 字 符 设 备 节 点 MTD 字 符 设 备 MTD 块 设 备 MTD 原 始 设 备 FLASH 硬 件 驱 动 块 设 备 节 点 一 、 Flash 硬 件 驱 动 层 : 硬 件 驱 动 层

4、 负 责 在 init 时 驱 动 Flash 硬 件 ,Linux MTD 设 备 的 NOR Flash 芯 片 驱 动 遵 循 CFI 接 口 标 准 , 其 驱 动 程 序 位于 drivers/mtd/chips 子 目 录 下 。 NAND 型 Flash 的 驱 动 程 序 则 位 于/drivers/mtd/nand 子 目 录 下 二 、 MTD 原 始 设 备 : 原 始 设 备 层 有 两 部 分 组 成 , 一 部 分 是 MTD 原 始 设备 的 通 用 代 码 , 另 一 部 分 是 各 个 特 定 的 Flash 的 数 据 , 例 如 分 区 。 用 于 描 述

5、 MTD 原 始 设 备 的 数 据 结 构 是 mtd_info, 这 其 中 定 义 了 大 量 的关 于 MTD 的 数 据 和 操 作 函 数 。 mtd_table( mtdcore.c) 则 是 所 有 MTD 原 始设 备 的 列 表 , mtd_part( mtd_part.c) 是 用 于 表 示 MTD 原 始 设 备 分 区 的 结构 , 其 中 包 含 了 mtd_info, 因 为 每 一 个 分 区 都 是 被 看 成 一 个 MTD 原 始 设 备加 在 mtd_table 中 的 , mtd_part.mtd_info 中 的 大 部 分 数 据 都 从 该 分

6、 区 的 主分 区 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 结 构 并 将

7、 mtd_part.mtd_info 加 入 /删除 mtd_table 中 ) 。 三 、 MTD 设 备 层 : 基 于 MTD 原 始 设 备 , linux 系 统 可 以 定 义 出 MTD 的 块设 备 ( 主 设 备 号 31) 和 字 符 设 备 ( 设 备 号 90) 。 MTD 字 符 设 备 的 定 义 在mtdchar.c 中 实 现 , 通 过 注 册 一 系 列 file operation 函 数( lseek、 open、 close、 read、 write) 。 MTD 块 设 备 则 是 定 义 了 一 个 描 述MTD 块 设 备 的 结 构 mtdbl

8、k_dev, 并 声 明 了 一 个 名 为 mtdblks 的 指 针 数 组 ,这 数 组 中 的 每 一 个 mtdblk_dev 和 mtd_table 中 的 每 一 个 mtd_info 一 一 对应 。 四 、 设 备 节 点 : 通 过 mknod 在 /dev 子 目 录 下 建 立 MTD 字 符 设 备 节 点( 主 设 备 号 为 90) 和 MTD 块 设 备 节 点 ( 主 设 备 号 为 31) , 通 过 访 问 此 设 备节 点 即 可 访 问 MTD 字 符 设 备 和 块 设 备 。 五 、 根 文 件 系 统 : 在 Bootloader 中 将 JFF

9、S( 或 JFFS2) 的 文 件 系 统 映像 jffs.image( 或 jffs2.img) 烧 到 flash 的 某 一 个 分 区 中 , 在/arch/arm/mach-your/arch.c 文 件 的 your_fixup 函 数 中 将 该 分 区 作 为 根文 件 系 统 挂 载 。 六 、 文 件 系 统 : 内 核 启 动 后 , 通 过 mount 命 令 可 以 将 flash 中 的 其 余分 区 作 为 文 件 系 统 挂 载 到 mountpoint 上 。 设 备 层 和 原 始 设 备 层 的 函 数 调 用 关 系 ( 红 色 部 分 需 要 我 们

10、实 现 ) : 一 个 MTD 原 始 设 备 可 以 通 过 mtd_part 分 割 成 数 个 MTD 原 始 设 备 注 册 进 mtd_table, mtd_table 中 的 每 个 MTD 原 始 设 备 都 可 以 被 注 册 成 一 个 MTD 设备 , 其 中 字 符 设 备 的 主 设 备 号 为 90, 次 设 备 号 为 0、 2、 4、 6( 奇 数 次设 备 号 为 只 读 设 备 ) , 块 设 备 的 主 设 备 号 为 31, 次 设 备 号 为0、 1、 2、 3 mtd_notifier mtd_notifier 字 符 设 备 mtd_fops 块 设

11、 备 mtd_fops ( mtdchar.c) ( mtdblock.c) mtdblks 设 备 层 register_mtd_user() get_mtd_device() unregister_mtd_user() put_mtd_device() erase_info mtd_notifiers mtd_table mtd_info mtd_part ( mtdcore.c) ( mtdpart.c) Your Flash ( your-flash.c) add_mtd_partitions() del_mtd_partitions() 原 始 设 备 层 add_mtd_devic

12、e() del_mtd_device() mtd_partition NOR 型 Flash 芯 片 驱 动 与 MTD 原 始 设 备 所 有 的 NOR 型 Flash 的 驱 动 ( 探 测 probe) 程 序 都 放 在 drivers/mtd/chips 下 , 一 个 MTD 原 始 设 备 可 以 由 一 块 或 者 数 块 相 同 的Flash 芯 片 组 成 。 假 设 由 4 块 devicetype 为 x8 的 Flash, 每 块 大 小 为8M, interleave 为 2, 起 始 地 址 为 0x01000000, 地 址 相 连 , 则 构 成 一 个MT

13、D 原 始 设 备 ( 0x01000000-0x03000000) , 其 中 两 块 interleave 成 一 个chip, 其 地 址 从 0x01000000 到 0x02000000, 另 两 块 interleave 成 一 个chip, 其 地 址 从 0x02000000 到 0x03000000。 请 注 意 , 所 有 组 成 一 个 MTD 原 始 设 备 的 Flash 芯 片 必 须 是 同 类 型 的( 无 论 是 interleave 还 是 地 址 相 连 ) , 在 描 述 MTD 原 始 设 备 的 数 据 结 构 中也 只 是 采 用 了 同 一 个

14、结 构 来 描 述 组 成 它 的 Flash 芯 片 。 0x03000000 0x02000000 0x01000000 每 个 MTD 原 始 设 备 都 有 一 个 mtd_info 结 构 , 其 中 的 priv 指 针 指 向 一个 map_info 结 构 , map_info 结 构 中 的 fldrv_priv 指 向 一 个 cfi_private结 构 , cfi_private 结 构 的 cfiq 指 针 指 向 一 个 cfi_ident 结 构 , chips 指针 指 向 一 个 flchip 结 构 的 数 组 。 其 中 mtd_info、 map_info 和cfi_private 结 构 用 于 描 述 MTD 原 始 设 备 ; 因 为 组 成 MTD 原 始 设 备 的 NOR型 Flash 相 同 , cfi_ident 结 构 用 于 描 述 Flash 芯 片 的 信 息 ; 而 flchip 结构 用 于 描 述 每 个 Flash 芯 片 的 专 有 信 息 ( 比 如 说 起 始 地 址 )

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报