Chinaunix首页 | 论坛 | 博客
  • 博客访问: 77917
  • 博文数量: 66
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 31
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-14 23:13
文章分类

全部博文(66)

文章存档

2015年(38)

2014年(28)

分类: 嵌入式

2015-02-25 17:35:20

USB核功能:实现USB协议的功能
选择我们开发板的系统
 [*] System support
    ARM system type (Samsung S5PC100)
   

<1> Mass storage:是USB协议中的一部分, 是大容量存储器或者海量存储器的意思。我们的U盘就是利用的这个协议开发和制作的。

 如何配置内核使其支持Mass storage
 开发板支持读U盘的实验
 1、首先配置其支持设备的热插拔
 General setup-->
    [*]Configure standard kernel features(for small systems)-->
      [*]Support for hot-pluggable devices
 2、U盘默认是一个SCSI的设备,这个我们也要选上
 Device Drivers-->
    <*>SCSI device support
    <*>SCSI disk support
    <*>SCSI generic support
 3、选择USB的支持
 Device Drivers-->
   USB support-->
     <*>Support for Host-side USB
     [*]USB device filesystem
     <*>OHCI HCD<主控制器驱动> support
     <*>USB Mass Storage support
     [*]USB Monitor
 4、文件系统的支持<因为我们的U盘可能是采用Windows的格式化支持,所以我们要配置>
 File systems-->
   DOS/FAT/NT Filesystems-->
     <*>MSDOS fs support
     <*>VFAT (Windows-95)fs support
     (936)Default codepage for FAT
     (cp936)Default iocharset for FAT
   Pattion Types-->
     [*]PC BIOS (MSDOS partition tables)support
   Native Language Support-->
     <*>Simplified Chinese charset(CP936,GB2312)
     <*>NLS UTF8
 5、重新编译内核,烧写内核,开机启动,插入U盘看效果
   最后一行显示的是U盘的名字,假设名字是uba
 6、mount /dev/uba /mnt/
 7、umount /mnt/
 8、拔掉U盘后也可以看到打印的信息

<2> USB HID:
  是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。
 不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。
 配置内核使其支持HID
 1、Device Drivers-->
   主控制器Host驱动
   [*] USB support-->
     <*> OHCI HCD support <开发板是主控制器,我们的开发板上面没有USB2.0的控制芯片>
     <*> Support for Host-side USB
   Hub驱动
   [*] HID Devices-->
     <*> USB Human Interface Device (full HID) support
 2、编译内核
 3、在开发板上面插上鼠标 ls /dev/mouse1 cat /dev/mouse1 移动鼠标查看数据

<3> RNDIS :是一种基于热插拔的接口标准,Remote Network Driver Interface Specification,
    既是RemoteNDIS,既是远程网络驱动接口规范。基于USB实现RNDIS实际上就是TCP/IP over USB,
    就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡。
  将开发板制作成一个从机,下面选择的是设备控制器的驱动,我们将我们的开发板模拟成一个网卡
  1、Device Drivers-->
    [*] USB support-->
      <*> USB Gadget Support-->
        USB Peripheral Controller ((默认的配置))
  2、选择Gadget驱动
     <*>USB Gadget Support-->
        USB Gadget Drivers
        Ethernet Gadget (with CDC Ethernet support)
  3、编译内核
  4、将内核拷进tftp服务器,将drivers/usb/gadget/g_ether.ko拷进根文件系统的里面
  5、将模块安装上去
 
<4> CDC/ACM:将我们的USB模拟成一个串口
  1、Device Drivers-->
    [*] USB support-->
      <*> USB Modem (CDC ACM) support
  2、选择Gadget驱动
    [*] USB support-->
     <*>USB Gadget Support-->
        USB Gadget Drivers
       去掉上面的网卡的配置
        Serial Gadget (with CDC ACM and CDC OBEX support)
  3、编译内核
  4、将内核拷进tftp服务器,将drivers/usb/gadget/g_serial.ko拷进根文件系统的里面
  5、将模块安装上去
  6、ls /dev/ttyGS0新产生的设备文件
阅读(2017) | 评论(0) | 转发(0) |
0

上一篇:poll和select机制

下一篇:Kobject模型

给主人留下些什么吧!~~