原创 TI XDC工具入门简介

2011-6-25 16:39 1774 3 3 分类: 工程师职场

http://blog.csdn.net/cfistalent/archive/2009/12/24/5071094.aspx

1.XDC(Express DSP Component)TI提供的一个命令行工具,它可以生成并使用实时软件组件包。

2.以上两图说明了XDC的工作方式:通过相关文件设定操作指令,读入源码、库文件以及已经存在的组件包最终生成可执行文件。

3.Package------XDC工作的基本单元。包括有:源码、库文件以及元数据;元数据这包含有该包的版本信息和依赖信息,以及模块(Module)信息。

4.XDC使用方法:

 

 

5.XDC需要的文件:config.bld  package.bld  package.xdc

Package.xdc -------------描述该包的名称,版本信息,依赖文件,模块信息等

 

Config.bld --------------描述XDC要使用的编译工具的相关信息,如不同CPU所使用的编译工具目录,每种编译工具的编译选项,连接选项等基本信息;

 

Package.bld -------------------描述对于该包需要生成的平台,profiledebugrelease)。通过Javascript脚本添加源码到生成执行文件的信息中。

Package.mak-------------------XDC生成的文件,用于最终编译可执行文件。

6.XDC工作流程:

 

7.使用XDC所需的文件:源码、package.bldpackage.xdcconfig.bld。同时需要通过shell脚本将DVEVM的安装位置导出为环境变量。

各代码如下:

Config.bld样本代码:

 

  1. var MVArm9 = xdc.useModule("gnu.targets.MVArm9");  
  2. MVArm9.rootDir = "/opt/DVS357/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le";  
  3. MVArm9.lnkOpts.suffix = "-lpthread " + MVArm9.lnkOpts.suffix;  
  4. var Linux86=xdc.useModule("gnu.targets.Linux86");  
  5. Linux86.rootDir = "/usr";  
  6. Linux86.lnkOpts.suffix = "-lpthread " + Linux86.lnkOpts.suffix;  
  7. Build.targets = [ Linux86,MVArm9,];  

 

 

Runxdc.sh样本代码:

 

  1. #! /bin/sh   
  2. #  import install paths  
  3. #  putting the first period before the shell invokation keeps the changes  
  4. #      to environment variables set here. Otherwise, changes to environment  
  5. #      are only within the context of the executed script  
  6.   
  7. ./setpaths.sh  
  8. #  Define search paths for included packages  
  9. export XDCPATH="$CE_INSTALL_DIR/packages"  
  10. #  Define options for execution  
  11. export XDCBUILDCFG=$(pwd)"/config.bld  
  12. #  Execute xdc command to make all packages  
  13.   
  14. /opt/DVS357/dvevm_1_20/xdc_2_94/xdc $@ -P *  

  

Setpaths.sh样本代码:

 

  1. #!/bin/sh  
  2.   
  3. export DVEVM_INSTALL_DIR="/opt/DVS357/dvevm_1_20/"  
  4. export BIOS_INSTALL_DIR=$DVEVM_INSTALL_DIR/bios_5_31_01  
  5. export CG_INSTALL_DIR=$DVEVM_INSTALL_DIR/cg6x_6_0_14  
  6. export CMEM_INSTALL_DIR=$DVEVM_INSTALL_DIR/cmem_1_02  
  7. export CE_INSTALL_DIR=$DVEVM_INSTALL_DIR/codec_engine_1_10_01  
  8. export CS_INSTALL_DIR=$DVEVM_INSTALL_DIR/codec_servers_1_23  
  9. export DSPLINK_INSTALL_DIR=$DVEVM_INSTALL_DIR/dsplink_1_30_08_02  
  10. export FMWK_INSTALL_DIR=$DVEVM_INSTALL_DIR/framework_components_1_10_04  
  11. export XDAIS_INSTALL_DIR=$DVEVM_INSTALL_DIR/xdais_5_10  
  12. export XDC_INSTALL_DIR=$DVEVM_INSTALL_DIR/xdc_2_94  
  13.   
  14. export PATH=$XDC_INSTALL_DIR:$PATH  

  

package.bld样本代码:

 

  1. var targs = [MVArm9, Linux86];  
  2. var profiles = ["debug""release"];  
  3. //  Define the base name for the executable(s) built  
  4. var basename = "app";  
  5. //  The following code uses the java.io.File.list() method to generate an array  
  6. //      of all files in the current directory ('.') and then sorts out .c files  
  7. var sources = java.io.File('.').list();  
  8. var csources = [];  
  9. for (var i = 0; i < sources.length; i++){  
  10.        if(String(sources).match(/.*\.c$/))  
  11.                 csources.push(sources);  
  12. }  
  13.   
  14. //  The build phase cycles through the arrays of build targets and profiles  
  15. //       and adds an executable for each combination  
  16.   
  17. for (var i = 0; i < targs.length; i++) {  
  18.      for(var j = 0; j < profiles.length; j++){  
  19.         Pkg.addExecutable( basename + "_" + profiles[j], targs,  
  20. targs.platform, {  
  21.                      cfgScript: null,  
  22.                      profile: profiles[j],  
  23.                 }  
  24.                 ).addObjects( csources );  
  25.      }  
  26. }  

 

 

PS:  VIM中,给新的文件类型添加已知文件类型的语法高亮的方法是------在“/usr/share/vim/vimfiles/after”路径中添加一个文件“filetype.vim”(FC10系统下),在其中添加如下代码:

 

  1. augroup filetypedetect  
  2. au BufNewFile,BufRead *.bld setf javascript  
  3. augroup END  

 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条