?? vxworks中文faq.txt
字號:
VxWorks中文FAQ
前言(Surface):
隨著國內使用VxWorks的用戶越來越多,為了方便VxWorkers少走一些彎路,特別推出了中文FAQ,其中
很多的FAQ來自comp.os.vxworks和原創。(很多FAQ都可以在該新聞組找到英文版)
文檔的FAQ總共分為7大類:
1.入門FAQ
2.Tornado工具FAQ
3.BSP FAQ
4.文件系統 FAQ
5.網絡 FAQ
6.VxWorks操作系統 FAQ
7.其它 FAQ
基本涵蓋了Tornado/VxWorks使用中的主要方面。
文檔組織本身沒有邏輯上的關聯,經過分類,只是松散的組合在一起,可根據你的需要選擇閱讀某一部
分。
為了保持本文檔的開放性和可擴充性,歡迎大家把自己曾經碰到過的問題及其解決辦法按分類加到文檔
里來。在修改本文檔時,請把修改記錄加到歷史記錄里。
歡迎任何人指出文檔中的錯誤之處,請把錯誤之處發到附錄B里的任一個EMAIL里,在此對那些問題的提
出者、回答者以及文檔的維護者一并表示感謝!
當前版本(Current Version):
version 0.1
歷史(History):
2002-08-27 wys205 create 0.1 version
目錄(Content):
1.入門FAQ
1.1 概念
1.2 環境
1.3 編程
2.Tornado工具FAQ
2.1 編譯器和鏈接器
2.2 調試器
2.3 FTP
2.4 主機工具
2.5 安裝
2.6 MAKEFILE
2.7 工程
2.8 目標機服務器
2.9 Shell
2.10 Telnet
2.11 Tornado
2.12 版本控制
2.13 Visual Studio集成
2.14 Windsh
2.15 WindView
3.BSP FAQ
3.1 不同BSP
3.2 處理器
3.2.1 Power PC
3.2.2 I960
3.2.3 MIPS
3.2.4 ARM
3.2.5 x86
3.3 Bootstrap
3.4 配置你的VxWorks
3.5 VME
3.6 VxWorks環境 environment
3.6.1 usrSerial.c
3.6.2 prj_vxworks.tcl
3.7 PCI
3.8 網卡
4.文件系統 FAQ
4.1 Dos文件系統
4.2 Flash文件系統
4.3 Floppy-disk文件系統
4.4 RAM-disk文件系統
4.5 基本文件系統問題
5.網絡 FAQ
5.1 配置問題
5.2 ARP
5.3 DHCP
5.4 FTP和TFTP
5.5 PPP
5.5.1 PPP on Windows 95
5.5.2 PPP on Windows NT
5.5.3 PPP on Solaris
5.6 Sockets
5.7 Telnet
5.8 SNMP
5.9 其它網絡相關問題
6.VxWorks操作系統 FAQ
6.1 C++ issues
6.2 Communication problems
6.3 Interrupts
6.4 LoadModule problems
6.5 pthreads
6.6 Reboot
6.7 Semaphores
6.8 Simulator (VxSim)
6.9 Task related items
6.10 Time/timer related items
6.11 Wind Web Server related items
6.12 Zinc/windML related items
6.13 Other items
6.14 VxWorks AE issues
6.15 I/O 操作
7.其它 FAQ
7.1 Hard delay
7.2 Memory leaks
7.3 Corba engines
7.4 Web servers
7.5 NTP usage
7.6 Performace / Benchmarks
7.7 SNMP
7.8 Lint
7.9 Encryption
7.10 其它
附錄A.一些有用的連接
附錄B.維護
1.入門FAQ
1.1 概念
1.1.0 什么是VxWorks?
A: VxWorks是風河公司為分布式環境設計的具備網絡功能的實時操作系統。它可以運行在不同的平臺上,
如:MC680x0, MC683xx, Intel i960, Intel i386, R3000, SPARC, Fujitsu SPARClite, and TRON Gmicro
等系統上。它要求采用主機來開發程序,支持的主機有Sun3, Sun4, HP9000, IBM RS-6000, DEC, SGI,
和MIPS等。
它不在目標機上運行開發系統軟件如:編譯器、連接器、編輯器等。開發環境是基于交叉開發或遠程開發
的辦法。你需要某種類型的主機如UNIX等來運行編譯器和調試器,編譯后的代碼能下載到目標機上,作為
VxWorks映象的一部分。在開發過程中,獨立的目標代碼可以動態下載到運行的目標機系統上。最終的
應用程序被寫到ROM中。
1.1.1 最近剛開始學習VXWORKS,越看越迷糊:
1)BSP,bootImage,VxWorksImage三者的關系是什么?BSP是BootImage的一部分還是VxWorksImage 的一部
分?對于可以自啟動的系統是不是三者合在一起生成一個VxWorks Image?
2)應用程序代碼是和VxWorks內核一起編譯生成一個VxworksImage嗎?
以上問題是針對于代碼存放在rom介質上的系統(如flash)。希望各位大俠不吝賜教!謝謝。。。
A:BSP 是用來支持你的硬件的軟件, 它包含在你的VxWorksImg里面.
對于ROM啟動的系統來說, BootImg是ROM里代碼的第一部分, 用來
在開機時首先運行. 如果你的所有代碼都在ROM上, 則引導程序把
VxWorksImg拷貝到系統內存, 然后再跳轉的系統內存去執行.
BSP的作用屏蔽不同的硬件結構(如CPU和外圍芯片)向VxWorks的Kernel提供
它所需要的一個統一的接口調用(如時鐘)
(by 泡泡)
bsp: 板級支持包,主要完成目標硬件的初始化工作,提供操作系統一個統一的接口,負責硬件操作,
如中斷處理,啟動,停止,等工作。Bootimage:引導鏡像,我向如果把boot翻譯成啟動不是很是當的說法,
這是一個引導程序,負責把目標系統環境初始化,最小的程度,如啟動了串口,或者網絡接口,可以使用這
些接口現在程序,與主機通信,然后獲取你需要的OS-vxworksimage vxworksimage-包含vxworks內核以及
各種組件的鏡像,也就是object images,這是真正的操作系統,通常bootimage負責獲取這個鏡像,然后跳
到鏡像所在的位置開始執行。(by hongwind )
1.1.2 如何學習VXWORK,PSOS入門?
A:初次上站,感覺大家水平一般,入門級選手較多,實時多任務操作系統和以前大家使用的低端產品,如51
機在原理上是不同的,因此大家最好先學習多任務操作系統的原理。否則無法深入學習。
推薦一本書:坦尼博姆著:《操作系統》,各地都有的賣,主要是講MINIX的原理,其實就是UNIX系列操作
系統的實現原理,由于VXWORKS和PSOS都是這個系列的操作系統,因此理解了這本書,也就理解了它們的工
作原理。必將事半功倍,而且對你理解WINDOWS的工作原理也很有好處。 (by bruin)
1.1.3 BSP和驅動的關系?
A: BSP主要完成硬件和系統的初始化工作:
CPU初始化;
總線初始化;
內存控制器初始化;
將代碼、數據拷貝到RAM;
中斷控制器初始化;
系統時鐘初始化;
初始化操作系統;
調用驅動程序初始化函數;
創建設備;
Device Driver主要是按照設備模型管理設備,并把自己掛到操作系統的適當模塊上(I/O系統,文件系統或
者直接向應用程序提供接口):
塊設備驅動:掛到文件系統上;
字符設備:掛到I/O系統上;
串行設備:掛到TTY模塊上;
網絡設備:掛到網絡模塊上。
1.1.4 IBM PowerPC 和 Motorola PowerPC有什么不同?
A: PowerPC是早期Motorola和IBM聯合為Apple的MAC機開發的CPU芯片,IBM PowerPC 和 Motorola PowerPC
的內核都是采用PowerPC,主要用于嵌入式系統。
1.1.5 什么是H.GOMMA原則?
A:任務劃分原則:
對不同的外設,應劃分為不同的任務;
對于突發性事件,應劃分為不同優先級的不同任務;
含有大量運算的事件歸為一個任務;
存在功能耦合或偶然耦合的事件,劃為一個任務;
對于經常重復發生的事件,不同發生頻率的事件劃分為不同任務。
1.2 環境
1.2.1 斑竹tornado都是支持那些cpu??能列一下嗎或哪里能找到
斑竹tornado都是支持那些cpu??能列一下嗎或哪里能找到!!!
A:開發平臺: Windows NT, Sun Solaris, SunOS, HP-UX, Win95
支持處理器: x86, 68k, PPC, CPU 32, i960, SPARC, SPARCLite, SH, ColdFire, R3000, R4000,
C16X, ARM, MIPS ...
1.3 編程
1.3.1 vxworks,bsp中有些定義怎么找不到用到的地方,還有些定義找不到在哪里定義過了,比如
MAMR_PTA_SHIFT,哪位大俠給解答一下。不勝感激!
A:在h/drv/multi/ppc860Siu.h里。看代碼還是用Source Insight
(by vxfree)
1.3.2 當文件名為*.C時,TORNADO不能正常編譯該文件?
A: 把文件名改為*.c后,就可以了。
1.3.3 inline的含義?
A:在調用函數的 地方直接嵌入函數的代碼,主要用于加快代碼執行。gcc中為__inline__ ANSI C中為inline.
2.Tornado工具FAQ
2.1 編譯器和鏈接器
2.1.1 當我把多個目標文件鏈接成一個時,出現了一個錯誤:
ldppc:built in linker script:43: syntax error 我怎么樣才能消除這個錯誤?
A:請確定你的鏈接器使用了-r參數。
(From: weber.dirk@t-online.de)
2.1.2 我怎樣使用新版本的編譯器?
A:參看如下連接,有一個PPC的編譯器
http://www.newgcc4vxworks4ppc.cjb.net/
2.1.3 當用另一個編譯器編譯代碼時,得到更多的錯誤和警告,怎樣才能讓GCC生成更多的警告信息?
A:首先用-Wall參數打開所有警告開關;另一種生成更多報告的方法就是把文件看作是C++文件,參數為
-x c++.(From: Claudio Ortega, cortega@sinfomed.org.ar)
-Wall不能真正打開所有的警告,我采用由Bruce Evans推薦的參數
而且在FreeBSD環境下,BDECFLAGS變量比較固定。
# BDECFLAGS are a set of gcc warning settings that Bruce Evans has suggested
# for use in developing FreeBSD and testing changes. They can be used by
# putting "CFLAGS+=${BDECFLAGS}" in /etc/make.conf. -Wconversion is not
# included here due to compiler bugs, eg: mkdir()'s mode_t argument.
#
BDECFLAGS= -W -Wall -ansi -pedantic -Wbad-function-cast -Wcast-align \
-Wcast-qual -Wchar-subscripts -Winline \
-Wmissing-prototypes -Wnested-externs -Wpointer-arith \
-Wredundant-decls -Wshadow -Wstrict-prototypes -Wwrite-strings
This set of flags is *much* pickier than -Wall alone.
(From: W Gerald Hicks)
2.1.4 當編譯我的模塊時一切都是好的,但是當我試圖下載時得到一個錯誤:missing symbol "__eabi"?
A:在你的模塊里可能有個main函數,根據PPC "extended Application Binary Interface" (eabi)
標準,main函數必須調用__eabi函數,該函數為運行你的程序設置必要的運行環境。
由于這個原因GNU編譯器在main函數里插入 __eabi函數。
Tornado不提供該函數,因為在實時環境下,你不必寫main函數。VxWorks在應用程序運行前已經設置
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -