海思IVE函数使用-1 (DMA使用 HI_MPI_IVE_DMA)
来源:互联网 发布:go高级编程书籍 编辑:程序博客网 时间:2024/06/06 12:50
海思IVE函数使用1 (DMA使用 HI_MPI_IVE_DMA)
1 结构体定义
//灰度图像定义
typedef struct{ unsigned char *pu8Data; //虚拟地址 unsigned int u32PhyAddr; //物理地址 int s32Width; //图像宽度 int s32Height; //图像高度 int s32Stride; //图像step }RV_GRAY_IMAGE_S;//区域定义typedef struct{ short left ; short top ; short right ; short bottom ;}RV_RECT ;2 IVE优化实现---------int RV_MEMCPY_IVE(RV_GRAY_IMAGE_S * pSrcImage, RV_GRAY_IMAGE_S * pDstImg,RV_RECT * pSrcRect, RV_RECT * pDstRect){ IVE_HANDLE hIveHandle = 0; HI_BOOL bInstant = HI_TRUE; HI_BOOL bBlock = HI_TRUE; HI_BOOL bFinish = HI_FALSE; HI_S32 result; int srcw = pSrcRect->right - pSrcRect->left + 1; int srch = pSrcRect->bottom - pSrcRect->top + 1; int dstw = pDstRect->right - pDstRect->left + 1; int dsth = pDstRect->bottom - pDstRect->top + 1; if (srcw != dstw || srch != dsth) { return -1; }IVE_DATA_S stSrc = { (HI_U32)(pSrcImage->u32PhyAddr + pSrcImage->s32Stride * pSrcRect->top + pSrcRect->left), pSrcImage->pu8Data+pSrcImage->s32Stride * pSrcRect->top + pSrcRect->left, pSrcImage->s32Stride, srcw, srch};IVE_DATA_S stDst = { pDstImg->u32PhyAddr + pDstImg->s32Stride*pDstRect->top+pDstRect->left, pDstImg->pu8Data + pDstImg->s32Stride*pDstRect->top+pDstRect->left, pDstImg->s32Stride, srcw,srch}; IVE_DMA_CTRL_S stDmaCtrl = { IVE_DMA_MODE_DIRECT_COPY, 0}; result = HI_MPI_IVE_DMA( &hIveHandle, &stSrc,&stDst, &stDmaCtrl,bInstant); if( result != HI_SUCCESS ) { printf( "hi ive dma error=%x \n" ,result); return RV_ERROR ; } result = HI_MPI_IVE_Query(hIveHandle,&bFinish,bBlock); if(result != HI_SUCCESS) { // printf("hi query dma error \n"); //windows 模拟库都返回失败。这里不打印 // return RV_ERROR ; //无意外情况都是成功 } else { if(bFinish != HI_TRUE) { printf("hi dma is not finished \n"); return RV_ERROR ; } } return RV_SUCESS;}
阅读全文
0 0
- 海思IVE函数使用-1 (DMA使用 HI_MPI_IVE_DMA)
- dma使用
- DMA通道的使用
- STM32 DMA使用浅谈
- SPI DMA 的使用
- STM32 DMA使用详解
- aurix中DMA使用
- 五、DMA入门使用
- DMA的使用实例
- STM32 DMA使用详解
- DMA pools的使用
- STM32 DMA使用
- STM32 DMA使用详解
- 海思ive ann-mlp使用说明
- 自娱自乐9之Linux DMA使用1(三星平台DMA分析)
- 使用DMA的直接IO
- DMA 使用基本配置
- 研究ALSA的DMA使用
- java compareTo()
- 【多线程应用2】CreateThread与_beginthreadex本质区别
- 随机生成字母数字的组合
- 函数签名(方法签名)Type signature
- javascript1
- 海思IVE函数使用-1 (DMA使用 HI_MPI_IVE_DMA)
- 关于java和python的环境搭建问题
- C语言重点知识复习2
- 面向对象6---抽象
- [并行计算] 1. 并行计算简介
- 类型转化
- Spring 开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别
- GitBash的安装和使用
- SQL1999语法