IMX6Q MXC
文章平均质量分 86
龙图腾
驱动工程师真心喜欢学习真心喜欢技术
展开
-
IPU概述
1. IPU概述(一)框架首先来看看imx6q整体系统框架图,看看IPU位于整个SOC系统中的位置:可以看出来,整个IPU挂接在AXI与AHB总线上面,通过总线,它可以与ARM,VPU,GPU和RAM等模块通信。另外,每个IPU有两个camera接口,如下所示:通过LDB控制到LVDS屏,直接控制LCD屏,并且可以通过HDMI或者MIPI来显示。对于IPU的作用,在下面的图表中解释了:或者用下图来...转载 2018-06-12 09:28:52 · 7081 阅读 · 0 评论 -
3.8 poll函数的详细分析
下面看看poll函数,个人感觉这个poll函数还是比较重要的:[cpp] view plain copystatic unsigned int mxc_poll(struct file *file, struct poll_table_struct *wait) { struct video_device *dev = video_devdata(file); cam_...转载 2018-06-12 09:36:30 · 311 阅读 · 0 评论 -
3.7 ioctl函数中case的详细分析
在分析应用程序的ioctl调用的时候,内核中将这些ioctl的调用信息打印出来,但是打印的是unsignedint类型的16进制值,这样,如果想要分析这些ioctl调用的话,就需要将这些ioctl调用的16进制值计算出来。每一个ioctl调用都有如下的形式:intioctl(int fd, int cmd, …);可以看出来,这个cmd是int类型的,它里面包含一定的信息,下面就来分析这个cmd参...转载 2018-06-12 09:35:45 · 277 阅读 · 0 评论 -
3.6 mxc_v4l_ioctl函数分析
下面分析mxc_v4l_ioctl函数:[cpp] view plain copystatic long mxc_v4l_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { pr_debug("In MVC:mxc_v4l_ioctl\n"); return vid...转载 2018-06-12 09:34:59 · 467 阅读 · 0 评论 -
3.5 cam_data结构体详解
[cpp] view plain copytypedef struct _cam_data { struct video_device *video_dev; int device_type; /* semaphore guard against SMP multithreading */ struct semaphore busy_lock; ...转载 2018-06-12 09:33:50 · 679 阅读 · 1 评论 -
3.4 mxc_v4l_open函数分析
下面就来分析这个mxc_v4l_open函数:[html] view plain copystatic int mxc_v4l_open(struct file *file) { struct v4l2_ifparm ifparm; struct v4l2_format cam_fmt; ipu_csi_signal_cfg_t csi_param; ...转载 2018-06-12 09:32:56 · 451 阅读 · 0 评论 -
3.3 应用程序中函数调用的底层执行流程
在3.1节分析的probe函数中,它的核心函数video_register_device的part3中(v4l2-core/v4l2-dev.c文件),通过vdev->cdev->ops= &v4l2_fops;将字符设备的结构体cdev的file_operations函数集指向了v4l2_fops,如下所示:[cpp] view plain copystatic const ...转载 2018-06-12 09:32:05 · 386 阅读 · 0 评论 -
3.2 vidioc_int_* 类函数的调用过程
在《2.master和slave的匹配过程》中我们分析了master设备和slave设备的匹配过程,但是在操作过程中,如果想要获取slave设备的一些信息,该如何获得呢?你也许会说,只需要定义一个函数,去slave设备文件中获取即可,但是,如果一个驱动会支持好几个slave设备,那么对于不同的slave设备,驱动中都需要为它们定义一个功能相似的函数。如果是多master对应多slave设备的情况下...转载 2018-06-12 09:31:26 · 525 阅读 · 0 评论 -
3.1 mxc_v4l2_capture.c分析---probe函数分析
mxc_v4l2_capture.c函数提供了应用程序中的一些接口函数,所以从分析它开始:(一)看一个驱动程序从它的入口函数开始:[cpp] view plain copymodule_init(camera_init); static __init int camera_init(void) { u8 err = 0; pr_debug("In MVC:ca...转载 2018-06-12 09:30:41 · 1294 阅读 · 0 评论 -
2. master和slave的匹配过程
(一)master的注册过程1. 首先来看看master的注册过程,在mxc_v4l2_capture.c文件中,从module_init(camera_init)函数开始,在camera_init函数中通过err= platform_driver_register(&mxc_v4l2_driver)来将mxc_v4l2_driver这个驱动注册到platform平台上面,如果有匹配的设备...转载 2018-06-12 09:29:36 · 1236 阅读 · 0 评论 -
4.imx6 IPU代码详细分析
4.0 ipu_soc,ipu_channel_t ,ipu_channel_params_t结构体详解1.ipu_soc结构体:struct ipu_soc { unsigned int id; //ipu的ID号 unsigned int devtype; //ipu的一些信息,包含cm,ic等模块的地址偏移值 bool online; //表示这个ipu是否正在使用中 /*clk*/ ...转载 2018-07-02 17:40:27 · 7720 阅读 · 0 评论