打印
[DSP编程]

达芬奇video_copy例程中useModule的作用是什么?

[复制链接]
776|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Kudosherlock|  楼主 | 2020-4-8 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在开发TI提供的video_copy例程的时候,对于例程当中有一些代码的作用或远离不太理解,有以下三个问题想请教诸位。
1.video_copy分为codecs, app, servers三部分,其中apps和servers当中的cfg配置文件都有这样一段内容
var VIDDEC_COPY =
    xdc.useModule('ti.sdo.ce.examples.codecs.viddec_copy.VIDDEC_COPY');
var VIDENC_COPY =
    xdc.useModule('ti.sdo.ce.examples.codecs.videnc_copy.VIDENC_COPY');

看起来和后面具体调用的算法有密切的关系,所以想请教一下useModule本身这个函数大概起到一个什么作用?以及产生的VIDDEC_COPY这个变量内容大概是什么样的,或者说在后面调用算法当中起到什么作用。

2.servers端的main.c文件当中的内容是这样的:
Void main(Int argc, Char *argv[])
{
    /* init Codec Engine */
    CERuntime_init();

    /* init trace */
    GT_init();

    /* create a mask to allow a trace-print welcome message below */
    GT_create(&gtMask, "servers.video_copy.evmDM6446");

    /* ...and initialize all masks in this module to "on" */
    GT_set("servers.video_copy.evmDM6446=01234567");

    GT_0trace(gtMask, GT_4CLASS, "main> Welcome to DSP server's main().\n");
}

看起来是一些和跟踪打印信息相关的函数,所以我不太明白main函数起到一个什么样的作用?Server本身是在什么地方启动的。

3.codecs端有函数名为VIDDECCOPY_TI_process
应该就是对应ARM端的process函数。请问在这个调用过程当中DSP端的process是怎么样对应到ARM端的函数的?我看到可能相关的代码如下,但不知道具体的原理所以想请教一下。
metaonly module VIDDEC_COPY inherits ti.sdo.ce.video.IVIDDEC
{
    /*!
     *  ======== ialgFxns ========
     *  name of this algorithm's xDAIS alg fxn table
     */
    override readonly config String ialgFxns = "VIDDECCOPY_TI_VIDDECCOPY";
}


IVIDDEC_Fxns VIDDECCOPY_TI_VIDDECCOPY = {    /* module_vendor_interface */
    {IALGFXNS},
    VIDDECCOPY_TI_process,
    VIDDECCOPY_TI_control,
};

使用特权

评论回复

相关帖子

沙发
Kudosherlock|  楼主 | 2020-4-8 20:50 | 只看该作者
虽然但是,自己说一下我现在的理解,对不对就不知道了...
第三段其实是VIDDEC_COPY这一module的定义,由TI提供的标准module ti.sdo.ce.video.IVIDDEC定义而来。第三段括号里的内容则规定了VIDDEC_COPY在代码里对应函数集变量名称,该函数集变量对应的process函数即为VIDDECCOPY_TI_process

然后第一段useModule则是对codecs生成的VIDDEC_COPY这一module的使用,相当于声明了server和app都要用到codecs当中的这个VIDDEC_COPY。从而使得server/app与codecs联系起来。

第二段servers的main函数暂时不懂,,,查到的资料里面也没有main函数的具体说明。虽然看起来main函数只是初始化函数加一些跟踪用的函数。。。但是难道说在代码运行过程中dsp端只做初始化和跟踪就可以了吗,那main函数退出了之后程序不就停止了吗..所以这里还是不太懂,,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝