Linux开发十四_ohci驱动

来源:互联网 发布:知乎周刊纸质版 编辑:程序博客网 时间:2024/06/15 22:19

Linux开发十四

ohci驱动

象棋小子    1048272975

usb接口简单、即插即用、支持热插拔等优点,在各种场合已经大量使用,在嵌入式系统中,也常常需要通过usb外接u盘、键盘、鼠标等设备。Linux内核已经支持usb主机控制协议ohci,可以支持u盘、键盘、鼠标等usb设备。

1. ohci设备

ohci设备包含了名字、独有的资源等等一些驱动程序的硬件或自定义信息。通过platform_add_devices(platform_device_register)函数将定义的平台设备注册到内核中,用于匹配设备驱动。

内核在drivers\usb\host\ohci-s3c2410.c中实现了s3c2416 ohci驱动, ohci设备的平台代码如下。

#ifdef CONFIG_S3C_DEV_USB_HOST

static struct resources3c_usb_resource[] = {

       [0]= DEFINE_RES_MEM(S3C_PA_USBHOST, SZ_256),

       [1]= DEFINE_RES_IRQ(IRQ_USBH),

};

 

struct platform_device s3c_device_ohci ={

       .name            = "s3c2410-ohci",

       .id          = -1,

       .num_resources    = ARRAY_SIZE(s3c_usb_resource),

       .resource       = s3c_usb_resource,

       .dev        = {

              .dma_mask          = &samsung_device_dma_mask,

              .coherent_dma_mask  = DMA_BIT_MASK(32),

       }

};

#endif /* CONFIG_S3C_DEV_USB_HOST */

在static struct platform_device *home2416_devices[]板级平台设备列表中加入&s3c_device_ohci,使ohci设备能够注册到内核中。

2. 内核配置

Linux配置支持ohci设备驱动,选中Device Drivers->USB support->OHCIsupport for Samsung S3C24xx/S3C64xx Soc series,并且选中USB Mass Storage support,用于支持u盘。

u盘使用fat32文件系统,配置内核支持vfat文件系统。File systems->DOS/FAT/NT Filesystems->VFAT (Windows-95) fssupport。

3. u盘测试

cat /proc/partitions可以知道u盘的主设备号为8,次设备号为0,在/dev目录中创建sda设备文件。

mknod /dev/sda b 8 0

先对sd卡格式化成vfat文件系统。

mkfs.vfat /dev/sda

挂载sda设备。

mkdir /mnt/udisk

mount /dev/sda /mnt/udisk

对u盘读写文件。

echo This is file test. > /mnt/udisk/test.txt

cat /mnt/udisk/test.txt

4. 附录

https://pan.baidu.com/s/1slczwhJ

bootloader源码以及使用说明

https://pan.baidu.com/s/1eRDJtNs

Qt5.8官网源码

https://pan.baidu.com/s/1nuGmSqt

本系列例程的根文件系统

https://pan.baidu.com/s/1i5btLGT

opev3.2.0官网源码

https://pan.baidu.com/s/1pLpuHw3

yaffs官网源码 

https://pan.baidu.com/s/1bpkZynt

busybox-1.26.2官网源码

https://pan.baidu.com/s/1i4EtjfR

tslib官网源码

https://pan.baidu.com/s/1i5MGRhb

mplayer-1.3.0官网源码

https://pan.baidu.com/s/1sl0fXlr

基于S3C2416修改的linux-4.10.10源码

 

0 0
原创粉丝点击