用TCL(工具命令語言)管理Tornado (for VxWorks) 可啟動工程

trium_KW發表於2016-03-25

儘管多數情況下要寫VxWorks嵌入式應用程式程式碼常用Tornado程式設計環境,但有時可能會需要在命令列下完成簡單的Tornado工程管理。本教程教授瞭如何將簡單的工程管理遷移到Tornado外部並在命令列下實現(雖然這樣做無法體驗Tornado下的一些方便的功能)。

0. 準備Tornado軟體。首先得有Tornado的全套軟體。我的是Tornado2.2。Tornado是否經過破解或是否安裝都問題不大,只要有它的安裝目錄就可以。

1. 配置環境。Tornado環境中已經配好了各種環境變數,所以我們要向在普通cmd下實現Tornado的基本功能,也需要手動配置相應的環境。a) 新建環境變數WIND_BASE,其值為Tornado的安裝目錄(例如我的Tornado安裝在D盤Tornado2.2目錄下,那麼WIND_BASE值為D:\Tornado2.2;b) 新建環境變數WIND_HOST_TYPE,如果是Windows使用者,那麼需要將其值設為x86-win32,如果不是Windows使用者,那麼憑本人的知識就不太清楚了;c) 將%WIND_BASE%\host\%WIND_HOST_TYPE%\bin加入PATH環境變數;d) 新建環境變數DIABLIB,其值為%WIND_BASE%/host/diab(注意斜槓的方向)。注意這些變數必須真得加到系統環境變數中而不是僅在命令列上輸SET WIND_BASE=D:\Tornado2.2等等。

2. 配置diab和gnu工具鏈。在cmd中執行以下兩條批處理命令:

wtxtcl.exe %WIND_BASE%/host/resource/tcl/app-config/Project/gnuInfoGen.tcl diab
wtxtcl.exe %WIND_BASE%/host/resource/tcl/app-config/Project/gnuInfoGen.tcl gnu

3. 基本的工程管理方法(建議將下面的每條內容都寫到TCL指令碼檔案中以方便呼叫)

a) 建立新工程(本例中BSP(板級支援包)以三星的嵌入式開發板S3c2410BP為例)

# 載入過程庫檔案cmpScriptLib.tcl,其中定義了工程管理所需的各種方法
source [wtxPath host resource tcl app-config Project]cmpScriptLib.tcl

# 嘗試建立名為"Project0"的可啟動工程,注意Project0一定不能是已經存在的工程
# 新工程位於%WIND_BASE%\target\proj目錄下,該目錄由可接受任意個引數的命令wtxPath指定
# S3c2410BP是BSP名,BSP應放在%WIND_BASE%\target\config目錄下
cmpProjCreate S3c2410BP [wtxPath target proj Project0]Project0.wpj
cmpProjClose

 

b) 刪除工程(以刪除工程"Project0"為例)

source [wtxPath host resource tcl app-config Project]cmpScriptLib.tcl

cmpProjOpen [wtxPath target proj Project0]Project0.wpj
cmpProjDelete

 

c) 向工程(以Project0為例)中新增檔案(以D:\my_directory\my_source_file.c為例)

source [wtxPath host resource tcl app-config Project]cmpScriptLib.tcl
cmpProjOpen [wtxPath target proj Project0]Project0.wpj
cmpFileAdd d:/my_directory/my_source_file.c
cmpProjClose

 

d) 從工程(以Project0為例)中移除檔案(以D:\my_directory\my_source_file.c為例)

source [wtxPath host resource tcl app-config Project]cmpScriptLib.tcl
cmpProjOpen [wtxPath target proj Project0]Project0.wpj
cmpFileRemove d:/my_directory/my_source_file.c
cmpProjClose


e) 獲取工程中包含的檔案列表(一行一個檔名,以Project0為例)

source [wtxPath host resource tcl app-config Project]cmpScriptLib.tcl
set projId [cmpProjOpen [wtxPath target proj Project0]Project0.wpj]
set file_list [prjFileListGet $projId]
cmpProjClose
foreach item $file_list {
    puts $item
}


f) 重新編譯工程(以Project0為例)

source [wtxPath host resource tcl app-config Project]cmpScriptLib.tcl
cmpProjOpen [wtxPath target proj Project0]Project0.wpj
cmpBuild clean
cmpBuild
cmpProjClose


 

本教程至此結束,若對TCL語言不很熟悉,請參閱工具命令語言(TCL)的相關教程。

相關文章