1.1嵌入式操作系統及其開(kāi)發(fā)環(huán)境的應用背景
1.1.1 應用挑戰
應用范圍方面:
在嵌入式系統應用中,由于使用16位以下的CPU的資源量較少,任務(wù)比較簡(jiǎn)單,程序員可以
在應用程序中自己管理CPU資源,不一定需要一個(gè)專(zhuān)用的系統軟件,管理CPU。當嵌入式系
統比較復雜而采用32位CPU時(shí)情況就不同了,32位CPU的資源量非常大,尋址可以達到4GB空
間,處理能力也非常強大,可以實(shí)現實(shí)時(shí)多任務(wù)并發(fā)處理,因此如果仍然沿用手工編制CP
U管理程序,面對復雜的應用,就很難發(fā)揮出32位CPU的處理能力,開(kāi)發(fā)出高效可靠的應用
系統。
管理CPU的系統軟件是每一個(gè)系統所必需的,不同的CPU平臺,差異很大。如果都要應用系
統的開(kāi)發(fā)者自己完成,那么每次都要重復開(kāi)發(fā),造成不必要的資源浪費,延長(cháng)了開(kāi)發(fā)周期
,增加了開(kāi)發(fā)成本。而且CPU管理是整個(gè)系統的基礎,任何缺陷都可能引起嚴重的問(wèn)題,這
樣,就使開(kāi)發(fā)者耗費大量的精力放在與應用無(wú)關(guān)的系統管理上。
1.1.2 VxWorks 簡(jiǎn)介
VxWorks是專(zhuān)門(mén)為實(shí)時(shí)嵌入式系統設計開(kāi)發(fā)的操作系統內核,為程序員提供了高效的實(shí)時(shí)多
任務(wù)調度、中斷管理,實(shí)時(shí)的系統資源以及實(shí)時(shí)的任務(wù)間通信。在各種CPU平臺上提供了統
一的編程接口和一致的運行特性,盡可能的屏蔽了不同CPU 之間的底層差異。應用程序員
可以將盡可能多的精力放在應用程序本身,而不必再去關(guān)心系統資源的管理?;赩xWork
s操作系統的應用程序可以在不同CPU平臺上輕松移植。
VxWorks 是美國 Wind River System 公司( 以下簡(jiǎn)稱(chēng)風(fēng)河公司 ,即 WRS 公司)推出的
一個(gè)實(shí)時(shí)操作系統。WRS 公司組建于1981年,是一個(gè)專(zhuān)門(mén)從事實(shí)時(shí)操作系統開(kāi)發(fā)與生產(chǎn)的
軟件公司,該公司在實(shí)時(shí)操作系統領(lǐng)域被世界公認為是最具有領(lǐng)導作用的公司。
VxWorks 是一個(gè)運行在目標機上的高性能、可裁減的嵌入式實(shí)時(shí)操作系統。它以其良好的
可靠性和卓越的實(shí)時(shí)性被廣泛地應用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要
求極高的領(lǐng)域中,如衛星通訊、軍事演習、彈道制導、飛機導航等。在美國的 F-16、FA-
18 戰斗機、B-2 隱形轟炸機和愛(ài)國者導彈上,1997年4月在火星表面登陸的火星探路者上
也使用了VxWorks。
VxWorks是一種功能強大而且比較復雜的操作系統,包括了進(jìn)程管理、存儲管理、設備管理
、文件系統管理、網(wǎng)絡(luò )協(xié)議及系統應用等幾個(gè)部分。VxWorks只占用了很小的存儲空間,并
可高度裁減,保證了系統能以較高的效率運行。所以,僅僅依靠人工編程調試,很難發(fā)揮
它的功能并設計出可靠、高效的嵌入式系統,必須要有與之相適應的開(kāi)發(fā)工具。TornadoI
I就是為開(kāi)發(fā)VxWorks應用系統提供的集成開(kāi)發(fā)環(huán)境,TornadoII中包含的工程管理軟件,可
以將用戶(hù)自己的代碼與VxWorks的核心有效的組合起來(lái),可以按用戶(hù)的需要裁剪配置VxWor
ks內核;vxSim原型仿真器可以讓程序員不用目標機的情況下,直接開(kāi)發(fā)系統原型,作出系
統評估;功能強大的CrossWind調試器可以提供任務(wù)級和系統級的調試模式,可以進(jìn)行多目
標機的聯(lián)調;優(yōu)化分析工具可以幫助程序員從多種方式真正地觀(guān)察、跟蹤系統的運行,排
除錯誤,優(yōu)化性能。
1.2 TornadoII 嵌入式開(kāi)發(fā)系統概述
1.2.1 TornadoII 嵌入式開(kāi)發(fā)系統簡(jiǎn)介
TornadoII開(kāi)發(fā)環(huán)境是嵌入式實(shí)時(shí)領(lǐng)域里最新一代的開(kāi)發(fā)調試環(huán)境,是實(shí)現嵌入式實(shí)時(shí)應用
程序的完整的軟件開(kāi)發(fā)平臺,是交叉開(kāi)發(fā)環(huán)境運行在主機上的部分,是開(kāi)發(fā)和調試VxWork
s系統不可缺少的組成部分。TornadoII給嵌入式系統開(kāi)發(fā)人員提供了一個(gè)不受目標機資源
限制的超級開(kāi)發(fā)和調試環(huán)境。
TornadoII 開(kāi)發(fā)系統包含三個(gè)高度集成的部分:
運行在宿主機和目標機上的強有力的交叉開(kāi)發(fā)工具和實(shí)用程序;
運行在目標機上的高性能、可裁剪的實(shí)時(shí)操作系統VxWorks;
連接宿主機和目標機的多種通訊方式,如:以太網(wǎng),串口線(xiàn),ICE或ROM仿真器等
。
Torando II嵌入式集成開(kāi)發(fā)系統結構圖
1.2.2 VxWorks主要的應用領(lǐng)域
消費電子
掌上電腦
機頂盒
可視電話(huà)
汽車(chē)導航系統
航空航天
飛行模擬器
航班管理系統
衛星跟蹤系統
航空電子設備
數字圖象設備
打印機、傳真機
數字復印機
數字相機
數據通訊網(wǎng)絡(luò )
交換機
路由器
遠程訪(fǎng)問(wèn)服務(wù)器
ATM及幀中繼交換機
電信設備
PBXs,ACDs
CD交換系統
移動(dòng)通訊基站
蜂窩式電話(huà)
Cable Modem
交通運輸
汽車(chē)發(fā)動(dòng)機控制
交通信號控制
高速列車(chē)控制
工業(yè)控制
機器人
測試與測量設備
過(guò)程控制系統
計算機外設
網(wǎng)絡(luò )計算機
X終端
RAID存儲系統
I/O控制設備
1.2.3 TornadoII支持的主機
Sun-4: Sun OS 4.1.x; Solaris 2.4/2.5; Solaris 2.5.1/2.6; Solaris 2.7;
HP 9000/700: HP-UX 9.0.7; HP-UX 10.10; HP-X 10.20;
PC: Win95; Win98; WinNT
1.2.4 VxWorks支持的目標機CPU
Motorola 68k:
68000; 68010; 68020; 68030; 68040; 68060; CPU32;
Motorola ColdFire:
MCF51xx; MCF52xx; MF53xx
Motorola/IBM Power PC:
PPC4xx; PPC6xx; PPC7xx; MPC5xx; MPC8xx; MPC82x;
Motorola M-CORE
Intel: i386; i486; Pentium; Pentium-Pro;
Intel Strong ARM: SA-110; SA-1100; SA-1110;
ARM: ARM7; ARM7T; ARM8,ARM9;
i960:KA/KB/CA/JX/RP; RP/RD;
NEC:V85x; V83x;
NEC/LSI MIPS:
R3K; R4K; Vr41xx; R4700; CW400x; CW4011; R5K;
HITACHI SH: SH-1; SH-2; SH-3; SH-4; SH-DSP; SH3-DSP;
SUN SPARC: UltraSPARC; SPARC
今天就先第一章吧,大家有興趣的話(huà)有空再繼續貼
--
^_^
※ 來(lái)源:·飲水思源 bbs.sjtu.edu.cn·[FROM: 211.80.52.19]
發(fā)信人: googol (Eternal Technology), 信區: Robot
標 題: 第2章 VxWorks嵌入式實(shí)時(shí)操作系統
發(fā)信站: 飲水思源 (2004年06月26日02:52:13 星期六)
第二天了,繼續繼續
第2章 VxWorks嵌入式實(shí)時(shí)操作系統
2.1 VxWorks嵌入式實(shí)時(shí)操作系統概述
2.1.1 VxWorks嵌入式實(shí)時(shí)操作系統背景簡(jiǎn)介
我們知道,用戶(hù)在開(kāi)發(fā)具有日益復雜的32位嵌入式處理器的產(chǎn)品時(shí),需要一個(gè)用來(lái)連接產(chǎn)
品應用程序和底層硬件的操作系統。用戶(hù)所尋求的操作系統應該具有的最重要的特點(diǎn)包括
:
可靠性高的實(shí)時(shí)性能
可下載到最終產(chǎn)品的板上內存的豐富和靈活的功能模塊集
與綜合全面的主機開(kāi)發(fā)環(huán)境的可協(xié)同工作。
VxWorks操作系統是美國WindRiver公司于1983年設計開(kāi)發(fā)的一種嵌入式實(shí)時(shí)操作系統(RT
OS),是TornadoII嵌入式開(kāi)發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續發(fā)展能力、高性能的內核
以及友好的用戶(hù)開(kāi)發(fā)環(huán)境,在嵌入式實(shí)時(shí)操作系統領(lǐng)域逐漸占據一席之地。首先,它十分
靈活,具有多達1800個(gè)功能強大的應用程序接口(API);其次,它適用方面廣,可以適用
于從最簡(jiǎn)單到最復雜的產(chǎn)品設計;再次,它可靠性高,可以用于從防抱死剎車(chē)系統到星際
探索的關(guān)鍵任務(wù);最后,適用性強,可以用于所有的流行的CPU平臺。
2.2.2 VxWorks嵌入式實(shí)時(shí)操作系統的簡(jiǎn)介
VxWorks嵌入式實(shí)時(shí)操作系統包括微內核wind、高級的網(wǎng)絡(luò )支持、強有力的文件系統和I/O
管理、C++和其他標準支持等核心功能。這些核心功能還可以與WindRiver公司的其他產(chǎn)品
以及320個(gè)WindRiver公司的合作伙伴的產(chǎn)品聯(lián)合使用。
1. 高性能的微內核設計
處于VxWorks嵌入式實(shí)時(shí)操作系統核心的是高性能的微內核wind。這個(gè)微內核支持所有的實(shí)
時(shí)特征:快速任務(wù)切換、中斷支持、搶占式和時(shí)間片輪轉調度等。微內核設計減少了系統
開(kāi)銷(xiāo),從而保證了對外部事件的快速、確定的反應。
運行環(huán)境也提供了有效的任務(wù)間通信機制,允許獨立的任務(wù)在實(shí)時(shí)系統中與其行動(dòng)相協(xié)調
。開(kāi)發(fā)者在開(kāi)發(fā)應用程序時(shí)可以使用多種方法:用于簡(jiǎn)單數據共享的共享內存、用于單CP
U的多任務(wù)間信息交換的消息隊列和管道、套接口、用于網(wǎng)絡(luò )通信的遠程過(guò)程調用、用于處
理異常事件的信號等。為了控制關(guān)鍵的系統資源,提供了三種信號燈:二進(jìn)制、計數、有
優(yōu)先級繼承特性的互斥信號燈。
2. 可裁剪的運行軟件
VxWorks之所以設計為具有可裁剪性,是為了使開(kāi)發(fā)者能夠根據自己的應用程序需要,而不
是根據操作系統的需要,來(lái)分配稀少的內存資源。從需要幾個(gè)KB字節內存的深層嵌入式設
計到需要更多的操作系統的功能的復雜的高端的實(shí)時(shí)系統,開(kāi)發(fā)者也許需要從100多個(gè)不同
的選項中進(jìn)行選擇以產(chǎn)生上百種的配置方式。許多獨立的模塊都是在開(kāi)發(fā)時(shí)要使用而在產(chǎn)
品中卻不再使用。
而且,這些子系統本身也是可裁剪的,這樣就允許開(kāi)發(fā)者為最廣泛的應用程序進(jìn)行更為優(yōu)
化的VxWorks運行環(huán)境配置。例如,如果應用程序不需要某些功能模塊,就可以將它移出A
NSI C運行庫;如果應用程序不需要某些特定的內核同步對象,這些對象也可以忽略。還有
,TCP、UDP、套接口和標準Berkeley服務(wù)也可以根據需要將之移出或移入網(wǎng)絡(luò )協(xié)議棧。
這些配置選項可以通過(guò)TornadoII的項目工具圖形接口輕易地選擇。開(kāi)發(fā)者也可以使用Tor
nadoII的自動(dòng)裁剪特性,自動(dòng)地分析應用程序代碼并合并合適的選項。
3. 綜合的網(wǎng)絡(luò )工具
VxWorks是第一個(gè)支持工業(yè)標準TCP/IP的實(shí)時(shí)操作系統。創(chuàng )新的傳統伴隨著(zhù)VxWorks TCP/I
P協(xié)議棧,它支持最新的Berkeley網(wǎng)絡(luò )特性,包括:
IP, IGMP, CIDR, TCP, UDP, ARP
RIP v.1/v.2
Standard Berkeley sockets and zbufs
NFS client and server, ONC, RPC
Point-to-Point Protocol
BOOTP, DNS, DHCP, TFTP
FTP, rlogin, telnet, rsh
WindRiver也支持可選的WindNet產(chǎn)品:SNMP v.1/v.2c, OSPF v.2, STREAMS.
WindRiver還通過(guò)提供工業(yè)級最廣泛的網(wǎng)絡(luò )開(kāi)發(fā)環(huán)境來(lái)加強這些核心技術(shù),這主要是通過(guò)W
indLink for TornadoII伙伴計劃來(lái)實(shí)現的。高級的網(wǎng)絡(luò )解決方案還包括:
ATM, SMDS, frame relay, ISDN, SS7, X.25, V5廣域網(wǎng)網(wǎng)絡(luò )協(xié)議
IPX/SPX,AppleTalk,SNA局域網(wǎng)網(wǎng)絡(luò )協(xié)議
分布式網(wǎng)絡(luò )管理的RMON,CMIP/GDMO,基于Web網(wǎng)的解決方案
CORBA分布式計算機環(huán)境
4. 兼容POSIX 1003.1b標準
VxWorks支持POSIX 1003.1b的規定和1003.1中有關(guān)基本系統調用的規定,包括:過(guò)程初始
化、文件與目錄、I/O初始化、語(yǔ)言服務(wù)、目錄處理;而且VxWorks還支持POSIX 1003.1b的
實(shí)時(shí)擴展,主要包括:異步I/O、記數信號量、消息隊列、信號、內存管理和調度控制。
5. 平臺的選擇
WindRiver還提供現成的一整套的商業(yè)和評估板。VxWorks開(kāi)放的設計具有高度的可移植性
并且支持幾乎所有的處理器,這樣,應用程序就可以在不同的體系結構之間毫不費力的移
植。
6. 方便地移植到用戶(hù)硬件上
能否將操作系統和應用程序以一種合適的方式進(jìn)行移植是嵌入式軟件開(kāi)發(fā)方面的關(guān)鍵。如
果事先就考慮了操作系統和應用程序代碼的可移植性,那么這個(gè)過(guò)程就會(huì )變得非常容易。
這需要明確劃分低級的依賴(lài)于硬件的代碼和高級的應用程序和操作系統代碼,這樣,移植
時(shí)只需要改變整個(gè)依賴(lài)于硬件的低級代碼,而不需要改變操作系統和應用程序。
依賴(lài)于硬件的這一層稱(chēng)為板極支持包(BSP, Board Support Package)。板極支持包是運行
VxWorks的任何目標板都需要的。BSP Developer’s Kit使開(kāi)發(fā)者很容易地在用戶(hù)硬件上使
用VxWorks;如果使用商業(yè)硬件,WindRiver提供了2000個(gè)板極支持包。當為用戶(hù)板開(kāi)發(fā)板
極支持包時(shí),開(kāi)發(fā)者可以獲得大量的標準設備驅動(dòng)程序,這些程序對應于所有的目標體系
。
7. 操作系統選件
操作系統選件產(chǎn)品為開(kāi)發(fā)者提供了意想不到的特性和操作系統擴展。這些選件主要包括:
板極支持包開(kāi)發(fā)工具(BSP Developer’s Kit)
支持閃存文件系統的TrueFFS for TornadoII
支持圖形應用程序
支持虛擬內存管理VxVMI
支持多處理的VxMP、VxDCOM和VxFusion
2.2 VxWorks嵌入式實(shí)時(shí)操作系統主要特點(diǎn)
1.微內核(wind microkernel)的主要特點(diǎn)
高效的任務(wù)管理:
無(wú)限數目多任務(wù),具有256個(gè)優(yōu)先級
具有優(yōu)先級排隊和時(shí)間片輪轉調度
快速的、確定性的上下文切換
快速靈活的任務(wù)間通訊:
三種信號燈:二進(jìn)制、計數、有優(yōu)先級繼承特性的互斥信號燈
POSIX管道、記數信號量、消息隊列、信號和調度
控制套接口
共享內存(shared memory)
高度的可裁剪性
增量連接和部件加載
快速有效的中斷和異常事件處理
優(yōu)化的浮點(diǎn)支持
動(dòng)態(tài)內存管理
系統時(shí)鐘和計時(shí)工具
2.網(wǎng)絡(luò )支持方面
BSD 4.4 TCP/IP
IP, IGMP, CIDR, TCP, UDP, ARP
RIP v.1/v.2
標準Berkeley 套接口,zbufs(zero-copy socket)
SLIP, CSLIP, PPP
BOOTP, DNS, DHCP, TFTP
NFS, ONC, RPC
FTP, rlogin, rsh, telnet
SNTP
具有MIB編譯器的WindNet SNMP v.1/v.2c (可選)
WindNet OSPF v.2 (可選)
WindNet STREAMS SVR4(可選)
3.快速靈活的I/O和本地文件系統
POSIX 異步I/O和目錄管理
SCSI 支持
兼容MS-DOC文件系統
Raw disk文件系統
TrueFFS閃存文件系統
ISO 9660 CD-ROM文件系統
PCMCIA支持
4.目標機開(kāi)發(fā)特性
完全兼容ANSI C和C++的異常處理和模板支持
兼容POSIX 1003.1, .1b實(shí)時(shí)擴展
目標機shell上的交互式C解釋器
符號調試和反匯編
強大的性能監視功能
擴展的內核、任務(wù)、系統信息工具
動(dòng)態(tài)連接裝載
超過(guò)1800個(gè)實(shí)用例程庫
靈活的啟動(dòng)方式,可以從ROM、本地磁盤(pán)或通過(guò)網(wǎng)絡(luò )啟動(dòng)
高度可裁剪設計可以適用于廣泛的應用
通過(guò)以太網(wǎng)、串行線(xiàn)、ICE或ROM仿真器的系統級調試
2.3 VxWorks嵌入式實(shí)時(shí)操作系統主要功能和結構
2.3.1 VxWorks操作系統的主要功能
目前VxWorks操作系統的版本為VxWorks 5.4,其核心功能主要有:
微內核wind
任務(wù)間通信機制
先進(jìn)的網(wǎng)絡(luò )支持
功能強大的文件系統和I/O管理
POSIX標準實(shí)時(shí)擴展
C++以及其他標準支持
這些核心功能可以與WindRiver系統的其他附件和超過(guò)400個(gè)TornadoII合作伙伴的產(chǎn)品很好
的結合在一起。
2.3.2 VxWorks操作系統的基本結構
VxWorks操作系統的基本構成部件主要有以下五個(gè)部分:
板級支持包BSP(Board Support Package)
微內核wind
網(wǎng)絡(luò )系統
文件系統
I/O系統
VxWorks 操作系統包括了板級支持包BSP(Board Support Package)、進(jìn)程管理、存儲管理
、設備管理、文件系統管理、網(wǎng)絡(luò )協(xié)議及系統應用等幾個(gè)部分。VxWorks只占用了很小的存
儲空間,并可高度裁減,保證了系統能以較高的效率運行。
1.板級支持包 BSP(Board Support Package)
板級支持包對各種板子的硬件功能提供了統一的軟件接口,它包括硬件初始化、中斷的產(chǎn)
生和處理、硬件時(shí)鐘和計時(shí)器管理、局域和總線(xiàn)內存地址映射、內存分配等等。每個(gè)板級
支持包括一個(gè) ROM 啟動(dòng)(Boot ROM)或其它啟動(dòng)機制。
2.高性能的實(shí)時(shí)操作系統核心 wind
[1].VxWorks 的核心,被稱(chēng)作 wind,包括多任務(wù)調度(采用優(yōu)先級搶占方式),任務(wù)間的
同步和進(jìn)程間通信機制以及中斷處理,看門(mén)狗和內存管理機制。一個(gè)多任務(wù)環(huán)境允許實(shí)時(shí)
應用程序以一套獨立任務(wù)的方式構筑,每個(gè)任務(wù)擁有獨立的執行線(xiàn)程和它自己的一套系統
資源。進(jìn)程間通信機制使得這些任務(wù)的行為同步、協(xié)調。
[2].wind使用中斷驅動(dòng)和優(yōu)先級的方式。它縮短了上下文轉換的時(shí)間開(kāi)銷(xiāo)和中斷的時(shí)延。
在 VxWorks 中,任何例程都可以被啟動(dòng)為一個(gè)單獨的任務(wù),擁有它自己的上下文和堆棧。
還有一些其它的任務(wù)機制可以使任務(wù)掛起、繼續、刪除、延時(shí)或改變優(yōu)先級。
[3].wind 核提供信號量作為任務(wù)間同步和互斥的機制。在 wind 核中有幾種類(lèi)型的信號量
,它們分別針對不同的應用需求:二進(jìn)制信號量、計數信號量、互斥信號量和 POSIX 信號
量。所有的這些信號量是快速和高效的,它們除了被應用在開(kāi)發(fā)設計過(guò)程中外,還被廣泛
地應用在 VxWorks 高層應用系統中。對于進(jìn)程間通信,wind 核也提供了諸如消息隊列、
管道、套接字和信號等機制。
3.網(wǎng)絡(luò )設施
VxWorks的網(wǎng)絡(luò )結構如圖所示,它提供了對其它網(wǎng)絡(luò )和 TCP/IP 網(wǎng)絡(luò )系統的"透明"訪(fǎng)問(wèn),包
括與BSD套接字兼容的編程接口,遠程過(guò)程調用(RPC),SNMP(可選項),遠程文件訪(fǎng)問(wèn)
(包括客戶(hù)端和服務(wù)端的NFS機制以及使用RSH,FTP 或 TFTP的非NFS機制)以及BOOTP 和
ARP 代理。無(wú)論是松耦合的串行線(xiàn)路、標準的以太網(wǎng)連接還是緊耦合的利用共享內存的背
板總線(xiàn),所有的 VxWorks 網(wǎng)絡(luò )機制都遵循標準的 Internet 協(xié)議。
4.文件系統
VxWorks 提供的快速文件系統適合于實(shí)時(shí)系統應用。它包括幾種支持使用塊設備(如磁盤(pán)
)的本地文件系統。這些設備都使用一個(gè)標準的接口從而使得文件系統能夠被靈活地在設
備驅動(dòng)程序上移植。
VxWorks 也支持 SCSI 磁帶設備的本地文件系統。VxWorks I/O 體系結構甚至還支持在一
個(gè)單獨的 VxWorks 系統上同時(shí)并存幾個(gè)不同的文件系統。
VxWorks 支持四種文件系統:
dosFs
rt11Fs
rawFs
tapeFs。
另一方面,普通數據文件,外部設備都統一作為文件處理。它們在用戶(hù)面前有相同的語(yǔ)法
定義,使用相同的保護機制。這樣既簡(jiǎn)化了系統設計又便于用戶(hù)使用。
5.I/O 系統
VxWorks 提供了一個(gè)快速靈活的與 ANSI C 兼容的 I/O 系統,包括
UNIX 標準的緩沖 I/O
POSIX 標準的異步 I/O
VxWorks 包括以下驅動(dòng)程序:
網(wǎng)絡(luò )驅動(dòng)
管道驅動(dòng)
RAM盤(pán)驅動(dòng)
SCSI驅動(dòng)
鍵盤(pán)驅動(dòng)
顯示驅動(dòng)
磁盤(pán)驅動(dòng)
并口驅動(dòng)