嵌入式Linux的DiskOnChip设备驱动开发

http://tech.ddvip.com   2007年03月12日    社区交流

本文详细介绍嵌入式Linux的DiskOnChip设备驱动开发

  构建内核对DOC块设备的支持:

  (1)设备的设备名称和主设备号

  必须找一个还没有被使用的主设备号,分配给自己的新设备。假设主设备号为30(在2.0.34的内核中还没有以30作为主设备号的块设备),则需要在include/Linux/major.h中加入如下句:

  71#define MY_MAJOR 30

  这样可以通过MY_MAJOR来确定设备为新设备,保证通用性。

  (2)确定编写需要的file_operations中的操作函数

  

  由于使用了高速缓存,块设备驱动程序就不需要包含自己的read(),write()和fsync()函数,但必须使用自己的open(),release()和ioctl()函数,这些函数的作用和字符设备的相应函数类似。

  (3)确定编写需要的输入/输出函数

  

  值得注意的是这2个函数和字符设备中的myread(),mywrite()函数不同。

  (4)确定编写需要的请求处理函数

  在块设备驱动程序中,不带中断服务子程序的请求处理函数是简单的,典型的格式如下:

  

  

  实际上,一个真正的块设备一般不可能没有中断服务子程序,另外设备驱动程序是在系统调用中被调用的,这时由内核程序控制CPU,因此不能抢占,只能自愿放弃;因此驱动程序必须调用sleep_on()函数,释放对CPU的占用;在中断服务子程序将所需的数据复制到内核内存后,再由他来发出wake_up()调用。

  5 结 语

  DOC作为一种新型闪存电子盘,以盘体体积小、功耗低和带硬盘仿真功能等特点,在一些对电源功耗要求苛刻、空间狭小的嵌入式场合,有他很独到的优势;加之目前生活自动化(LA)、智能设备终端等领域的技术日趋成熟,在嵌入式操作系统应用日益广泛的今天,嵌入式操作系统对此类电子盘设备的支持日益完善。本文结合嵌入式Linux系统介绍和分析了其下DOC2000的设备驱动和文件系统的支持,可广泛用于工业控制系统、网络视频以及POS机系统储存中,具有实用的价值。

来源:现代电子技术    作者:徐雪松    责编:豆豆技术应用

正在加载评论...