官方Linux固件没有支持DMA?/dev/dma_heap/没有这个目录
用QT做一个播放RTSP的应用,MPP/RGA然后显示。用mallc感觉CPU占用还是高了。按照firefly官方wiki说明,打算用dma_buf_alloc,但是在/dev下没有找到dma_heap目录。
请问该如何处理?如果是要重新编译内核的话,该怎么配置?
15.3. 申请内存空间的三种方法
[*]molloc
[*]函数原型:void *malloc(size_t size)
[*]优点:简单,方便,兼容性好
[*]缺点:速度慢
[*]dma_buf_alloc
[*]函数原型: int dma_buf_alloc(const char *path, size_t size, int *fd, void **va)
[*]优点:内存共享,共享节点在/dev/dma_heap/* 速度快
[*]缺点:只能申请4G以下的内存
[*]drm_buf_alloc
[*]函数原型:void *drm_buf_alloc(int TexWidth, int TexHeight, int bpp, int *fd, int *handle, size_t *actual_size, int flags=0)
[*]优点:内存共享,速度快
[*]缺点:需要额外安装libdrm库
页:
[1]