linux访问usb设备(linux usb从设备)-编程知识网

linux usb是属于块设备还是字符设备?

linux usb是属于块设备。

Linux按照信息组织特征将设备分为三类,分别是

字符设备:以字符为单位发送或接收一个字符流,而不考虑任何块结构。字符设备是不可寻址的,也没有寻道操作。例如打印机,网络接口,鼠标。

块设备:把信息存储在固定大小的块中,每个块有自己的地址。通常块的大小在512字节和65536字节之间。所有传输以一个或多个完整的(连续的)块为单位。基本特征:每个块都能独立于其他块而读写。例如硬盘,蓝光光盘,USB盘。

网络设备:通过套接字完成通信

块设备和字符设备的区别:

字符设备只能顺序读取,块设备可以随机读取;

块设备通过系统缓存进行读取,不是直接和物理磁盘读取。字符设备可以直接读取物理磁盘,不经过系统缓存。在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生,而块设备利用一块系统内存作为缓冲区,当用户进程对设备请求能满足用户的要求时,就返回请求的数据,如果不能就调用请求函数来进行实际的I/O操作。因此,块设备主要是针对磁盘等慢速设备设计的,以免消耗过多的CPU时间来等待;

在操作系统设备管理功能中设备按照独占性设备,共享性设备,虚拟设备进行设备分配 而独占型设备包含所有的字符设备,共享型设备包含所有的块设备。

关于怎样在ARM嵌入Linux操作系统上面实现USB与PC通信?

和两台计算机互相访问相同,不过你需要把打算在ARM上面的程序的编写和编译都要做成arm可以运行的才行。

一般Linux不使用汇编的话,基本上C语言是源代码级兼容的,你编译为ARM程序就行了。