- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 (第2课第1.1.7节)myuvc(5th)
#include #include #include #include #include #include #include #include #include #include static int myuvc_probe(struct usb_interface *intf, const struct usb_device_id *id)
2015-09-26 20:34:45 280
原创 (第2课第1.1.7节)myuvc(4th)
#include #include #include #include #include #include #include #include #include #include static int myuvc_probe(struct usb_interface *intf, const struct usb_device_id *id)
2015-09-26 20:33:12 331
原创 (第2课第1.1.7节)myuvc(3th)
#include #include #include #include #include #include #include #include #include #include static int myuvc_probe(struct usb_interface *intf, const struct usb_device_id *id)
2015-09-26 20:31:15 261
原创 (第2课第1.1.7节)myuvc(2th)
#include #include #include #include #include #include #include #include #include #include static int myuvc_probe(struct usb_interface *intf, const struct usb_device_id *id)
2015-09-26 20:29:45 253
原创 (第2课第1.1.7节)myuvc(1th)
#include #include #include #include #include #include #include #include #include #include static int myuvc_probe(struct usb_interface *intf, const struct usb_device_id *id)
2015-09-26 20:27:50 321
原创 \第2课第1.1.4节文档和图片
一. V4L2框架: video for linux version 2虚拟视频驱动vivi.c分析:1.分配video_device2.设置3.注册:video_register_devicevivi_init vivi_create_instance v4l2_device_register // 不是主要, 只是用于初始化一些东西,比如
2015-09-26 20:21:42 261
原创 (第二课1.1.4节)myvivi(7th)
/* 仿照vivi.c */#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2015-09-26 20:15:40 383
原创 (第二课1.1.4节)myvivi(6th)
/* 仿照vivi.c */#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2015-09-26 20:11:45 355
原创 (第二课1.1.4节)myvivi(5th)
/* 仿照vivi.c */#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2015-09-26 20:08:08 278
原创 (第二课1.1.4节)myvivi(4th)
/* 仿照vivi.c */#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2015-09-26 20:04:52 388
原创 (第二课1.1.4节)myvivi(3th)
/* 仿照vivi.c */#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2015-09-26 20:01:55 308
原创 (第二课1.1.4节)myvivi(2th)
/* 仿照vivi.c */#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2015-09-26 19:59:23 357
原创 (第三期1.1.4节)myvivi(1th)
/* 仿照vivi.c */#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2015-09-26 19:56:46 545
原创 12th_usb(4th)
/* * drivers\hid\usbhid\usbmouse.c */#include #include #include #include #include #include static struct input_dev *uk_dev;static char *usb_buf;static dma_addr_t usb_buf_phys;
2015-09-26 19:48:08 317
原创 12th_usb(3th)
/* * drivers\hid\usbhid\usbmouse.c */#include #include #include #include #include #include static struct input_dev *uk_dev;static char *usb_buf;static dma_addr_t usb_buf_phys;
2015-09-26 19:46:35 295
原创 12th_usb(2th)
/* * drivers\hid\usbhid\usbmouse.c */#include #include #include #include #include #include static struct usb_device_id usbmouse_as_key_id_table [] = {{ USB_INTERFACE_INFO(USB_INT
2015-09-26 19:44:47 287
原创 12th_usb(1th)
/* * drivers\hid\usbhid\usbmouse.c */#include #include #include #include #include #include static struct usb_device_id usbmouse_as_key_id_table [] = {{ USB_INTERFACE_INFO(USB_INT
2015-09-26 19:42:34 297
原创 9th_led_bus_drv_dev
#include #include #include #include #include #include #include #include #include #include #include /* 分配/设置/注册一个platform_device */static struct resource led_resource[] = {
2015-09-26 19:40:43 396
原创 源码8th_buttons_input
/* 参考drivers\input\keyboard\gpio_keys.c */#include #include #include #include #include #include #include #include #include #include #include #include #include #include #i
2015-09-26 19:36:07 316
原创 源码7th_buttons_all
#include #include #include #include #include #include #include #include #include #include #include #include static struct class *sixthdrv_class;static struct class_device *
2015-09-26 19:33:08 407
原创 linux驱动结构
kobject ->kobject *parent ->kset ->struct list_head //指向了所包含的kobject的链表头 ->struct kobject kobj ->kobj_type ->void (*release) (struct kobject *k
2015-09-24 21:53:06 382
原创 C++学习笔记八
24、子对象》当一个类的成员时另一个类的对象时,该对象就为子对象。》子对象即是对象的成员》当类中出现了子对象(对象成员),该类的构造函数要包含对子对象的初始化, 通常采用成员初始化列表的方法来初始化子对象;#includeclass A {public:A(int i,int j) { A1 = i;A2 = j;}void Print() { cou
2015-09-24 21:50:38 389
原创 C++学习笔记七
23、(1).常指针char *const ptr1 = strptrl;>ptrl是一个常量指针,指向固定的地方。>ptrl = strptr2; 错误>*ptrl = "m"; 正确>ptr不可以更新>ptr所指向的变量可以更新;const char *ptr2 = strptrl;>ptrl是一个指向常量的指针;>ptrl = strptr2
2015-09-24 21:49:41 283
原创 C++学习笔记六
20、对象数组#includeclass DATE{public:DATE() { month=day=year=0;cout}DATE(int m,int d,int y){month = m;day = d;year = y;cout} ~DATE(){cout}void Print() {cout
2015-09-24 21:48:53 250
原创 C++学习笔记五
18、(1)对象指针做函数参数a.对象指针和对象引用b.数组c.常类型d.子对象和对对象优点:a.实现传址调用。可在被调用函数中改变调用函数的参数对象的值,实现函数之间的信息传递;b.使用对象指针实参仅将对象的地址值传递给形参,而不是进行副本的拷贝,这样可以提高运 行效率,减少时间开销;#includeclass M{public:M()
2015-09-24 21:48:17 362
原创 C++学习笔记四
15、友元函数1.为什么要引入友元函数? 在对某些成员函数多次调用时,由于参数的类型检查和安全性检查都需要时间开销,从而影响了程序的运行效率,引入友元后可以提高程序的运行效率;2.使用格式: a.是一种定义在类外部的【类】或【普通函数】,但需要在类体内进行说明(前面加 friend关键字) b.不是成员函数,但可以访问类中的私有成员。(重要!!!!)3.
2015-09-24 21:47:25 327
原创 C++学习笔记三
11、重载性1.构造函数能重载2.析构函数不能重载3.一般函数可以重载#includeclass M{public:M(int x,int y) { X = x; Y = y;}M(int x) { X = x;Y = x*x;}int add(int x,int y);int add(int x);int add();int Xout() {
2015-09-24 21:46:36 609
原创 C++学习笔记二
7、类的定义格式(续) >在类体中不允许对所定义的数据成员进行初始化: class TDate { public: .... private: int year(1998),month(4),day(9); }; >类中的数据成员的类型可以是任意的: 1.包括整型、浮点型、数组、指针和引用等; 2
2015-09-24 21:45:57 317
原创 C++学习笔记
1、二义性:在实参中注意不要使用带有副作用的运算符,此时可能造成二义性。 使用对参数求值顺序不同的编译器造成的二义性:add(++x,x+y) //自左至右 5 11 自右至左 5 10 注意:函数参数求值顺序与参数默认值补足顺序不同参数求值顺序:由编译器决定求值方向;参数默认值补足顺序:自左向右2、c++在函数定义时可以指定,一个或者
2015-09-24 21:44:37 334
原创 USB摄像头驱动3
USB描述符:usb设备有描述符在lsusb.c中的main函数中有。一个设备只有一个设备描述符。设备描述符都是通过设备插上就会储存到响应结构中。摄像头有两个VS和VC接口,会两次调用.probe两次,因为有两个接口。打印结构:myuvc_probe: cnt = 0 Device Descriptor:bLength 18.
2015-09-24 21:42:43 406
原创 USB摄像头驱动2
uvc_driver.c usb_register(&uvc_driver.driver) uvc_probe->uvc_register_chains ->uvc_register_terms->uvc_register_video ->vdev = video_device_alloc()->vdev->v4l2_dev = &dev->vdev;
2015-09-24 21:39:53 856
原创 USB摄像头驱动
1、构造一个usb_driver2、设置probe 2.1、分配video_device:video_device alloc2.2、设置.fops.ioctl_ops(里面需要设置11项)如果要内核提供缓冲区操作函数,还需要构造一个videobuf queue ops2.3、注册 :video_register_device id_table:表
2015-09-24 21:39:07 654
原创 USB鼠标驱动框架结构
usb总线驱动程序的框架: usb_bus_type | | usb_new_device usb_register | | usb_interface
2015-09-24 21:29:35 395
原创 jz2440下的input输入子系统
********************************************************************static const struct seq_operations input_devices_seq_ops static const struct file_operations input_devices_fileops static cons
2015-09-24 16:18:22 651
原创 jz2440的中断处理流程
linux下的中断处理,都是在asm_do_IRQ函数中: desc->handle_irq 上面有irq_desc[irq] = desc 在__irq_set_handler中设置了desc->handler_irq irq_desc[irq] {handle_irq = handle_edge_irq; chip = s3
2015-09-24 16:10:40 892
原创 jz2440的字符设备驱动
VFS根据设备类型、设备号来找到fops实现方法:在一个数组里面,以major为索引,找到fops后填充到数组中去。APP: open("/dev/xxx") read,write 属性 : c ,111———————————————————————— C 库————————————————————————
2015-09-24 16:07:18 612
原创 linux中断原理专题
Linux中断(interrupt)子系统之一:中断系统基本原理http://blog.csdn.net/droidphone/article/details/7445825Linux中断(interrupt)子系统之二:arch相关的硬件封装层
2015-09-23 21:48:45 295
原创 linux-3.4.2内核移植到jz2440
1.内核启动流程,据此配置内核(机器ID)1.1 修改Makefile1.2 选择默认配置1.3 make uImage步骤一:在UBOOT里:set machid 16a //smdk2440 mach-smdk2440.c或者se machid 7CF //MINI2440 mach-mini2440.c步骤二:arch/arm
2015-09-17 13:46:38 2386
原创 知识精华部分
*************************************************************************************************vivi_dev *dev //这个设备定义了vivi_dev摄像头驱动的结构体程序的思路:(1)最重要的是vivi_dev这个抽象出来的设备,即*dev。它其实定义了一个vivi虚拟摄像头设备,其
2015-09-10 17:07:21 398
原创 (视频)xawtv应用程序启动代码分析-----韦东山笔记
3. make4. sudo modprobe vivi sudo rmmod vivi sudo insmod ./vivi.ko5. ls /dev/video*6. xawtv -c /dev/videoX//3. ioctl(4, VIDIOC_G_FMT4. for() ioctl(4, VIDIOC_ENUM_F
2015-09-10 16:38:48 657
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人