IPU概述

2024-06-08 20:18
文章标签 概述 ipu

本文主要是介绍IPU概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IPU概述

(一)框架

首先来看看imx6q整体系统框架图,看看IPU位于整个SOC系统中的位置:

可以看出来,整个IPU挂接在AXIAHB总线上面,通过总线,它可以与ARM,VPU,GPU和RAM等模块通信。

另外,每个IPU有两个camera接口,如下所示:


通过LDB控制到LVDS屏,直接控制LCD屏,并且可以通过HDMI或者MIPI来显示。

对于IPU的作用,在下面的图表中解释了:


或者用下图来表示更清楚:

以上是IPU的整体框架部分,对于BSP来说,我们比较关心它的驱动层次框架,如下所示:

从这个框架中可以看出来,对于一般的V4L2子系统,会通过IPU来与硬件通信。

图中各个模块的作用:

(二)代码框架文件

内核版本:3.14.52
文件主要集中在:
…/drivers/mxc/ipu3/ 描述
ipu_device.c IPU tasks的操作等(IPU core driver)
ipu_common.c 底层的核心函数
ipu_capture.c 为ipu_common.c提供函数操作
ipu_disp.c IPU显示
ipu_ic.c IC的操作函数
ipu_param_mem.h CPMEM设置的头文件,操作函数
…/drivers/mxc/mipi/
mxc_mipi_csi2.c mipi摄像头的操作函数
…/drivers/media/platform/mxc/
capture/mxc_v4l2_capture.c 为应用程序提供open,ioctl等操作函数
capture/v4l2-int-device.c 子系统模块注册等操作函数
capture/ipu_prp_enc.c Pre-processing encoder驱动函数
capture/ipu_csi_enc.c CSI设备驱动操作函数
capture/ipu_still.c 静态图片捕获函数
capture/ipu_prp_vf_adc.c Pre-processing view finder (asynchronous)driver
capture/ipu_prp_vf_sdc.c Pre-processing view finder (synchronous foreground) driver
capture/ipu_fg_overlay_adc.c 前背景overlay异步驱动
capture/ipu_bg_overlay_sdb.c 后背景overlay同步驱动
capture/ov5640.c ov5640_mipi.c ov5640.c子系统驱动

(三) 分析步骤

从以下几点分析这个驱动:

  1. 概述
  2. master和slave的匹配过程
  3. mxc_v4l2_capture.c分析
    3.1 probe函数分析
    3.2 vidioc_int_* 类函数的调用过程
    3.3 应用程序中函数调用的底层执行流程
    3.4 mxc_v4l_open函数分析
    3.5 cam_data结构体详解
    3.6 mxc_v4l_ioctl函数分析
    3.7 ioctl函数中case的详细分析
    3.8 poll函数的详细分析
  4. ipu_common.c的分析
    4.0 ipu_soc,ipu_channel_t ,ipu_channel_params_t结构体详解
    4.1 ipu_common.c分析—入口函数及probe函数分析
    4.2 ipu_common.c分析—ipu_init_channel函数的详细分析
    4.3 ipu_common.c分析—ipu_init_channel_buffer函数的详细分析
    4.4 ipu_param_mem.h头文件分析
    4.5 ipu_request_irq函数详细分析
    4.6 ipu_enable_channel函数详细分析
    4.7 ipu_capture.c分析
  5. 举例说明,通过mxc_v4l2_capture.c应用程序中的调用过程来一步一步分析
    5.1 mxc_v4l2_capture.c应用程序追踪分析
    5.2 应用程序和驱动程序中buffer的传输流程
  6. 子系统的分析
    6.1 ipu_prp_enc.c详细分析
    6.2 ipu_csi_enc.c详细分析
    6.3 ipu_still.c详细分析
    6.4 ipu_ic.c详细分析
  7. ipu_device.c的分析
    7.1 ipu_device.c分析(一)—流程分析
    7.2 ipu_device.c分析(二)—具体函数分析
  8. 各个模块的分析
    8.1 子模块分析之IDMAC
    8.2 子模块分析之CSI
    8.3 子模块分析之SMFC
    8.4 子模块分析之IC

8.5 子模块分析之VDIC

8.6 子模块分析之CM
9. dts文件分析—以ov5640为例,修改dts文件使ov5640使用第二个IPU
10. 对ipu_init_channel的理解,为以后添加channel做准备
11. ov5640_mipi.c分析

这篇关于IPU概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043203

相关文章

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Java 多线程概述

多线程技术概述   1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间。线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换、并发执行,一个进程最少有一个线程,线程实际数是在进程基础之上的进一步划分,一个进程启动之后,进程之中的若干执行路径又可以划分成若干个线程 2.线程的调度 分时调度:所有线程轮流使用CPU的使用权,平均分配时间抢占式调度

java集合的概述

集合就是一个容器,我们可以把多个对象放入的容器中。就像水杯(假设容量可以不断扩大)一样,你可以往水杯中不断地添加水,既然是水杯,你就不能往里添加沙子,也就是说集合中添加的对象必须是同一个类型的(引用类型,而不能是基本类型)。 看到集合的介绍会让我们的想起数组,那么集合和数组有什么区别呢? 首先,数组的大小是固定的,而集合理论上大小是不限的。 其次,数组既可以存储基本数据类型的数据,也可以存储

【CSS in Depth 2 精译_023】第四章概述 + 4.1 Flexbox 布局的基本原理

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 第三章 文档流与盒模型(已

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

Unity Adressables 使用说明(一)概述

使用 Adressables 组织管理 Asset Addressables 包基于 Unity 的 AssetBundles 系统,并提供了一个用户界面来管理您的 AssetBundles。当您使一个资源可寻址(Addressable)时,您可以使用该资源的地址从任何地方加载它。无论资源是在本地应用程序中可用还是存储在远程内容分发网络上,Addressable 系统都会定位并返回该资源。 您

Flutter 中的低功耗蓝牙概述

随着智能设备数量的增加,控制这些设备的需求也在增加。对于多种使用情况,期望设备在需要进行控制的同时连接到互联网会受到很大限制,因此是不可行的。在这些情况下,使用低功耗蓝牙(也称为 Bluetooth LE 或 BLE)似乎是最佳选择,因为它功耗低,在我们的手机中无处不在,而且无需连接到更广泛的网络。因此,蓝牙应用程序的需求也在不断增长。 通过阅读本文,您将了解如何开始在 Flutter 中开

类和对象的概述以及this指针的应用

定义 类是一种用户自定义的复合数据类型,即包括表达属性的成员变量,也包括表达行为的成员函数                                                                                                                                         类可用于表达那些不能直接与内置基