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源码
- Linux开发十四_ohci驱动
- Window XP驱动开发(二十四)虚拟串口设备驱动
- Linux开发二十四_mplayer移植
- Window XP驱动开发(二十四) 电源管理
- linux 驱动开发
- Linux驱动开发
- linux驱动开发
- LINUX驱动开发
- Linux驱动开发要点
- Linux液晶屏驱动开发
- Linux设备驱动开发
- Linux液晶屏驱动开发
- Linux驱动开发资源
- Linux 驱动开发方法论
- Linux 驱动开发
- linux驱动开发学习
- ARM-Linux驱动开发
- linux驱动开发学习
- C语言可变参数列表详述及实现printf函数
- (!、!!)与(空字符、undefined、0、"0")的运算
- 倒霉的猪:关于五个维度的思考
- Ruby--块(Block)与模块(Module)
- The 14th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple(A+B+C+D)
- Linux开发十四_ohci驱动
- ZOJ 1700 Falling Leaves 二叉搜索树+前序遍历
- js实现选项卡切换
- K Best POJ
- rem布局,页面加载时先放大一下再回复正常
- java基础总结23-java线程1
- strtok
- java基础总结24-java线程2(线程同步)
- java基础总结25-java网络编程