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系統交互來完成一些調試,訂製系統組建的功能,實在很強大的一個工具。簡單的來看,兩者的配合就是按照下圖的架構來完成的。
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 project, Rebuild All, Compile selected source file, dependencies, Stop build Update
最後一個是Download object file or image 就是把編譯好的程序下載到模擬器的環境中,這裏又有問題了,怎麼啓動模擬器的環境呢?
3. 模擬器 target simulator
目標機模擬器,其實就是一個vxworks的環境模擬。那怎麼啓動呢?就是通過這個按鈕來開啓虛擬機的環境的。按這個按鈕之後會有兩個選項,一個是standard,一個是customized,選擇standard就可以開啓一個標準的虛擬機環境來進行模擬了。
4. shell, windsh
tornato的shell環境就是windsh,這個shell環境很強大,他支持幾乎大部分的c語言表達式,也就是說c語言可以直接作爲命令輸入,如printf("hello world~");就可以在vxworks的虛擬環境中打印出helloworld~. 同時,這個環境還支持TCL腳本。通過按鈕就可以打開這個shell環境了。如下圖
5. 目標文件下載到虛擬機
我們在第2段裏面就提到了,我們已經把我們的helloworld.c文件編譯成了.o目標文件。那怎麼在程序中執行這個.o文件呢。首先要把編譯好的目標文件下載到虛擬機的vxwork環境中。在編譯好的目標文件上點右鍵,選擇download。然後程序就會被下載到虛擬機。在下載完成了之後,我們可以通過moduleShow命令來查看目前系統中裝載了什麼目標庫。如果helloworld.o這個已經在裏面了。ok,我們下載就成功了。
6. 運行和調試
tornato作爲一個開發環境,這兩塊的功能還是很強大的。這裏就不一一提到了。因爲很多東西可能也不是一句兩句就能說完的。不過,他所有的這些功能都是很容易使用的。作爲開發人員的我們可以說對這一塊是最熟不過的了。
以上,就是自己通過簡單的使用tornado做的隨筆。有些東西我接觸的也不是很深,就先當做一個學習的過程吧。後面我還會提到怎麼把minigui通過tornado交叉編譯到vxworks系統上去。
這一塊內容,我也是邊學邊記下的。可能有些自己會在以後的實踐過程中再修改。