嵌入式设备和应用中对它进行原型模拟是有意义的。StrongARM处理器的Linux内核提供现成的USB设备驱动专工于此,称作usb-char。
在希望与USB主机通信时,Linux USB设备应用程序只是打开对其usb-char设备节点(字符型,最大10,最小240)的连接,然后开始读写数据即可。read()和 write()操作将一直返回错误值直到USB主机连上为止。一旦连接建立和枚举完成,便开始通信,就像USB是一种点对点串行端口一样。
由于这种USB数据传递方法十分直接且实用,因此usb-char设备得到高效使用。它还为其它USB通信方法的实现提供了重要的参照基准。
usb-char的实际动作从usbc_open()功能开始,部分内容示于列表1中。
列表1:打开USB上的串行连接
static int usbc_open(struct inode *pInode, struct file *pFile)
{
int retval = 0;
/* start usb core */
sa1100_usb_open(_sb-char?;
/* allocate memory for in-transit USB packets */
 页码:[1] [2] [3] [4] [5] [6] [7] [8] 第4页、共8页 |