RTSC wizard 的使用

来源:互联网 发布:centos挂载ntfs安装 编辑:程序博客网 时间:2024/06/05 16:13

关于TIRTSCwizard介绍请查看TI官方网站上的RTSCCodec Package Wizard FAQ介绍,还有一个是Server的,先介绍codecwizard的使用。

首先设置XDCPATH变量,用到xdc时会从这些目录找到对应工具与package.

exportXDCPATH="/home/newton/dvsdk_3_00_02_44/ceutils_1.06/packages;/home/newton/dvsdk_3_00_02_44/codec_engine_2_24/packages;/home/newton/dvsdk_3_00_02_44/codec_engine_2_24/examples/ti/sdo/ce/examples;/home/newton/dvsdk_3_00_02_44/xdais_6_24/packages;/home/newton/dvsdk_3_00_02_44/bios_5_33_06/packages;/home/newton/dvsdk_3_00_02_44/dsplink_1_61_03/packages;/home/newton/dvsdk_3_00_02_44/biosutils_1_01_00/packages;/home/newton/dvsdk_3_00_02_44/framework_components_2_24/packages;/home/newton/workspace/RTSC/fkrtsc_wizard"


有些可能是多余的,但是多了总比少了好,呵呵。

开始工作了,xsti.sdo.codecutils.genpackage -g,运行向导,如果提示packagenot found 肯定是前面的XDCPATH设置有问题。

Step1:如图1所示



PackageName是包名,完成之后会在repository,也就是最后一项的路径下面产生wenxin/omap3530/codecs/viddec_copy目录,viddec_copybasedirectory,repository就称为库名吧。

Module:模块名,会生成VIDDEC_COPY.xdc

Version:版本号

CodecClass:编解器类型,跟XDCPATH有关(这里新版本DVSDK最好设置为video2.IVIDEC2)

InstructionSet Architecture:设置指令集类型,我想用在Omap3530上,就选v5T了。

Createce content:是否产生CE子目录,TI是这样解释的:Ifthis box is checked, the wizard will generate Codec Engine specificcontent, which includes a ce directory with

fourfiles(package.bld, package.xdc, MODULE.xs, and MODULE.xdc). Ifunchecked, the wizard will only generate

thebase package content.

所以我选上了


Step2:如图2所示


watermark:决定是产生production还是evaluation。如果要产生evaluation,则为true,并且双击Library,添加evalutionlibrary


Step3:如图3所示


添加必要文件和文件夹,我是按照那个ceutils里面的那个例子来的,添加了两个文件和两个文件夹。


Step4:如图4所示


是一些工具目录,前两项默认就可以了,nm6x设置dvsdk_3_00_02_44/cg6_0/bin/nm6x

它会查询前面那个库的一些属性。

Step5:如图5所示:


这里需要进行一些配置,我注意到如果前面的第四步没有设置nm6x,则这一步不会自动出现ialgFxnsVIDDECCOPY_TI_IALG.并且这里的设置会出现在ce目录下的VIDDEC_COPY.xdc文件里。


Step6:如图6所示


这一步的作用是产生link.xdt,我没发法编辑,最后手动修改了。


这是最后产生的文件:


剩下的最后一步是打包了,新建一个config.bld

varremarks = " " +


"-pden" + // enumerate remarks


"-pds=681" + // call cannot be inlined


"-pds=452" + // long long type is not standard


"-pds=195" + // zero used for undefined preprocessing id (setjmp.h)


"";


varC64P = xdc.useModule('ti.targets.C64P');


C64P.platform = "ti.platforms.evmDM6446";


C64P.ccOpts.prefix+= " --no_compress --mem_model:data=far --disable:sploop "+ remarks;


C64P.rootDir= "/home/newton/dvsdk_3_00_02_44/cg6_0";

/*


* ======== Linux host target ========


*/


varLinux86 = xdc.useModule('gnu.targets.Linux86');


Linux86.lnkOpts.suffix= "-lpthread " + Linux86.lnkOpts.suffix;


Linux86.rootDir= "/usr";


Linux86.ccOpts.prefix+= " -Wall";


Linux86.includeOpts+= " -isystem /usr/lib/gcc/i486-linux-gnu/4.3.3/include ";


varMVArm9 = xdc.useModule('gnu.targets.arm.GCArmv5T');


MVArm9.ccOpts.prefix+= " "


+"-Wall "


+"-fno-strict-aliasing "


;


MVArm9.platform= "ti.platforms.evm3530";


MVArm9.LONGNAME= "bin/arm-none-linux-gnueabi-gcc";


MVArm9.rootDir= "/home/newton/toolchain/arm-2008q1";


MVArm9.lnkOpts.suffix= MVArm9.lnkOpts.suffix.replace("-lstdc++", "");


MVArm9.lnkOpts.suffix= "-lpthread " + MVArm9.lnkOpts.suffix;


/*add search path for DaVinci lsp driver header files */


MVArm9.includeOpts= "-isystem /home/newton/workdir/opt/linux-2.6.28-omap/include "+ MVArm9.includeOpts;


/*


* ======== Pkg.attrs.profile ========


*/


Pkg.attrs.profile= "release";


/*


* ======== Pkg.libTemplate ========


* Set default library version template to be used by all packages


*/


Pkg.libTemplate= "ti/sdo/ce/utils/libvers.xdt";


/*


* ======== Build.targets ========


*list of targets (ISAs + compilers) to build for


*/


Build.targets= [


C64P,


MVArm9


];


varpaths = [];


paths["EXEC_DIR"]="/home/user/workdir/filesys/opt/workshop";



这个是参照workshop里面的config.bld修改的,设置了targets,platform,rootDir

最后执行XDCBUILDCFG=../../../../config.bldxdc release -PR .注意-PR与-PD的区别,-PR会递归打包,比如本例子中的ce里面也会打包,如果是-PD只是在那个路径下打包和所依赖的包。Xdc–help可以看下帮助,另外注意最后一个'.'不要忘了,表示要打包的路径,'.'代表当前路径。


至此Codec的步骤已经全部完成了,接着是第二个步骤,RTSCwizard server

输入命令xsti.sdo.codecutils.genserver -g


CodecPackage Name:这里是codec包名,就设置为之前创建的codecpackage name,如果忘了,可以在package.xdc中找到

ModeuleName:模块名,会自动填充第一项'.'后面的内容,变成大写

platform:我用的Devkit8000就选ti.platforms.evm3530

ServerPackage Name:这里是server包名,会根据第一项codecpackage name自动更改的

Repository:这里是生成server的位置了,跟codec作用一样。


Ok了,最后打包:XDCBUILDCFG../../../../config.bldxdc release -PD . 最后会生成.X64P文件,这就是我们最终想要得到的DSP可运行的可执行程序。


终于大功告成了,还有些Warnning可能是link.xdt没有设置,机子没法联网,装一些包什么的特麻烦,下了一大堆东西还是没装上。

./ofd6x-xg --xml_indent=0 --obj_display=none,header,optheader--dwarf_display=none,dinfo/home/newton/workspace/RTSC/viddec_copy_unpackaged/lib/viddec_copy_eval.a64P| perl ../ofd/call_graph.pl


Can'tlocate XML/Simple.pm in @INC (@INC contains:/home/newton/dvsdk_3_00_02_44/cg_xml_v2_12_00/ofd /etc/perl/usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0/usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10/usr/share/perl/5.10 /usr/local/lib/site_perl .) at/home/newton/dvsdk_3_00_02_44/cg_xml_v2_12_00/ofd/XML_TI_OFD.pm line519.



最后总结一些可能遇到的问题:

1.Undefinedsymbol VIDDECCOPY_TI_IALG

这个是链接错误,查看willlink with 看是否有那个codec里面的lib文件,如果没有修改一下package.xs里面的getlibs()函数

2.Undefinedsymbol VIDDEC_SKEL

基本上就是应该选择viddeo2_VIDDEC2的原因了,新版本的DVSDK导致的吧。也可能是MOD.xdc里面没加什么inherit??



原创粉丝点击