linux内核MTD分区

linux内核MTD分区

ID:40749669

大小:64.95 KB

页数:30页

时间:2019-08-07

linux内核MTD分区_第1页
linux内核MTD分区_第2页
linux内核MTD分区_第3页
linux内核MTD分区_第4页
linux内核MTD分区_第5页
资源描述:

《linux内核MTD分区》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MTD设备驱动和NANDFlash驱动程序分析硬件环境:飞凌OK6410,256MBDDR,2GBNANDFlash、 NANDFlash型号:K9G8G08U9A 、  分析源码:Linux2.6.36.2内核源码。一、MTD设备驱动。1、先来简单介绍一下MTD在Linux系统中,提供了MTD(MemoryTechnologyDevice,内存技术设备)系统来建立Flash针对Linux的系统、抽象的接口,MTD将文件系统 与底层的Flash 存储器进行了隔离,使Flash驱动工程师无需关心Fla

2、sh作为字符设备和块设备与LInux内核的接口。2、在引入MTD后Linux系统中的Flash 设备及接口可分为4层,从上到下依次是:设备节点、MTD设备层、MTD原始设备层和硬件驱动层。 这4层的作用定义如下:1->硬件驱动层:Flash硬件驱动层负责Flash硬件设备的读、写、擦除,LInuxMTD设备的NORFlash芯片驱动位于drivers/mtd/chips子目录下, NANDFlash的驱动程序则位于drivers/mtd/nand子目录下。2->MTD原始设备层:MTD原始设备层由两

3、部分组成,一部分是MTD原始设备的通用代码,另一部分是各个特定Flash的数据,例如分区。3->MTD设备层:基于MTD原始设备,Linux系统可以定义出MTD的块设备的结构(主设备号31)和字符设备(设备号90),构成MTD设备层,MTD字符设备定义   在mtdchar.c中实现,MTD块设备则是定义在一个描述MTD块设备的结构mtdblk_dev,并声明了一个名为mtdblks的指针数组,这个数组中的每个mtdblk_dev 和mtd_table中的每一个mtd_info一一对应。4->设备节

4、点:通过mknod在/dev子目录下建立MTD字符设备节点和块设备节点,用户通过访问此此设备节点即可访问MTD字符设备和块设备。3、分析LinuxMTD系统接口mtd_info结构体代码分析 此结构体定义在./include/linux/mtd/mtd.h中关键词词解析:XIP:XIP eXecuteInPlace,即芯片内执行,指应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。flash内执行是指norflash不需要初始化,可以直接在flash内执行代码。但往往只执行部分代

5、码,比如初始化RAM.OOB:OutOfBrower传输层协议使用带外数据(out-of-band,OOB)来发送一些重要的数据,如果通信一方有重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方.为了发送这些数据iovec-base:iovec结构体基础。structiovec定义了一个向量元素。通常,这个结构用作一个多元素的数组。对于每一个传输的元素,指针成员iov_base指向一个缓冲区,这个缓冲区是存放的是readv所接收的数据或是writev将要发送的数据。成员iov_len在各种

6、情况下分别确定了接收的最大长度以及实际写入的长度。Sync:函数, 函数说明:此函数负责将系统缓冲区的内容写回磁盘,以确保数据同步。[cpp] viewplaincopy1.struct mtd_info {  2.    u_char type;     // 内存技术的类型  3.    uint32_t flags;  // 标志位  4.    uint64_t size;   // Total size of the MTD 、mtd 设备的大小  5.  6.    /* "Major"

7、 erase size for the device. Na茂ve users may take this 7.     * to be the only erase size available, or may use the more detailed 8.     * information below if they desire 9.     */  10.    uint32_t erasesize;    // 主要的擦除块大小 erase size of main block  11

8、.    /* Minimal writable flash unit size. In case of NOR flash it is 1 (even 12.     * though individual bits can be cleared), in case of NAND flash it is 13.     * one NAND page (or half, or one-fourths of it), in case of ECC-ed NOR 14

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。