camera 内存相关
各种内存组织,以及相关实现
老让说camera
这个作者很懒,什么都没留下…
展开
-
camera内存之---dma_api简述(4)
Camera 内存相关知识,真的绕不开dma相关接口。这里自我总结一下。下面只是个人的理解,方便自己以后修正:一般isp内部会有单向的dma,也就是摄像头数据搬运到ddr,dma一般需求连续物理内存,那么dma api会提供内存分配,映射的接口。我们可以把它看做一个框架接口,具体实现这些接口对上不用关心。对下就可以有多种实现,比如cma,单个设备预留内存,iommu指向的总线内存,以及早期用到的ion内存。Dma api 对下也提供了相关接口用于实现不同种类的操作函数。1.简单说明几种内存地址Pa:原创 2020-08-12 22:41:16 · 1968 阅读 · 0 评论 -
camera内存之---gralloc_buffer(3)
因为camera要申请gralloc buf的缘故,打算仔细看看grallocbuf的原理,其实之前大概知道一些,这次梳理一下。因为部分接口封成了库,所以也没有去看相关代码,但是可以理解概念,知道gralloc是什么,怎么用就可以了。Gralloc封装了用户层对帧缓冲区的操作接口,他可以申请图形缓冲区,然后将个缓冲区映射到应用程序上来,接下来就可以绘制界面。主要是用于gpu和fb的操作,gpu用于分配图形缓冲,fb用于渲染帧缓冲。但是rk从安卓7.1之后实现drm驱动,fb部分被删除了,应该是底层包含原创 2020-08-12 22:30:16 · 2322 阅读 · 1 评论 -
camera内存之---cma模块(2)
先解释下cmaCMA,Contiguous Memory Allocator,是内存管理中的一个模块,用于分配连续物理内存。主要是针对多媒体,camera这种需要分配大段连续物理内存的模块使用(camera需要用到dma,dma正常只支持物理连续内存搬运)。Cma还可以与dma子系统继承在一起,使用dma的设备驱动只需要访问dma相关api即可。先看下cma结构体用于描述一个cmastruct cma { unsigned long base_pfn;//物理地址起始页帧号 unsign原创 2020-08-11 23:15:49 · 1098 阅读 · 0 评论 -
camera内存之---iommu使用(1)
先说下iommu几个名词iommu_group:代表共享同一个streamid的一组device,也就是多个device可以在同个groupdomain :代表一个具体的设备使用iommu的详细specKernel has DMA mapping API fromorigin. ARM defines IOMMU which can be used to connect scattered physicalmemory as a continuous region for devices which原创 2020-08-10 23:17:43 · 3549 阅读 · 1 评论