--------------qq:1327706646

---------------------author:midu

-------------------------------datetime:2013-10-20

1.在sw_osd_ti_dmaOpt.c和sw_osd_ti_dma.c中涉及到了DMA的相关设置,但所有的API都是需要传递一个handle进去,而且所有的API都以SWOSD开头,但我不清楚这个handle需要怎么初始化,如何用在我的算法中。

2,在...\ipnc_rdk\ipnc_mcfw\mcfw\src_bios6\links_c6xdsp\va\valink_alg.c中的VaLink_algCopyFrames()中调用了EDMA.其中有

/* copy the frame */

edmaWidth  = pObj->inQueInfo.chInfo[0].width;

edmaHeight = pObj->inQueInfo.chInfo[0].height;

/* copy Y plane */

DM81XX_EDMA3_setParams(VA_LINK_EDMA3_CH_ID,    // chId

VA_LINK_EDMA3_QUEUE_ID,    // dmaQueue

(UInt32)pFullFrame->addr[0][0],  // srcAddr

(UInt32)pEmptyFrame->addr[0][0], // dstAddr

edmaWidth,              // edmaWidth

edmaHeight,             // edmaHeight

edmaWidth,              // srcLineOffset

edmaWidth);             // dstLineOffset

/* Trigger the edma transfer */

DM81XX_EDMA3_triggerTransfer(VA_LINK_EDMA3_CH_ID);

pEmptyFrame->timeStamp = pFullFrame->timeStamp;

于是我将该段代码添加到了Alglink_priv.c中

Int32 AlgLink_algProcessData(AlgLink_Obj * pObj)

{

extern unsigned char *frame_buffer; //frame_buffer大小为2048*1280;开辟在在DDR 的SR2上

unsigned char * current_frame;

unsigned char * temp;

int edmaWidth = 2048;

int edmaHeight = 1280;

UInt32 frameId, status;

System_LinkInQueParams *pInQueParams;

FVID2_Frame *pFrame;

FVID2_FrameList frameList;

pInQueParams = &pObj->createArgs.inQueParams;

System_getLinksFullFrames(pInQueParams->prevLinkId,

pInQueParams->prevLinkQueId, &frameList);

if (frameList.numFrames)

{

/* SCD should be done first as it requires to operate on raw YUV */

if (pObj->createArgs.enableSCDAlg)      {

status =   AlgLink_ScdalgProcessData(&pObj->scdAlg, &frameList, &pObj->outObj[0].bufOutQue);

if (status == FVID2_SOK)             {

/* Send-out the output bitbuffer */

System_sendLinkCmd(pObj->createArgs.outQueParams.nextLink,

SYSTEM_CMD_NEW_DATA);

}

}

for(frameId=0; frameId<frameList.numFrames; frameId++)         {

pFrame = frameList.frames[frameId];

if(pFrame->channelNum >= pObj->inQueInfo.numCh)

continue;

//*************************************add my alg ****************************//

/* copy the frame */

edmaWidth  = pObj->inQueInfo.chInfo[0].width;

edmaHeight = pObj->inQueInfo.chInfo[0].height;

/* copy Y plane */

DM81XX_EDMA3_setParams(VA_LINK_EDMA3_CH_ID,    // chId

VA_LINK_EDMA3_QUEUE_ID,    // dmaQueue

(UInt32)pFrame->addr[0][0],  // srcAddr

(UInt32)(frame_buffer), // dstAddr

edmaWidth,              // edmaWidth

edmaHeight,             // edmaHeight

edmaWidth,              // srcLineOffset

edmaWidth);             // dstLineOffset

/* Trigger the edma transfer */

DM81XX_EDMA3_triggerTransfer(VA_LINK_EDMA3_CH_ID);

pEmptyFrame->timeStamp = pFullFrame->timeStamp;

//判断数据搬移是否出错

current_frame = (unsigned char *)pFrame->addr[0][0];

temp = frame_buffer;

for(i=0;i<2048*1280;i++){

if(*temp !=*current_frame)

Vps_printf("wrong!!!!!!!");

current_frame++;

temp++;

}

//********************************************************************************//

// do SW OSD

if (pObj->createArgs.enableOSDAlg)             {

AlgLink_OsdalgProcessFrame(&pObj->osdAlg, pFrame);

}

}

System_putLinksEmptyFrames(pInQueParams->prevLinkId,

pInQueParams->prevLinkQueId, &frameList);

}

return FVID2_SOK;

}

编译通过后发现EDMA源地址和目的地址的元素不一致,帧大小为2048*1280没有错,而且我跑的是fullfeature,valink是没有跑的;请问是我的DMA哪里设置不对吗?有谁在8127上用过EDMA的啊?求各位大神指点,小弟在此谢过了!!!

http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/31656.aspx

嵌入式开发之8127---DM8127如何利用EDMA搬移数据的更多相关文章

  1. 嵌入式开发之davinci--- 8148/8168/8127 中的alsa音频pcm g711 和aac 音频格式

    (1)alsa pcm (2)g711 (3)aac (4) --------------author:pkf -------------------time:2-4 ---------------- ...

  2. 嵌入式开发之davinci--- 8148/8168/8127 中的High-DefinitionVideo Processing Subsystem (HDVPSS)

    High-DefinitionVideo Processing Subsystem (HDVPSS) 这一章介绍了高清视频处理子系统(HDVPSS). 2.1导论 2.1.1 简介 HDVPSS 使用 ...

  3. 嵌入式开发之davinci--- 8148/8168/8127 中的大屏分布式拼接显示系统

    其实在接触从12年接触8127系列ipnc 时看到200w和500w的高清像素,我就萌生了视频拼接的兴趣,没想到今年的安博会就有公司推出产品了,它就是上海的环视科技,从他的主页可以看到,明显的有个只能 ...

  4. 嵌入式开发之davinci--- 8148/8168/8127 中的xdc 简介

    XDC是TI公司为嵌入式实时系统可重用软件组件(在XDC里被成为packages,以下成为包)制定的一套标准.它包括一些有用的工具,标准的API函数,静态配置文件和打包(packaging)操作.XD ...

  5. 嵌入式开发之davinci--- 8148/8168/8127 中的二维图像处理内存tiler 铺瓷砖

    http://blog.csdn.net/shanghaiqianlun/article/details/7619603

  6. 嵌入式开发之davinci--- 8148/8168/8127 中的图像处理算法优化库vlib

    The Texas Instruments VLIB is an optimizedImage/Video Processing Functions Library for C programmers ...

  7. 嵌入式开发之davinci--- 8148/8168/8127 中的图像采集格式Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别

    简单来说,YUV: luma (Y) + chroma (UV) 格式, 一般情况下sensor支持YUV422格式,即数据格式是按Y-U-Y-V次序输出的RGB: 传统的红绿蓝格式,比如RGB565 ...

  8. 嵌入式开发之davinci--- 8148/8168/8127 中的音频alsa 采集

    1.snd_pcm_open,打开句柄. 2.配置参数,可能用到的接口:snd_pcm_hw_params_alloca.snd_pcm_hw_params_any.snd_pcm_hw_params ...

  9. 嵌入式开发之davinci--- 8148/8168/8127 中swms、Mosaic’s、display 显示pal 模式

    (1) (2) (3) (4) -------------------------author:pkf ------------------------------time:2-3 --------- ...

随机推荐

  1. 01XML文档结构

    文档结构 2.1文档结构 2.1.1文档声明及字符编码 <?xml version=“1.0” encoding=“”gb2312 standalone=“yes”?> <?  告诉 ...

  2. 花括号的使用 printf %${width}s , 否则会 去找 $widths

    花括号的使用  printf %${width}s , 否则会 去找  $widths 1 #! /usr/bin/perl   2 use strict;  3 use warnings;  4   ...

  3. OBJECTPROPERTY用法整理

    OBJECTPROPERTY用法整理 分类: 系统表与表结构 数据库管理维护2010-06-03 16:37 2783人阅读 评论(1) 收藏 举报 数据库sql serverinsertobject ...

  4. H5实现调用本地摄像头实现实时视频以及拍照功能

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. leetcode-88合并两个有序数组

    合并两个有序数组 思路:利用索引合并两个列表,排序.注意不需要返回值,只修改nums1 class Solution: def merge(self, nums1: List[int], m: int ...

  6. 集训第六周 数学概念与方法 数论 线性方程 I题

    Description The Sky is Sprite. The Birds is Fly in the Sky. The Wind is Wonderful. Blew Throw the Tr ...

  7. 文件 jq 传到后台

    XMLHttpRequest Level 2 添加了一个新的接口——FormData.与普通的 Ajax 相比,使用 FormData 的最大优点就是我们可以异步上传二进制文件. jQuery 2.0 ...

  8. MySQL数据库连接不上的一种可能的解决办法

    右键单击我的电脑->管理->服务和应用程序->服务,右键停止如图所示的服务

  9. POJ 3348 最直接的凸包问题

    题目大意: 给定一堆树的点,找到能组合成的最大面积,一个物体占50面积,求最多放多少物体 #include <cstdio> #include <cstring> #inclu ...

  10. [BZOJ3932] [CQOI2015]任务查询系统(主席树 || 树状数组 套 主席树 + 差分 + 离散化)

    传送门 看到这个题有个很暴力的想法, 可以每一个时间点都建一颗主席树,主席树上叶子节点 i 表示优先级为 i 的任务有多少个. 当 x 到 y 有个优先级为 k 的任务时,循环 x 到 y 的每个点, ...