[DSP编程] 达芬奇video_copy例程中useModule的作用是什么?

[复制链接]
 楼主| Kudosherlock 发表于 2020-4-8 17:38 | 显示全部楼层 |阅读模式
在开发TI提供的video_copy例程的时候,对于例程当中有一些代码的作用或远离不太理解,有以下三个问题想请教诸位。
1.video_copy分为codecs, app, servers三部分,其中apps和servers当中的cfg配置文件都有这样一段内容
  1. var VIDDEC_COPY =
  2.     xdc.useModule('ti.sdo.ce.examples.codecs.viddec_copy.VIDDEC_COPY');
  3. var VIDENC_COPY =
  4.     xdc.useModule('ti.sdo.ce.examples.codecs.videnc_copy.VIDENC_COPY');

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

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

  5.     /* init trace */
  6.     GT_init();

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

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

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

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

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


  9. IVIDDEC_Fxns VIDDECCOPY_TI_VIDDECCOPY = {    /* module_vendor_interface */
  10.     {IALGFXNS},
  11.     VIDDECCOPY_TI_process,
  12.     VIDDECCOPY_TI_control,
  13. };
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部