MiniGUI的vxworks環境移植(1): vxwork/tornado環境簡介

VxWorks的特點主要有:微內核結構(最小結構<8KB),高效的任務管理,靈活的任務間通信,微秒級中斷處理,符合POSIX 1003.1b實時擴展標準,滿足TCP/IP網絡標準,靈活的從ROM、磁盤或網絡的引導能力,多處理器支持,快速、靈活的I/O系統,MS-DOS和 RT-11文件系統,完全符合ANSI C標準,多於1100種功能例程。

Tornado工具,是一整套強有力的交叉開發工具;VxWorks運行時系統,是運行在目標機上的高性能、可裁剪的實時操作系統;連接目標機和宿主機的通信選項,如以太網、串行線路、在線仿真或ROM仿真等。Tornado能夠支持幾乎所有的工作平臺和目標處理器,所提供的工具可用於所有目標機,並具有兩種調試模式(系統和任務模式)。除了基本的功能和開發工具,Tornado還具有先進的系列網絡產品,極大地擴展了Tornado的網絡特性並增強了嵌入式微處理器的網絡特性。

 

上面是從網上找的關於vxworks和tornado的簡單介紹。通過對vxworks產品的瞭解,感覺還是這個介紹比較全面的說明了整個產品的框架內容

 

就我看來, tornado不僅僅是vxworks的開發環境,也可以做模擬,也可以配合網絡直接和vxworks系統交互來完成一些調試,訂製系統組建的功能,實在很強大的一個工具。簡單的來看,兩者的配合就是按照下圖的架構來完成的。

tornado and vxworks

 

1.  tornato上的新項目的創建

 

新建tornato的項目,選擇file菜單中的新建項目就可以彈出如下:

新建項目窗口

可以看出上面有兩個選擇:

1. bootable項目

2. downloadable項目

 

簡單的可以這樣理解,bootable項目就是一個完整的可以直接下載到vxworks目標機上的鏡像系統,裏面包含了些系統內核。而downloadable項目就是應用程序,需要內核文件的基礎上運行,本身沒有內核文件。

 

這樣看來,如果不需要做一個完整的燒錄到目標機的系統的話,那就選擇可以調用模擬的downloadable項目好了。

 

2. 編譯自己的第一個文件

在自己新建的項目裏面編寫好自己的c代碼(又見helloworld)

#include <vxworks.h>

#include <stdio.h>

 

int main()

{

    printf("hello world~/n");

}

 

這個代碼我們需要先選擇編譯,注意下面的build toolbar

build toolbar

 

按鈕依次是build project, Rebuild All, Compile selected source file, dependencies,  Stop build Update

最後一個是Download object file or image 就是把編譯好的程序下載到模擬器的環境中,這裏又有問題了,怎麼啓動模擬器的環境呢?

 

3. 模擬器 target simulator

目標機模擬器,其實就是一個vxworks的環境模擬。那怎麼啓動呢?就是通過vxworks simulator這個按鈕來開啓虛擬機的環境的。按這個按鈕之後會有兩個選項,一個是standard,一個是customized,選擇standard就可以開啓一個標準的虛擬機環境來進行模擬了。


4. shell, windsh

tornato的shell環境就是windsh,這個shell環境很強大,他支持幾乎大部分的c語言表達式,也就是說c語言可以直接作爲命令輸入,如printf("hello world~");就可以在vxworks的虛擬環境中打印出helloworld~. 同時,這個環境還支持TCL腳本。通過windsh按鈕就可以打開這個shell環境了。如下圖

 

windshell window

 

 

5. 目標文件下載到虛擬機

 

我們在第2段裏面就提到了,我們已經把我們的helloworld.c文件編譯成了.o目標文件。那怎麼在程序中執行這個.o文件呢。首先要把編譯好的目標文件下載到虛擬機的vxwork環境中。在編譯好的目標文件上點右鍵,選擇download。然後程序就會被下載到虛擬機。在下載完成了之後,我們可以通過moduleShow命令來查看目前系統中裝載了什麼目標庫。如果helloworld.o這個已經在裏面了。ok,我們下載就成功了。

 

6. 運行和調試

 

tornato作爲一個開發環境,這兩塊的功能還是很強大的。這裏就不一一提到了。因爲很多東西可能也不是一句兩句就能說完的。不過,他所有的這些功能都是很容易使用的。作爲開發人員的我們可以說對這一塊是最熟不過的了。

 

以上,就是自己通過簡單的使用tornado做的隨筆。有些東西我接觸的也不是很深,就先當做一個學習的過程吧。後面我還會提到怎麼把minigui通過tornado交叉編譯到vxworks系統上去。

 

這一塊內容,我也是邊學邊記下的。可能有些自己會在以後的實踐過程中再修改。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章