XDC是TI公司為嵌入式實(shí)時(shí)系統(tǒng)可重用軟件組件(在XDC里被成為packages,以下成為包)制定的一套標(biāo)準(zhǔn)。它包括一些有用的工具,標(biāo)準(zhǔn)的API函數(shù),靜態(tài)配置文件和打包(packaging)操作。XDC最主要的亮點(diǎn)在于它標(biāo)準(zhǔn)化了傳遞過(guò)程,并簡(jiǎn)化了在應(yīng)用程序中引用目標(biāo)平臺(tái)下其他包的過(guò)程。
本文從一個(gè)簡(jiǎn)單的“Hello,World“入手,引領(lǐng)大家進(jìn)入XDC開(kāi)發(fā)世界。
在XDC開(kāi)發(fā)世界中,首先需要明確兩個(gè)概念,package和repository。
所謂package,類似與java里的jar文件或.net世界里的assembly,是開(kāi)發(fā)者將源代碼編譯打包后交付給使用者使用的一組集合。和java里的package類似,XDC的Package也是按照一定層次的文件夾組織形式來(lái)存放的(這點(diǎn)和.net不同,.net僅僅是編譯成一個(gè)dll),該目錄的名字就是包的名字。
所謂repository,實(shí)際上是一個(gè)包含多個(gè)package的文件夾,例如在XDC里,我們使用packages來(lái)作為一個(gè)repository,該文件夾下包含很多ti.xdc.*的包。在XDC開(kāi)發(fā)中,有一個(gè)很重要的變量XDCPATH,在XDCPATH中制定的路徑就是repository。這有點(diǎn)類似于C++的包含文件目錄。
安裝和卸載XDC
你可以從TI的網(wǎng)站上下載,安裝過(guò)程很簡(jiǎn)單,如果在Windows平臺(tái)下,直接雙擊安裝文件安裝到特定目錄就可以了,如果是在Linux平臺(tái),可能需要修改文件的屬性將文件設(shè)置成可執(zhí)行,然后雙擊安裝。
至于卸載,找到uninstall文件,雙擊即可。
將XDC添加到你的環(huán)境變量
為了更方便地使用XDC(實(shí)際上就是不要在xs前加上一長(zhǎng)串路徑),需要將XDC添加到環(huán)境變量里。
如果開(kāi)發(fā)平臺(tái)為Windows,在安裝完XDC后,需要環(huán)境變量的PATH中添加X(jué)DC安裝目錄(和JAVA一樣),此外,順便新建一個(gè)XDCPATH的環(huán)境變量,該變量用來(lái)制定repository的位置。
如果你用的是Linux,自己查文檔吧:-)
測(cè)試
當(dāng)你完成以上步驟后,恭喜你,你現(xiàn)在可以開(kāi)始XDC編程之旅了,試試在命令行下鍵入:
xs –version
和
xs xdc.tools.echo hello world
很簡(jiǎn)單吧?廣告之后我們開(kāi)始編寫(xiě)第一個(gè)基于XDC的應(yīng)用程序,下一節(jié)更精彩,不要走開(kāi)哦。
下面介紹如何創(chuàng)建一個(gè)基于XDC的應(yīng)用程序。
一般的我們使用傳統(tǒng)的C語(yǔ)言進(jìn)行XDC開(kāi)發(fā),在配置上還需要使用Javascript。不過(guò)總體來(lái)說(shuō),開(kāi)發(fā)XDC還是很容易的,只需要遵循以下幾個(gè)步驟:
配置應(yīng)用程序(也就是寫(xiě)配置文件了啊)
寫(xiě)C語(yǔ)言
編譯、鏈接
根據(jù)TI標(biāo)準(zhǔn)開(kāi)發(fā)流程,XDC開(kāi)發(fā)主要關(guān)注點(diǎn)還是編寫(xiě)C語(yǔ)言代碼,至于其他的(主要是指1、3)很簡(jiǎn)單(文檔上說(shuō)的,我不覺(jué)得~~~),TI提供了一些工具。
廢話少說(shuō),開(kāi)始我們的“Hello,World”之旅吧!
配置應(yīng)用程序
和Java、C不同,開(kāi)發(fā)XDC應(yīng)用程序需要使用javascript語(yǔ)法寫(xiě)一個(gè)配置文件,進(jìn)行一些預(yù)先的配置工作以供應(yīng)用程序使用(例如使用什么模塊啊,設(shè)置一些常量啊)。當(dāng)然,第二步也就是寫(xiě)C語(yǔ)言也可以進(jìn)行一些動(dòng)態(tài)的設(shè)置。
至于為什么寫(xiě)配置文件,TI給出的答案是:
在編譯時(shí)就制定需要使用到哪些模塊,以及生成哪些靜態(tài)對(duì)象。
檢查制定包和繼承包
設(shè)置指定模塊或?qū)ο蟮膶傩?/span>
下圖展示了XDC編譯的全過(guò)程:

XDC的配置文件是以cfg結(jié)尾的,在Codec Engine開(kāi)發(fā)過(guò)程中,我們主要是Application端和server端使用XDC來(lái)編譯。
如上圖所示,CONFIG OUTPUT中為XDC編譯器根據(jù)配置文件生成的一些中間文件(例如C代碼、.cmd文件),這些文件不需要自己動(dòng)手編寫(xiě),甚至不需要知道他們是干什么的。
現(xiàn)在回到“Hello,World”開(kāi)發(fā),我們先在開(kāi)發(fā)目錄下建立一個(gè)名為hello的文件夾,然后在該文件夾中建立一個(gè)名為hello.cfg的文件:
接下來(lái),在該文件中輸入以下javascript表達(dá)式,聲明一個(gè)xdc.runtime.System對(duì)象:
var System = xdc.useModule(“xdc.runtime.System”);
寫(xiě)C語(yǔ)言
創(chuàng)建一個(gè)名為hello.c的文件,在里面添加以下代碼:
#include <xdc/std.h>
#include <xdc/runtime/System.h>
int main()
{
System_printf(“Hello World!\n”);
return (0);
}
編譯
確定目標(biāo)和平臺(tái)
在編譯前,我們首先需要明確我們的程序是運(yùn)行在什么平臺(tái)上的,以及使用什么編譯起來(lái)進(jìn)行編譯。在TI的文檔中,用目標(biāo)(Target)和平臺(tái)(Platform)、編譯器來(lái)定義這些屬性:
目標(biāo)(-t):制定的編譯器,例如TI ‘C6000 編譯器。
平臺(tái)(-p):運(yùn)行的環(huán)境,例如DM6446 EVM。
編譯器(-c):編譯XDC的編譯器,例如TI 公司提供的Code Gen Tools或者Visual Studio 2008。
在本例中,目標(biāo)為ti.targets.C64P,平臺(tái)定位ti.platforms.evmDM6446。
運(yùn)行Configuro
XDC提供了一個(gè)叫做“Configuro”的工具來(lái)處理配置文件,我們可以在命令行中輸入以下命令:
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。
編譯后將生成一個(gè)名為hello的文件夾:
關(guān)于XDC工具的文章
1.TI XDC工具入門(mén)簡(jiǎn)介
http://www.usr.cc/thread-52028-1-3.html
2.XDC工具使用示例
http://www.usr.cc/thread-52037-1-2.html
3.codec engine代碼閱讀四---CE_DIR/examples/ti/sdo/ce/examles/codecs/videnc_copy
http://alphamailpost.blog.163.com/blog/static/20111808120127219241667/
4.XDC工具手冊(cè)(在xdc安裝目錄下的docs文件夾里也有,這個(gè)是在線網(wǎng)頁(yè))
http://rtsc.eclipse.org/docs-tip/XDCtools_User%27s_Guide
5.rtsc
http://rtsc.eclipse.org/docs-tip/Main_Page