OK6410 usb驱动分析

ok6410usb 驱动框架分析

 

目前为止,写驱动嘛,虽然我只是菜鸟,但还是直到一些常识,故我从常识开始分析,

 

一,USB控制器,也就时主机测,看待设备,是一个设备 -》配置 -》接口 -》端点的顺序来配置usb并和usb设备通信的

 

二,在usb设备内部运行着固件程序,来对usb控制器发送过来的信息进行解包,并执行相应的操作(不确定这句话的正确性,但觉得是对的)

 

三,在usb设备内部存储着设备的配置信息,比如有多少个配置了,配置有多少个接口,接口有多少个端点,还有一些标识符(厂商号,用的什么协议之类的用来表明我是个什么子的设备,我应该和哪个驱动匹配又或者加载什么样的驱动)正是通过了这些usb设备内部存储的信息,我们才能配置usb驱动

 

越来越感觉,想实现一个驱动,即使是我这样,先凑出来的也一定要对协议和原理了解,这俩周真的是举步维艰

 

下面分析usb-skeleton驱动

 

 

static const struct file_operations skel_fops = { //usb的操作
	.owner =	THIS_MODULE,
	.read =		skel_read,
	.write =	skel_write,
	.open =		skel_open,
	.release =	skel_release,
	.flush =	skel_flush,
	.llseek =	noop_llseek,
};

/*
 * usb class driver info in order to get a minor number from the usb core,
 * and to have the device registered with the driver core
 */
static struct usb_class_driver skel_class = { //初始化usb_class_diver 用于配置usb的操作
	.name =		"skel%d",
	.fops =		&skel_fops,
	.minor_base =	USB_SKEL_MINOR_BASE,
};

static int skel_probe(struct usb_interface *interface,
		      const struct usb_device_id *id) //在hub探测到新设备添加后,并探测到其对应我们的id_table后,运行probe,其实从这里也可以间接的分析出,设备内部自己存储了自己由几个配置,几个接口,几
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值