zoukankan      html  css  js  c++  java
  • codec engine工程中使用ccs下编译的lib库

    这两天将dsp的算法程序放到ccs下,生成lib库文件
    这样的好处就是:
    1. 算法封装成lib库以后,看不到源码,保证了代码的安全性;
    2. 在ccs下,对每个算法的运行时钟数可以直观的得到,方便进行优化处理;
    3. 调试算法方便,在linux下的调试还是不顺手。

    在ccs下建立lib文件比较简单,建立个lib工程,把.c和.h文件加进去
    built一下就OK了,不过built前最好先clean一下
    有几次没clean结果好像没生成新的lib文件,具体原因也没研究,懒

    网上查了点资料,说linux下不能用lib库的,心一凉
    不过老伟说可以的,还给我发了个他和小师弟一起做的文档
    照着做了一下,还真可以
    想了想,为什么能用lib库呢
    应该是用交叉编译器的原因吧,不是gcc编译的,估计是这样
    我把文档贴一下吧,我保存文档的能力真的不强

    ----------------------------------------------------------文档分割线-----------------------------------------------------------
    1、/opt/dvevm_1_20/codec_engine_1_10_01/examples/codecs/videnc_copy/package.bld文件中修改之处:
    var SRCS =["videnc_copy","colorspace","OSD"]; 指出要编译的.c文件的文件名

    2、/opt/dvevm_1_20/codec_engine_1_10_01/examples/codecs/videnc_copy/package.xdc文件增加之处:
    requirescodecs.videnc_copy.DavinciLib;  增加DavinciLib库

    3、在/opt/dvevm_1_20/codec_engine_1_10_01/examples/codecs/videnc_copy目录下增加了DavinciLib文件夹,其中包含以下文件:
    CCS已编译的 Davinci_VLPR_lib.lib 文件, LPRSYS.h 文件。 LPRSYS.h 和videnc_copy.c文件用到的头文件及其变量定义所在的头文件都要放在新增的DavinciLib库文件夹里。
    Videnc_copy.c文件中需要增加:
    #include "DavinciLib/LPRSYS.h"//由于在Videnc_copy.c文件中包含LPRSYS.h中所要使用的变量,

    另外,为使加进去的文件能被加载运行,需要增加一些定义运行规则的文件:
    /opt/dvevm_1_20/codec_engine_1_10_01/examples/codecs/videnc_copy/DavinciLib/package.xs
    将其代码改为:
    function getLibs(prog)
    {
        var name =null;
        if(prog.build.target.isa == "64P") {
           var name = "Davinci_VLPR_lib.lib"; //此处name值改为Davinci_VLPR_lib.lib

           
           print("    willlink with " + this.$name + ":" + name);
        }
        return(name);
    }

    /opt/dvevm_1_20/codec_engine_1_10_01/examples/codecs/videnc_copy/DavinciLib/Makefile
    将其代码改为:
    EXAMPLES_ROOTDIR := $(CURDIR)../../..//CURDIR为当前目录,向上3级目录寻找xdcpaths.mak文件
    include $(EXAMPLES_ROOTDIR)/xdcpaths.mak
    # [CE] add the examples directory itself to the list of paths topackages
    XDC_PATH := $(EXAMPLES_ROOTDIR);$(XDC_PATH)
    include $(EXAMPLES_ROOTDIR)/buildutils/xdcrules.mak

    /opt/dvevm_1_20/codec_engine_1_10_01/examples/codecs/videnc_copy/DavinciLib/package.xdc
    将其代码改为:
    requires ti.sdo.ce.video;
    package codecs.videnc_copy.DavinciLib { //设置路径
    }

    /opt/dvevm_1_20/codec_engine_1_10_01/examples/codecs/videnc_copy/DavinciLib/package.bld
    将其代码改为:
    Pkg.attrs.profile = "debug";
    Pkg.attrs.exportAll = true;
    ------------------------------------------------------------文档分割线---------------------------------------------------------

    几点说明一下:
    1. 我的codec engine是在videnc_copy工程上改的
       Davinci_VLPR_lib.lib 文件是CCS已编译的
        LPRSYS.h文件是库的头文件
    2. 第一条 var SRCS =["videnc_copy","colorspace","OSD"] 没看明白
       "colorspace"和"OSD"应该是生成lib文件的源码文件
       但是既然用了lib文件,干嘛还要添加源码文件了。
       实践了一下,将第一条改为var SRCS =["videnc_copy"]
        OK的。
    3. package.xs、Makefile、package.xdc、package.bld文件可以自己生成一下
       只要里面的代码对就行。

  • 相关阅读:
    T-SQL 关闭数据库所有连接
    单页web应用(SPA)的简单介绍
    ES6—解构赋值
    ES6 — 新增关键字let、const
    一行能装逼的JavaScript代码
    Date 对象总结
    JS从头开始
    CSS基础知识点(二)——居中
    web标准的可用性和可访问性
    CSS基础知识点(二)——选择器
  • 原文地址:https://www.cnblogs.com/eaglediao/p/7136513.html
Copyright © 2011-2022 走看看