config.bld: 用于定义该example XDC将要编译的targets和环境变量。它设置的是默认的targets和platform,然后通过user.bld进行修改。 注意:该文件一般不需要改动,但要和user.bld保持一致。 该文件在XDC进行编译时控制编译器的选择(ARM或DSP),它只作用于由package.bld XDC 编译出来的二进制文件。XDC 通过该文件找到package的路径,然后找到有更多选项的user.bld文件。 该脚本文件比其他文件最先受到编译。它为目标文件和平台设置了独立的主机系统参数,然后它试图找到设置rootDir的user.bld。 主要内容:DSP target Linux host target Arm target 等的设置 load user.bld。
user.bld: 必须修改该文件以设置编译工具的路径 该文件列出了为了哪个目标去编译二进制和程序,每个目标所需要的编译器的位置,和为了哪个平台而编译的程序。你必须详细设置编译工具,并将不需要编译的平台注释掉。 例如:如果你只是对编译evmDm6446上Montavista Arm Linux 下Arm侧的程序,只要将第一个arm下的doBuild设为true,其他设为false。然后详细设置Montavista Arm tools的路径,并注释掉除dm6446之外的平台。
package.xs: 该文件详细说明的包的性质,可以通过平台和配置来改变。如默认的VIDDEC_COPY的package.xs中设置的库名字是这样的: function getLibs(prog) { /* "mangle" program build attrs to directory name */ var name = "lib/viddec_copy.a" + prog.build.target.suffix; if (prog.build.target.isa == "64P") { /* return the library name: name.a */ print(" will link with " + this.$name + ":" + name); } else { name = ""; } return (name); } 该函数返回一个package导入的库文件名字。当XDC应用程序用到这个包时,XDC编译系统就调用这个特殊的函数以链接程序配置的包文件系统。导入的库文件不是用housing pakage的编译脚本编译。 上面的函数只有在为DSP server 或只是DSP编译时才返回库文件的名字,如果你编译ARM应用程序不会返回库文件。这就是用这句的所在。 if (prog.build.target.isa == "64P") 如果example codecs包含的库文件是为DSP和ARM一起使用的话,则不需要if语句。dm6446上的例子就是这样的,没有if语句。