--------------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. Perl语言入门:第六章习题:处理用户所指定的名字并汇报相应的姓。

    37 print "\n----------------------------------_exercise_6_1--------------------------\n";  ...

  2. WebService 服务开发

    开发 WebService 服务首先需要根据接口的要求编写相关的 wsdl 文件.编写 wsdl 文件需要先对 XML 语法.XML Schema 语法以及 SOAP 语法有一些简单了解. 假设需要提 ...

  3. A10. JVM 对象

    [概述] 首先需要了解对象在内存中的存储布局,其次需要了解对对象的访问定位. [对象的内存布局] 在 HotSpot 虚拟机中,对象在内存中存储的布局可以分为 3 块区域:对象头(Header).实例 ...

  4. uglifyjs压缩批处理,.bat文件启动

    我们不可能每次都打开cmd去键入压缩执行代码,容易写错不说(如上面那个结果图),还耗时,想想都会让人疯掉. 懒人有懒法,花了点功夫,折腾了一个批处理文件,以后,想要压缩JS,只要双击运行这个.bat文 ...

  5. 零基础入门学习Python(24)--递归:汉诺塔

    知识点 这节课主要讲解用递归的方法,实现汉诺塔的解答 对于游戏的玩法,我们可以简单分解为三个步骤: 1) 将前63个盘子从X移动到Y上. 2) 将最底下的第64个盘子从X移动到Z上. 3) 将Y上的6 ...

  6. AutoEncoders变种

    目录 PCA V.S. Auto-Encoders Denoising AutoEncoders Dropout AutoEncoders PCA V.S. Auto-Encoders deep au ...

  7. Python 3安装体验篇(win10)

    一.下载 1.打开官网https://www.python.org/downloads/windows/,点击Python 3版本链接 2.点击win10 64位安装链接,即可下载Python安装 二 ...

  8. 正则表达式 整理(\w \s \d 点 贪婪匹配 非贪婪匹配 * + ? {} | [] ^ $ \b 单词边界 分组、re.findall()、re.split()、re.search()、re.match()、re.compile()、re.sub())

    re.findall  匹配到正则表达式的字符,匹配到的每个字符存入一个列表,返回一个匹配到的所有字符列表 一. 匹配单个字符 import re # \w 匹配所有字母.数字.下划线 re.find ...

  9. Python爬虫入门教程: All IT eBooks多线程爬取

    All IT eBooks多线程爬取-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来. 然后放着 ...

  10. Spider-Python爬虫之XPath 教程

    原文链接:https://www.runoob.com/xpath/xpath-syntax.html XPath 术语 XPath 节点 七种类型:在 XPath 中,有七种类型的节点:元素.属性. ...