首页 > 代码库 > 嵌入式开发之davinci--- 8148/8168/8127 中的xdc 简介
嵌入式开发之davinci--- 8148/8168/8127 中的xdc 简介
XDC是TI公司为嵌入式实时系统可重用软件组件(在XDC里被成为packages,以下成为包)制定的一套标准。它包括一些有用的工具,标准的API函数,静态配置文件和打包(packaging)操作。XDC最主要的亮点在于它标准化了传递过程,并简化了在应用程序中引用目标平台下其他包的过程。
本文从一个简单的“Hello,World“入手,引领大家进入XDC开发世界。
在XDC开发世界中,首先需要明确两个概念,package和repository。
所谓package,类似与java里的jar文件或.net世界里的assembly,是开发者将源代码编译打包后交付给使用者使用的一组集合。和java里的package类似,XDC的Package也是按照一定层次的文件夹组织形式来存放的(这点和.net不同,.net仅仅是编译成一个dll),该目录的名字就是包的名字。
所谓repository,实际上是一个包含多个package的文件夹,例如在XDC里,我们使用packages来作为一个repository,该文件夹下包含很多ti.xdc.*的包。在XDC开发中,有一个很重要的变量XDCPATH,在XDCPATH中制定的路径就是repository。这有点类似于C++的包含文件目录。
安装和卸载XDC
你可以从TI的网站上下载,安装过程很简单,如果在Windows平台下,直接双击安装文件安装到特定目录就可以了,如果是在Linux平台,可能需要修改文件的属性将文件设置成可执行,然后双击安装。
至于卸载,找到uninstall文件,双击即可。
将XDC添加到你的环境变量
为了更方便地使用XDC(实际上就是不要在xs前加上一长串路径),需要将XDC添加到环境变量里。
如果开发平台为Windows,在安装完XDC后,需要环境变量的PATH中添加XDC安装目录(和JAVA一样),此外,顺便新建一个XDCPATH的环境变量,该变量用来制定repository的位置。
如果你用的是Linux,自己查文档吧:-)
测试
当你完成以上步骤后,恭喜你,你现在可以开始XDC编程之旅了,试试在命令行下键入:
xs –version
和
xs xdc.tools.echo hello world
很简单吧?广告之后我们开始编写第一个基于XDC的应用程序,下一节更精彩,不要走开哦。
下面介绍如何创建一个基于XDC的应用程序。
一般的我们使用传统的C语言进行XDC开发,在配置上还需要使用Javascript。不过总体来说,开发XDC还是很容易的,只需要遵循以下几个步骤:
配置应用程序(也就是写配置文件了啊)
写C语言
编译、链接
根据TI标准开发流程,XDC开发主要关注点还是编写C语言代码,至于其他的(主要是指1、3)很简单(文档上说的,我不觉得~~~),TI提供了一些工具。
废话少说,开始我们的“Hello,World”之旅吧!
配置应用程序
和Java、C不同,开发XDC应用程序需要使用javascript语法写一个配置文件,进行一些预先的配置工作以供应用程序使用(例如使用什么模块啊,设置一些常量啊)。当然,第二步也就是写C语言也可以进行一些动态的设置。
至于为什么写配置文件,TI给出的答案是:
在编译时就制定需要使用到哪些模块,以及生成哪些静态对象。
检查制定包和继承包
设置指定模块或对象的属性
下图展示了XDC编译的全过程:
XDC的配置文件是以cfg结尾的,在Codec Engine开发过程中,我们主要是Application端和server端使用XDC来编译。
如上图所示,CONFIG OUTPUT中为XDC编译器根据配置文件生成的一些中间文件(例如C代码、.cmd文件),这些文件不需要自己动手编写,甚至不需要知道他们是干什么的。
现在回到“Hello,World”开发,我们先在开发目录下建立一个名为hello的文件夹,然后在该文件夹中建立一个名为hello.cfg的文件:
接下来,在该文件中输入以下javascript表达式,声明一个xdc.runtime.System对象:
var System = xdc.useModule(“xdc.runtime.System”);
写C语言
创建一个名为hello.c的文件,在里面添加以下代码:
#include <xdc/std.h>
#include <xdc/runtime/System.h>
int main()
{
System_printf(“Hello World!\n”);
return (0);
}
编译
确定目标和平台
在编译前,我们首先需要明确我们的程序是运行在什么平台上的,以及使用什么编译起来进行编译。在TI的文档中,用目标(Target)和平台(Platform)、编译器来定义这些属性:
目标(-t):制定的编译器,例如TI ‘C6000 编译器。
平台(-p):运行的环境,例如DM6446 EVM。
编译器(-c):编译XDC的编译器,例如TI 公司提供的Code Gen Tools或者Visual Studio 2008。
在本例中,目标为ti.targets.C64P,平台定位ti.platforms.evmDM6446。
运行Configuro
XDC提供了一个叫做“Configuro”的工具来处理配置文件,我们可以在命令行中输入以下命令:
xs xdc.tools.configuro -t ti.targets.C64P -p ti.platforms.evmDM6446 -c d:/opt/cgtools hello.cfg
注:你需要在https://www-a.ti.com/downloads/sds_support/CodeGenerationTools.htm下载Code Gen Tools。
编译后将生成一个名为hello的文件夹:
http://blog.sina.com.cn/s/blog_693301190100sitz.html
http://blog.sina.com.cn/s/blog_69620aac0100q9e6.html
嵌入式开发之davinci--- 8148/8168/8127 中的xdc 简介