Linux開發十四_ohci驅動

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源碼

 

發佈了84 篇原創文章 · 獲贊 22 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章