『壹』 請教VxWorks的.o庫文件的編譯方法
查看ldpentium命令幫助吧 可以達到你的目的
1)把多個.c文件編譯成對應的.o文件,然後匯總編譯成一個.out文件;
2)把多個.c文件編譯成對應的.o文件;
3)把多個.c文件編譯成對應的.o文件,然後匯總編譯成一個.a文件;(把這個匯總的庫文件拿到其它工程中使用,一編譯就報錯)
能否通過修改Makefile文件,達到".c"+"small.o" = "big.o"的目的。
『貳』 如何把openssl庫在VxWorks下進行編譯或者說把openssl庫編譯成vxworks下能用的.a庫文件,如何去做
下一個完整版的cygwin,免費開源的東西,官網上就有下的
然後將工程文件拷入cygwin工作目錄
在cygwin控制台下CD到工程目錄
與上面那些步驟同時,先進入Tornado的host/x86-win32/bin目錄,把該目錄下的cygwin1.dll刪除或者重命名(建議保留,因為Tornado編譯還要用這個),然後把這個bin目錄設置到windows的path環境變數中。記下bin目錄下所用的編譯器cc和歸檔程序ar的名字(比如PPC的架構就叫ccppc和arppc)
再在cygwin控制台下輸入 CC=ccppc AR=arppc ./configure 運行(PPC為例,如果為其他架構等號後面的值做相應修改)
等配置完畢後打開生成的Makefile文件 找到-IInclude這一個flag修改成-I/cygwindriver/e/tornado/target/h (這里目錄也只是舉例,根據自己情況修改)
再之後加上-I/lib/include
保存
再在cygwin控制台下輸入make運行
這時候應該就可以開始編譯了
但是光做這些修改可能還是會多多少少的報錯
移植細節我這一時半會也沒辦法細說 只能自己看報錯來改了
『叄』 銆愮揣鎬ャ慥xWorks 緙栬瘧閿欒錛岀己灝/target/h/make榪欎釜鐩褰曪紝奼傚ぇ紲炲府蹇
涓轟粈涔堟槸鍦↙INUX鐜澧冧腑緙栬瘧錛燂紵
璇濊翠綘涓嬬殑鏄閭d釜騫沖彴鐨勭増鏈錛孷X5.5 for what錛
Vxworks5.5鐨勫唴鏍告湰韜鍦ㄧ紪璇戠殑鏃跺欐槸渚濋潬tornado鐜澧冭繘琛岀紪璇戠殑錛岄噷闈㈡湁鍖呭惈浜嗚稿氬叕鏈夊拰縐佹湁鐨勮祫婧愶紝浣犺繖閲屾彁紺虹殑涓嶆槸娌℃湁婧愮爜錛岃屾槸娌℃湁緙栬瘧搴擄紝榪欎簺涓滆タ鍙鏈夊湪tornado閲岄潰鎵俱
浣犲彲浠ヤ粠緗戜笂涓嬩竴涓猼ornado2.2瀹夎呬竴涓嬶紝鍙﹀栦綘鍐嶆弿榪頒笅浣犵殑闇奼傚惂錛岀洰鍓嶆潵鐪嬩綘榪欑嶆柟寮忎粠鏍規湰涓婃槸瀹屽叏琛屼笉閫氱殑
『肆』 vxworks 使用什麼編譯器
我了解只有 gnu,樓上的回答很全面啊。
『伍』 如何在VMWare上安裝VxWorks操作系統
准備工作
我們假設您有一台普通配置的PC機,並安裝了Windows2000操作系統。其次您需要安裝Tornado 2.2 for pcPentium開發環境。預設安裝的Tornado 2.2 for pcPentium可能不包括pcPentium的BSP組件,但該組件可以從風河公司(Windriver)的網站免費下載。
我們將在下文以WIND_BASE引用Tornado的安裝路徑。
其次是要安裝VMWare軟體,這里我們使用4.0的版本。如果您還沒有該軟體,也可以從VMWare的網站下載試用版。
最後,由於Tornado自帶的PC-NET網卡驅動有問題,所以需要下載AMD的PC-NET網卡的VxWorks系統驅動,可以從AMD網站免費下載。
一張1.44M的軟盤,用於製作系統引導盤。
准備並安裝好以上軟體後,就可以開始下一步的工作了。
開始安裝
編譯網卡驅動程序
VMWare為運行於其上的操作系統提供虛擬網卡支持,該網卡類型即為AMD的PC-NET。實際上,在Tornado開發包中已經包含了該類型網卡的驅動程序,但經過測試,對於VMWare無法正常工作,所以您需要從AMD的網站下載最新的驅動程序。
下載得到的是一個可執行的安裝程序,運行該程序將得到一個壓縮包和一個幫助文件,按照該幫助的要求,將壓縮包直接釋放到Tornado目錄下。如果提示是否允許覆蓋文件,則選擇允許。
此後按如下步驟完成驅動程序的編譯和替換:
打開一個控制台窗口,運行批處理程序:$(WIND_BASE)\host\x86-win32\bin\ torVars.bat;
重新定位到$(WIND_BASE)\target\src\drv\end目錄,運行:
make CPU=PENTIUM tool=gnu ln97xend.o
其間會產生一些警告,但這不會影響我們的工作。
重新定位到$(WIND_BASE)\target\lib\pentium\PENTIUM\common目錄,並將上一步生成的文件ln97xend.o復制到此目錄下。備份此目錄下的文件libdrv.a;
運行命令arpentium -d libdrv.a ln97xEnd.o,刪除libdrv.a中原有的ln97xEnd模塊,然後再運行命令:
arpentium -ra iOlicomEnd.o libdrv.a ln97xEnd.o
將我們剛剛創建的新模塊添加進去。
到此有關網卡驅動的設置就完成了。注意不要關閉這個窗口,後面還要使用。修改配置文件
在這一節中,我們要修改編譯VxWorks的配置頭文件Config.h中定義的一些參數,使編譯出來的系統引導程序和VxWorks的映象符合我們的要求;同時還要修改sysLn97xEnd.c這個文件,以使系統的網路功能正常運行。
定位目錄到$(WIND_BASE)\target\config\pcPentium並打開該目錄下Config.h文件;
我們首先要修改VxWorks的啟動參數。先查找到定義DEFAULT_BOOT_LINE宏的地方,修改預處理條件CPU == PENTIUM分支下的定義如下:
#define DEFAULT_BOOT_LINE \
"lnPci(0,0)your_host_name:d:\\vxWorks h=192.168.80.169 e=192.168.80.254 u=target pw=vxworks tn=target"
其中:
lnPci(0,0)指定了使用第0個網卡和第0個處理器,lnPci這個標識會因為使用的驅動程序不同而有所不同,但這里用lnPci就可以了;
your_host_name指定您的主機的名字,使用Windows系統的主機名就可以;
d:\\vxWorks指定了VxWorks映象下載的完整路徑;
h=192.168.80.169是主機的IP地址,就是您當前正在使用的系統的IP地址;
e=192.168.80.254是目標機的IP地址,也就是未來VxWorks操作系統的IP地址,您只要任意指定一個不沖突的IP地址即可,這里我們假設您的目標機IP地址和主機IP地址在同一個網段內;
u=target指定了FTP伺服器的用戶名,這個FTP就是用來下載VxWorks映象的,後面還會提到;
pw=vxwroks是用戶名對應的口令;
tn=target指定目標機的名字,任意指定即可;
您可以參考Tornado自帶的手冊以獲取更多信息;
下面我們要指定使用什麼樣的網卡驅動程序。首先查找「Network driver options」這段文字,之後您可以看到在該注釋後面定義了一系列的有關網卡驅動的宏定義。注意保證INCLUDE_END和INCLUDE_LN_97X_END這兩個宏處於定義狀態(define),其他的宏都處於未定義狀態(undef);
預設情況下,VxWorks系統是不接受外部輸入設備(如鍵盤)的輸入,也不向外部輸出設備(如顯示器)輸出數據。為了便於調試,我們必須改變它的這種預設狀態。我們查找定位宏INCLUDE_PC_CONSOLE,然後保證其處於定義狀態(define)即可;
到此為止,對config.h文件的修改就完成了,保存修改,然後再打開同一目錄下的sysLn97xEnd.c文件;
這一步修改的目的是要使網卡正常工作。我們先定位到「memory-mapped IO base」這段文字,然後將其前面的參數由pciRsrc[endUnit].bar[1]修改為NONE,這樣就可以了。最後別忘了保存。
到此為止,全部的修改工作都完成了,下一步就可以開始編譯連接了。編譯程序
這一節我們要編譯生成bootrom引導程序和VxWorks運行映象。
打開您的Tornado開發工具,在Build菜單下選擇Build Boot ROM,彈出如下對話框:
在BSP列表中選擇pcPentium,而在Image to build列表中分別選擇bootrom和gnu。完成選擇後,點擊OK按鈕就開始引導程序的編譯了。編譯產生的文件bootrom將保存在$(WIND_BASE)\target\config\pcPentium目錄下。
編譯生成bootrom後,還要創建一個VxWorks映象(image),也就是VxWorks操作系統本身的代碼。
創建一個「bootable VxWorks image」的工程;
選擇您需要的VxWorks組件。這一步是可選的,如果您只想使用預設的配置,那根本就不需要這一步;但如果您想使用額外的組件,例如,您可能想通過telnet連接VxWorks系統,這時就需要在Workspace窗口的VxWorks選項卡中選擇telnet sever對應的組件,如下圖:
在這個例子中我們選擇了兩個重要的組件:Telnet server 和 Target shell 。前者使我們可以通過Telnet協議登錄到VxWorks操作系統中;後者則可以讓我們通過命令行控制VxWorks系統。
完成選擇後,即可開始編譯程序;
到此我們已經生成了VxWorks的系統引導程序和運行時的代碼映象。這里還要提醒讀者,在您每次修改完系統的配置信息(如:config.h)後,都要重新創建一個工程來編譯VxWorks映象,以免出現代碼不一致的問題。
將生成的名為「vxworks」的文件復制到D盤根目錄下。這個路徑是由上面我們所設置的DEFAULT_BOOT_LINE宏中的路徑參數決定的,必須保持二者一致。
製作引導磁碟
現在開始製作VxWorks系統引導磁碟,用於引導裝載VxWorks運行映象。
我們回到「編譯網卡驅動程序」一節中所打開的控制台窗口,定位目錄到$(WIND_BASE)\target\config\pcPentium,插入您已經格式化好的軟盤,然後運行:
mkboot a: bootrom
該命令將在軟盤上建立VxWorks系統引導分區,並將引導程序復制到軟盤上。
這里再額外向您介紹一個虛擬軟盤的工具:RamDiskNT,它可以在內存中建立一個虛擬的軟盤,對於提高VxWorks的啟動速度有很大幫助。配置FTP伺服器
這里的FTP伺服器用於在系統成功引導後,下載VxWorks的運行時映象。我們這里使用Tornado開發環境自帶的FTP伺服器。
打開Tornado FTP Server,選擇「Security」菜單下的「Users/Rights」子菜單,彈出如下對話框:
當User Name為「target」時,修改「Home Directory」為D盤根目錄(此路徑由上面的DEFAULT_BOOT_LINE參數決定),同時修改口令為「vxworks」,最後點擊「Done」按鈕完成修改;
為了便於調試,我們還要打開FTP Server的日誌功能。選擇「Logging」菜單下的「Logging Options」子菜單,彈出如下對話框,其中除了「Winsock Calls」外,讓其他選項全都處於開啟狀態。
保持FTP Server窗口處於打開狀態(這樣FTP伺服器就處於運行狀態)。
創建VxWorks系統
打開您的VMWare Workstation,在File->New菜單下選擇創建一個新的虛擬機(Virtual Machine),按照其向導幫助,完成虛擬機的配置。在選擇操作系統類型時,選擇「Other」,其餘選項均使用預設值就可以了。
完成以上配置後,點擊右側窗口中的「Start this virtual machine」,系統即開始引導運行,如下圖所示:
在引導過程中,您會遇到一個7秒鍾的等待,以決定是使用預設的引導參數,還是手動輸入引導參數。這里我們選擇前者,所以不需要做任何工作。
成功引導後,系統會自動從FTP Server下載映象,並開始運行,得到如下畫面:
到此,我們已經成功的在VMWare上安裝了VxWorks操作系統。
需要注意的是,上面的畫面會因為選擇組件的不同而略微有所不同(例如,如果您沒有選擇target shell,就不會出現命令行提示符),但一般不會影響後續操作。
配置聯機調試環境
裝好系統後,您肯定還希望將自己編寫的應用程序下載到目標機進行調試,下面我們就完成這一部分的配置工作。
打開您的Tornado開發環境,選擇「Tools->Target Server->Configure」菜單,彈出如下對話框:
在「Description」中任意填寫一個名字,這里是「net00」;在「Available Back」中選擇「wdbrpc」,並在下面的IP地址框中填寫目標機的IP地址,這里是「192.168.80.254」(由DEFAULT_BOOT_LINE參數決定);將「Target Server Properties」下拉框更改至「Core File and Symbols」,並在「File Path」一項中選擇您的映象的完整路徑,這里是「D:\vxWorks」(由DEFAULT_BOOT_LINE參數決定)。
完成以上兩項配置,點擊「Launch」按鈕,就可以啟動Target Server了。
再回到Tornado開發環境,在工具條上的Target Server下拉框列表中選擇「192.168.80.254@your_host_name」。這時您會發現工具條中一些原先處於「禁用」狀態的工具按鈕,現在都已經處於「激活」狀態了。
現在您就可以開始聯機調試您的VxWorks應用程序了。
『陸』 請詳細介紹一下VxWorks
國外商用嵌入式實時操作系統 VxWORKS 介紹
1 綜述
WRS(Wind River System) 公司是國際著名的嵌入式實時操作系統的供應商。其產品 VxWroks 早期運行在 VRTX 、 pSOS 及自身運行較慢的 WIND 內核等實時內核之上,從 5.0 發行起,不再支持別的內核,只運行自己的 WIND 內核(重寫的 WIND 內核)。這個系統的基本設計思想是要充分利用 VxWORKS 和 Unix/Windows 的優點,使之與嵌入式軟體相互補充達到最優。
Unix 和 Windows 雖然用戶界面友好、開發工具豐富,但是由於嵌入式實時系統的時間、空間的局限性,他們不適用於實時應用開發。傳統的實時操作系統提供的用於開發的環境資源(非實時組件)又非常貧乏。 VxWORKS 使嵌入式系統開發人員能在嵌入開發環境下更好的使用 Unix/Windows 。
VxWORKS 能夠一方面處理緊急的實時事務,另一方面,讓主機用於程序開發和非實時的事務。開發者可以根據應用需要恰當地裁減 VxWORKS 。開發時可以包含附加的網路功能加速開發過程,在產品最終版本中,再去掉附加功能,節省系統資源。
WRS 公司還提供最新一代的 IDE---- 主機上的集成開發環境 Tornado, 開發者通過 Tornado 來編輯、編譯、連接和存儲實時代碼,但是實時代碼的運行和調試都在 VxWORKS 上進行。最終生成的目標映像可以脫離主機系統和網路,單獨運行在 ROM 、磁碟(軟 / 硬)或 FLASH 上。主機系統和 VxWORKS 可以在一個混合應用中共同工作:通過網路聯接,主機使用 VxWORKS 系統作為實時伺服器。
1995 年開發出的 Tornado ,贏得電子設計新聞該年度的「嵌入式開發軟體創新獎「( Electronic Design News' 「Embedded Development Software Innovation of the Year」 award ) [9] 。
2 特點
• 支持多種硬體環境
VxWORKS 操作系統支持的 CPU 包括: Power PC 、 68K 、 CPU32 、 Space 、 i960 、 x86 、 Mips 等等;同時支持 RISC 、 DSP 技術。
• 微內核結構,任務間切換時間短,中斷延遲小,網路流量大。
• 較好的可剪裁能力,可裁減組件超過 80 個,用戶通過交叉開發環境方便地進行配置。
• 支持應用程序的動態連接和動態下載,使開發者省去了每次調試都將應用程序與操作系統內核進行連接和下載的步驟,縮短了編輯 / 調試的周期。
• 較好的兼容性:兼容 POSIX1003.1b 標准( Portable Operating System Interface for computer Environments,= Portable Operating System UNIX , IEEE 1003.1 ) 。
• 高可靠性、高可用性、高安全性。
3 組成
VxWORKS 包括進程管理、存儲管理、設備管理、文件系統管理、網路協議及系統應用等部分,佔用很小的存儲空間,支持高度裁減,保證系統能以較高的效率運行。 VxWORKS 體系結構如圖 1.5 所示 [9][10][59] 。
VxWORKS 包括以下部分:
• Wind 內核
Wind 內核包括基於優先順序的搶占式多任務調度機制、任務間的同步和進程間的通訊機制以及中斷處理、看門狗和內存管理機制。不僅提供多種信號量支持任務間同步和互斥的機制,而且提供消息隊列、管道、套接字和信號等機制支持進程間通信。
• I/O 系統
VxWORKS 提供了快速靈活的與 ANSI C 兼容的 I/O 系統,包括 UNIX 標準的緩沖 I/O 和 POSIX 標準的非同步 I/O 。還包括多個驅動程序(包括網路驅動、管道驅動、 RAM 盤驅動、 SCSI 驅動、磁碟驅動、顯示驅動、鍵盤驅動、並口驅動等)。
• 文件系統
VxWORKS 提供了快速文件系統適合於實時系統應用。它擁有多種支持使用塊設備的本地文件系統。這些設備都使用一個標准介面,從而使得文件系統能夠靈活地在設備驅動程序上移植。
• 板級支持包 BSP(Board Support Package)
板級支持包對各種板的硬體功能提供了統一的軟體介面,它包括硬體初始化、中斷的產生和處理、硬體時鍾和計時器管理、局域和匯流排內存地址映射、內存分配等等。每個板級支持包括一個 ROM 啟動( Root ROM )或其他啟動機制。
• 網路設施與產品
• 虛擬內存與共享內存
VxWORKS 的 VxWMI 為帶有 MMU ( Memory Mapping Unit )的目標板提供了虛擬內存機制。 VxMP 提供了共享信號量、消息隊列和不同處理器之間的共享內存區域。
• 目標代理( Target Agent )
目標代碼遵循 WDB(Wind Debug) 協議,允許目標機與主機上的 Tornado 開發工具相連。如圖 1.6 所示,目標代理是以 VxWORKS 的一個任務的形式運行。
Tornado 目標伺服器向目標代理發送調試請求。調試請求通常決定目標代理對系統中其他任務的控制和處理。默認狀態下,目標伺服器與目標代理通過網路進行通信,用戶也可以改變通信方式。
VxWORKS 操作系統自 1996 年進入中國,廣泛應用於通信、國防、工業控制、醫療設備等嵌入式實時應用領域。它是研究嵌入式實時操作系統的一個極好對象。