FLASH驱动之-块设备驱动系统构架

一.  块设备是只能以块为单位进行访问的设备,块的大小一般是512个字节的整数倍,常见的块设备包括硬件,SD卡,光盘,flash等。驱动程序是块的整数倍从设备读写得到数据。块设备的最小访单位为块,不同系统之上,对块的大小是不一样的,linux一般定义为512个字节。我们每次访问一个块设备是最小访问单位为512个字节。这里的512字节是指硬件一次从磁盘上读写512个数据,而用户可能只需要1个字节。所以有时用户只得了1个字节。

二.块设备驱动系统框图

用户从磁盘中读取数据来分析

时间: 2024-10-13 05:59:39

FLASH驱动之-块设备驱动系统构架的相关文章

块设备驱动

在Linux下,驱动设备有字符设备驱动.块设备驱动和网络设备驱动三种,之前学习了字符设备驱动,现在开始学习块设备驱动.首先来比较看这两种设备驱动有何不通,为什么要分割成不同类型的驱动.举一个例子说明引入块设备驱动的必要: 假如按照字符设备一样的框架去构造驱动,如图: 则需要频繁地对存储设备进行擦除,如果使用另一种框架构思(块设备思想): 对比之下,对于这样的存储设备,则引入块设备显然使得操作的效果大为提高.由此可知块设备的特点就是:把请求放入队列,优化后执行. 字符设备与块设备I/O操作的区别:

字符设备驱动、平台设备驱动、设备驱动模型、sysfs的关系

Linux驱动开发的童鞋们来膜拜吧:-)  学习Linux设备驱动开发的过程中自然会遇到字符设备驱动.平台设备驱动.设备驱动模型和sysfs等相关概念和技术.对于初学者来说会非常困惑,甚至对Linux有一定基础的工程师而言,能够较好理解这些相关技术也相对不错了.要深刻理解其中的原理需要非常熟悉设备驱动相关的框架和模型代码.网络上有关这些技术的文章不少,但多是对其中的某一点进行阐述,很难找到对这些技术进行比较和关联的分析.对于开发者而言,能够熟悉某一点并分享出来已很难得,但对于专注传授技术和经验给

[kernel]字符设备驱动、平台设备驱动、设备驱动模型、sysfs几者之间的比较和关联

转自:http://www.2cto.com/kf/201510/444943.html Linux驱动开发经验总结,绝对干货! 学习Linux设备驱动开发的过程中自然会遇到字符设备驱动.平台设备驱动.设备驱动模型和sysfs等相关概念和技术.对于初学者来说会非常困惑,甚至对Linux有一定基础的工程师而言,能够较好理解这些相关技术也相对不错了.要深刻理解其中的原理需要非常熟悉设备驱动相关的框架和模型代码.网络上有关这些技术的文章不少,但多是对其中的某一点进行阐述,很难找到对这些技术进行比较和关

块设备驱动之NAND FLASH驱动程序

转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25240909 一.框架总结 二.硬件原理 相比于nor flash,我们可以清楚的看出引脚少了很多,主要是输入输出引脚进行了复用.现在我说下各引脚的用途. a.LDATA0~LDATA7这8个引脚为输入输出引脚.命令.地址.数据的传输都是由这8个引脚实现的(引脚复用,节约引脚). b.RnB:此引脚用来判忙.因为命令.数据.地址发出去和收到时候不能立刻就完成,需要一个时间.此

块设备驱动之NOR FLASH驱动

转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25240947 一.硬件原理 从原理图中我们能看到NOR FLASH有地址线,有数据线,能向内存一样读,不能向内存一样写(要发出某些命令).这也使得NOR的数据非常可靠,所以一般用来存储bootloader.当然现在手机上都只有nand flash了,节约成本嘛.下节我会带大家去分析nand flash驱动,并进行总结. 二.驱动程序 /* * 参考 drivers\mtd\m

块设备驱动程序设计

一.块设备简介 1.块设备 块设备将数据存储在固定大小的块中,每个块的大小通常在512字节到32768字节之间.磁盘.SD卡都是常见的块设备. 2.块设备VS字符设备 # 块设备和字符设备最大的区别在于读写数据的基本单元不同.块设备读写数据的基本单元为块,例如磁盘通常为一个sector,而字符设备的基本单元为字节. # 块设备能够随机访问,而字符设备则只能顺序访问. 块设备体系架构: VFS是对各种具体文件系统的一种封装,为用户程序访问文件提供统一的接口. Disk Cache 当用户发起文件访

块设备驱动架构分析

1. 块设备概念:块设备是指只能以块为单位进行访问的设备,块的大小一般是512个字节的整数倍.常见的块设备包括硬件,SD卡,光盘等.</span> 上边是通过一个编写好的块设备驱动,然后安装块设备驱动以及一些相关操作来体会块设备驱动!(此处省略) 2. 块设备驱动的系统架构 2.1 系统架构---VFS VFS是对各种具体文件系统的一种封装,用户程序访问文件提供统一的接口. 2.2 系统架构---Cache 当用户发起文件访问请求的时候,首先回到Disk Cache中寻址文件是否被缓存了,如果

linux块设备驱动---程序设计(转)

块设备驱动注册与注销 块设备驱动中的第1个工作通常是注册它们自己到内核,完成这个任务的函数是 register_blkdev(),其原型为:int register_blkdev(unsigned int major, const char *name); major 参数是块设备要使用的主设备号,name为设备名,它会在/proc/devices中被显示. 如果major为0,内核会自动分配一个新的主设备号register_blkdev()函数的返回值就是这个主设备号.如果返回1个负值,表明发

块设备驱动框架分析(二)

参考:块设备驱动之一  块设备驱动之二  块设备驱动之三 总结上一篇的块设备驱动的步骤: 1. 分配gendisk: alloc_disk static struct gendisk * ramblock_disk = alloc_disk(16); /* 次设备号个数: 分区个数+1 */2. 设置2.1 分配/设置队列: // 它提供读写能力static struct request_queue  * ramblock_queue = blk_init_queue(do_ramblock_r