Codec Engine 开发

1. Codec Engine 中的Codec管理模块

在Code Engine的实现ICodec.xdc中,有一个ICodec的主类,这个ICodec的接口就是Codec Engine中的算法接口类,它主要是声明了以下三个接口:stubFxns,serverFxns以及 ialgFxns。
  1. metaonly interface ICodec
  2. {
  3.     readonly config String ialgFxns;
  4.     config String serverFxns;
  5.     config String stubFxns;
  6. }

ialgFxns:   算法的接口标识串声明。
serverFxns: 远端的调用接口标识声明。
stubFxns:  和serverFxns 相对应的本地侧调用接口的实现。

以下以SCALE为例来说明ialgFxns算法接口的实现,其它两个接口的实现是类似的。在SCALE_TI.xdc中声明了算法接口的标识:
  1. metaonly module SCALE_TI inherits ti.sdo.ce.examples.extensions.scale.ISCALE
  2. {
  3.     override readonly config String ialgFxns = "SCALE_TI_SCALE";
  4. }

而在scale_ti_impl.c中实现了这个接口:
  1. ISCALE_Fxns SCALE_TI_SCALE = {
  2.     {IALGFXNS},
  3.     SCALE_TI_process,
  4.     SCALE_TI_control,
  5. };
同理,在scale的两侧封装中实现了分别实现了serverFxns 和stubFxns, 在其相应的源文件中有对其接口的实现,这里不多叙述。IALGFXNS 是一组函数的定义的宏。在这三个接口的实现中,serverFxns 和stubFxns 的实现早于ialgFxns。 


2.集成符合标准的Codec

1) 弄清楚Codec的存放路径, 一般在Codec 的package.xdc 中可以找到,以下是在Codec中包含的路径
 
2) 在server中集成相应的codec, 在.cfg 文件中添加,请注意第二个配置中的组标识和线程属性。groupID 是和优化相关的,这关系到Codec中是否能共用同一个组的资源,线程属性中的优先级在多个Codec的优化中有效,最大值为15。
 
3) 编译server,如果不出现错误,基本确定算法集成成功。如果需要测试是否成功,在App中编写测试程序进行测试。


注意:在集成Codec之前,请确定Codec所包含的文件是否是完整的,否则在编译server的时候会报错,具体报错信息会在其它文档中说明。


一般的Codec中都是成对的集成,scale是个特例,在一些复杂库中,需要用scale来封装使用其功能。


3. Package中的文件说明

package.xdc-描述该包的名称,版本信息,依赖文件,模块信息等
 
package.xs-当这个package被require 或者调用的时候去获取可用的文件
 
package.bld-描述对于该包需要生成的平台,版本(debug,release),以及要编译的源文件,编译生成库或者可执行文件的路径
 
package.mak-编译生成的中间文件

1) server 中的.cfg : 系统配置的脚本文件,包含使用到系统的各个模块、集成Codec的路径配置、堆栈大小的设定等
2) server 中的link.cmd: 编译的时候用到的定义section, segment的文件,具有一定的语法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值