USB存储设备SCSI连接胶合驱动程序开发指南

版权申诉
0 下载量 12 浏览量 更新于2024-10-08 收藏 8KB RAR 举报
资源摘要信息: "scsiglue.rar_glue_scsi" 知识点: 1. SCSI协议基础: SCSI(Small Computer System Interface,小型计算机系统接口)是一种用于计算机存储设备的高性能串行接口标准。它允许计算机与硬盘驱动器、扫描仪、打印机、CD-ROM驱动器、磁带驱动器和其他外设进行通信。SCSI标准在IT领域内广泛应用于服务器和工作站级别,因其高效的数据传输速度和稳定性而备受青睐。 2. USB大容量存储设备: USB大容量存储设备(USB Mass Storage Device)是指可以像硬盘或光盘驱动器那样使用的USB设备,例如U盘、移动硬盘、数码相机等。这类设备可以被操作系统识别为可移动存储介质,并且允许用户通过USB接口直接存储和检索数据。 3. SCSI连接胶合层(Glue Layer): 在操作系统驱动开发中,“胶合层”(Glue Layer)是指位于硬件抽象层和具体硬件设备驱动之间的一层软件,其目的是桥接二者之间的差异。在USB和SCSI设备交互的上下文中,SCSI胶合层允许USB设备以SCSI命令集的方式进行通信,即便底层通信是通过USB接口完成的。 4. SCSI胶合层驱动文件: scsiglue.c 和 scsiglue.h 是与驱动程序开发相关的两个文件,其中: - scsiglue.c 可能包含了胶合层驱动的实现代码,负责将USB设备提交的请求转换为SCSI命令。 - scsiglue.h 则可能是一个头文件,包含了胶合层驱动的接口定义、数据结构、宏定义等,供其他相关代码文件使用。 5. 设备驱动程序开发: 设备驱动程序位于操作系统内核与硬件设备之间,负责管理设备的输入输出操作,转换为操作系统可以理解的通用接口。在Linux内核开发中,USB和SCSI子系统的驱动程序都是重要的组成部分,需要了解内核API和设备模型。 6. USB Mass Storage Class驱动: USB Mass Storage Class(UMS)是USB设备类别之一,它定义了与USB存储设备通信的通用方法。UMS类驱动使得操作系统能够识别和处理各种不同的存储设备。 7. 内核源码结构: 在Linux内核的源码结构中,scsiglue.c 和 scsiglue.h 可能位于负责SCSI子系统的部分。了解内核源码的组织和层次可以帮助开发者更好地定位和理解驱动程序代码。 8. 头文件(.h)的重要性: 在C语言编程中,头文件定义了库函数或数据结构的接口,使得编译器在编译时能够知道库函数的调用方式。scsiglue.h 文件可能包含了一些用于胶合层操作的接口声明,对于理解scsiglue.c 文件中的代码逻辑至关重要。 9. 文件压缩格式: rar是一种常见的文件压缩格式,由WinRAR软件创建。压缩包通常用于减少文件大小,方便存储和传输。在这个场景下,scsiglue.rar 文件可能包含了scsiglue.c 和 scsiglue.h 文件的压缩形式。 10. 跨平台开发考虑: 在编写兼容多种操作系统的驱动程序时,需要考虑不同平台间接口和数据类型的差异。在scsiglue.c 和 scsiglue.h 中,可能需要使用特定的预处理指令和数据类型映射来确保代码能够在不同的操作系统环境下编译和运行。

06-01 03:22:44.935 W/ ( 0): ==20210817==> hub_port_init 1 #2 06-01 03:22:44.935 W/ ( 0): Plug in USB Port2 06-01 03:22:44.938 W/ ( 0): [GLUE]__Glue_PM_SetupEthernetWakeup Disable WOL!! 06-01 03:22:44.938 W/ ( 0): [GLUE]__Glue_PM_SetupEthernetWakeup (EEP_WOW = 0) _gi4PDWNCWifiWowState=1 !! 06-01 03:22:44.938 W/ ( 0): [GLUE]__Glue_PM_SetupEthernetWakeup (EEP_WOL = 0) !! 06-01 03:22:44.938 W/ ( 0): [GLUE]Disable WOW 06-01 03:22:44.938 W/ ( 0): [GLUE]Enable WOBT, _u8BtGpioNum = 13 , Polarity = 1 06-01 03:22:44.938 W/ ( 0): [GLUE]Enable WOEWBS, _u8EwbsGpioNum = 255 , Polarity = 1 06-01 03:22:44.938 W/ ( 0): get env pu8Env = ENABLE_WAKEUP 06-01 03:22:44.941 W/ ( 0): Get Value 0 06-01 03:22:44.941 W/ ( 0): [GLUE]__Glue_PM_SetupVoiceWakeup[2321] _bWovEnable is 0 06-01 03:22:44.941 W/ ( 0): [GLUE]__Glue_PM_UpdateWakeupConfig(2637) Force Enable IR&SAR PM Wakeup! . 06-01 03:22:44.941 W/ ( 0): [GLUE]Disable VGA PM Wakeup 06-01 03:22:44.941 W/ ( 0): [GLUE]Enable CEC PM Wakeup 06-01 03:22:44.941 W/ ( 0): [GLUE]Disable WOL PM Wakeup 06-01 03:22:44.941 W/ ( 0): [GLUE]Disable Voice Wakeup 06-01 03:22:44.941 W/ ( 0): [GLUE]u8PmWakeWowLanGpioNumber = 255 , Polarity = 255 06-01 03:22:44.941 W/ ( 0): [GLUE]u8PmWakeBtGpioNumber = 13 , Polarity = 1 06-01 03:22:44.941 W/ ( 0): [GLUE] u8PmWakeEwbsGpioNumber = 255 , Polarity = 1 06-01 03:22:44.941 W/ ( 0): [GLUE]__Glue_PM_ResetWakeupSource[3070] done. 06-01 03:22:44.941 W/ ( 0): [GLUE] __Glue_PM_SuspendClearFlag done 06-01 03:22:44.942 W/ ( 0): __Glue_PM_EWBSWakeunlock 翻译这顿log

2023-06-07 上传