这两天将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文件 增加之处: requires codecs.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 /* return the library name: name.a<arch> */ print(" will link 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 to packages 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文件可以自己生成一下 只要里面的代码对就行。 最后感谢下老伟,真正研究的人 我们其他人只是走他走过的路 最近老伟一直在写大论文,不久他就要去工作了吧 挺舍不得他的,人很实在 珍惜最后在一起的半年吧! |