搭建一个和linux开发者知识共享和学习的平台
发布时间:2022-09-30 14:21:46
按照V4L2标准,将一个数据流设备抽象成一个videoX节点,从属的子设备对应着各自的v4l2_subdev实现,并通过media controller进行统一管理。 a) 打开video设备在需要进行视频数据流的操作之前,首先要通过标准的字符设备操作接口open方法来打开一个video设备,并且将返回的字符设备句柄存在本地,之.........【阅读全文】
发布时间:2022-09-29 16:59:40
urb=usb_alloc_urb(npackets,GFP_KERNEL);urb->dev=field_uvc_udev; urb->context=NULL; urb->pipe=usb_rcvisocpipe(field_uvc_udev,field_uvc_bEndpointAddress); urb->transfer_flags=URB_ISO_ASAP|URB_NO_TRANSFER_DMA_MAP; urb->interval=1; urb->transfer_buffer=field_uvc_queue.urb_buffer[i]; urb->transfe.........【阅读全文】
发布时间:2022-09-15 11:12:00
linux内核对外部中断的处理分成两大部分HARDIRQ和SOFTIRQ,HARDIRQ在执行时处理器的中断是关闭的,耗时的工作延迟到SOFTIRQ中执行。因此内核为驱动提供了一个基于SOFTIRQ的任务延迟的实现机制tasklet。 tasklet是内核定义的几种softirq之一,根据优先级不同,内核将tasklet分成两种,在softirq.........【阅读全文】
发布时间:2022-09-07 14:09:30
对于一个特定的irq_desc[irq],其上的中断处理分为两级,第一级是调用irq_desc[irq].handle_irq,第二级是设备特定的中断处理例程ISR,在handle_irq的内部通过irq_desc[irq].action->handler调用。 第一级函数在平台初始化期间被安装到irq_desc数组中,第二级函数的注册发生在设备驱动程序调用.........【阅读全文】