




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、1嵌入式系統(tǒng)嵌入式系統(tǒng)AnIntroductiontoEmbeddedSystem第十課第十課 VxWorksVxWorks2課程大綱課程大綱VxWorksVxWorks簡介簡介VxWorksVxWorks映像映像Wind Wind 內(nèi)核內(nèi)核VxWorksVxWorks內(nèi)存管理及其他內(nèi)存管理及其他VxWorksVxWorks開發(fā)環(huán)境開發(fā)環(huán)境3VxWorks概述概述p 美國美國風河(風河(WindRiver)公司公司,1983年年p 目前是目前是Intel全資子公司全資子公司p 最優(yōu)秀的特點:可靠性和實時性最優(yōu)秀的特點:可靠性和實時性p 領域:通信、軍事、航空、航天領域:通信、軍事、航空、航天p
2、 F-16、FA-18 戰(zhàn)斗機、戰(zhàn)斗機、B-2 隱形轟炸機、愛國者導彈、火星隱形轟炸機、愛國者導彈、火星探測器探測器p 目前銷售解禁目前銷售解禁p 占有率排名第一占有率排名第一p 兩套系統(tǒng)兩套系統(tǒng)p VxWorks操作系統(tǒng)操作系統(tǒng)p Workbench開發(fā)環(huán)境開發(fā)環(huán)境p舊版舊版:Tornado開發(fā)環(huán)境開發(fā)環(huán)境pWorkbench版基于版基于eclipse4Vxworks 特點特點p VxWorks 6.0p 向后兼容,兼容向后兼容,兼容5.Xp 存儲保護技術存儲保護技術p 基于標準流程的編程模式基于標準流程的編程模式p 可根據(jù)客戶需求定制的應用程序接口(可根據(jù)客戶需求定制的應用程序接口(API
3、)p 錯誤探測與報告機制錯誤探測與報告機制p 可擴展的消息傳遞架構(gòu)可擴展的消息傳遞架構(gòu)p 雙模式雙模式Ipv6/Ipv4網(wǎng)絡棧網(wǎng)絡棧p 可支持非可支持非VxWorks應用應用p 提高了對開放式標準的支持提高了對開放式標準的支持p 支持處理器多支持處理器多p VxWorks 6.0的航向標的航向標p 對對MMU、CACHE和大物理地址的抽象化和大物理地址的抽象化5支持多核的支持多核的6.7版本版本p支持多核支持多核p非對稱式多重處理非對稱式多重處理(asymmetric multiprocessing; AMP)p對稱式多重處理對稱式多重處理(symmetric multiprocessing;
4、 SMP)p降低功率消耗降低功率消耗pmulticore-aware工具工具p組態(tài)、建置、除錯和模擬組態(tài)、建置、除錯和模擬p強化強化4G網(wǎng)絡能力,支持網(wǎng)絡能力,支持WiMAX和和LTE (Long Term Evolution)應用應用最新版本最新版本p 2010年初的年初的6.8通用平臺通用平臺VxWorks版本版本p 提供了改進的操作系統(tǒng)原語提供了改進的操作系統(tǒng)原語(OS primitive)、USB支持和文支持和文件系統(tǒng)性能件系統(tǒng)性能p VxWorks 6.8的主要功能特性和優(yōu)勢包括:的主要功能特性和優(yōu)勢包括:p 完整且標準化的解決方案,提供了完整的移動完整且標準化的解決方案,提供了完整
5、的移動IP支持,為新一代網(wǎng)支持,為新一代網(wǎng)絡通訊設備提供了包括絡通訊設備提供了包括LTE和和WiMAX技術在內(nèi)的技術在內(nèi)的4G或或pre-4G能力能力p 增加的多核處理器支持,包括增加的多核處理器支持,包括i7、A9等等p 對稱多處理對稱多處理(SMP)性能改進和性能改進和SMP內(nèi)核資源預留內(nèi)核資源預留p 非對稱多處理非對稱多處理(AMP)增強功能,例如增強功能,例如AMP自旋鎖自旋鎖(spin lock)等,同等,同時采用時采用MIPC 2.0實現(xiàn)了風河多操作系統(tǒng)內(nèi)部進程通訊的重要升級,實現(xiàn)了風河多操作系統(tǒng)內(nèi)部進程通訊的重要升級,擁有了更高的性能閾值,為各種多核功能打開了綠燈擁有了更高的性能
6、閾值,為各種多核功能打開了綠燈p 全新的全新的ARM小尺寸小尺寸profile,能夠構(gòu)建更小內(nèi)存需求的嵌入式應用,能夠構(gòu)建更小內(nèi)存需求的嵌入式應用p 重要的開發(fā)工具生產(chǎn)效率改進,包括重要的開發(fā)工具生產(chǎn)效率改進,包括VxWorks內(nèi)核內(nèi)核Dump File與分與分析以及多內(nèi)核和多操作系統(tǒng)調(diào)試工具和用戶工作流工具的改進等析以及多內(nèi)核和多操作系統(tǒng)調(diào)試工具和用戶工作流工具的改進等p 2010年年4月的月的VxWorks 653p 面向安全關鍵級別,航空電子設備市場,如波音面向安全關鍵級別,航空電子設備市場,如波音787p 基于基于Power Architecture架構(gòu)架構(gòu)(PowerPC)以及以及i
7、ntel架構(gòu);嚴格的架構(gòu);嚴格的兩級時間與空間調(diào)度;文件系統(tǒng)具有電源故障安全保護功能兩級時間與空間調(diào)度;文件系統(tǒng)具有電源故障安全保護功能67課程大綱課程大綱VxWorksVxWorks簡介簡介VxWorksVxWorks映像映像Wind Wind 內(nèi)核內(nèi)核VxWorksVxWorks內(nèi)存管理及其他內(nèi)存管理及其他VxWorksVxWorks開發(fā)環(huán)境開發(fā)環(huán)境8VxWorks映像(映像(IMAGE)p 用戶通過定制用戶通過定制VxWorks組件和進行應用程序開發(fā)所生成組件和進行應用程序開發(fā)所生成映像映像p 包括包括wind多任務微內(nèi)核多任務微內(nèi)核p 也包括也包括BSP的引導代碼的引導代碼p Vxwo
8、rks映像的三部分組成映像的三部分組成p BSS段(段(Block Started by Symbol,未手動初始化的數(shù)據(jù)),未手動初始化的數(shù)據(jù))p 代碼段代碼段p 數(shù)據(jù)段數(shù)據(jù)段p 兩大類兩大類p BootRom類型映像類型映像p VxWorks類型類型9BootRom類型映像類型映像p 最小化、專用的最小化、專用的VxWorks引導映像,實現(xiàn)最少的系統(tǒng)引導映像,實現(xiàn)最少的系統(tǒng)初始化初始化p 用于啟動裝載用于啟動裝載VxWorks映像映像p 功能類似于功能類似于PC機的機的BIOSp BootRom運行時建立起多任務環(huán)境運行時建立起多任務環(huán)境p usrRoot任務、網(wǎng)絡任務、任務、網(wǎng)絡任務、T
9、FFS任務和任務和FTP任務等任務等p 運行地點運行地點p 可能在可能在ROM/Flash中執(zhí)行中執(zhí)行(例如例如ROM駐留型引導映像駐留型引導映像)p 也可能在也可能在RAM 中執(zhí)行中執(zhí)行p 在系統(tǒng)中其對應的編譯規(guī)則文件是在系統(tǒng)中其對應的編譯規(guī)則文件是rules.bsp10pBootRom類型分為三種類型分為三種pBootRom_res p一直運行在一直運行在rom中的映象,只把中的映象,只把data段拷貝到段拷貝到ram里面里面pBootRom_uncmpp非壓縮方式的映象,非壓縮方式的映象,data段和段和text段都要拷貝到段都要拷貝到ram里面,里面,并在并在ram里面運行里面運行pB
10、ootRomp壓縮方式的映象,生成的時候編譯器會把除掉壓縮方式的映象,生成的時候編譯器會把除掉romlnit.s和和bootInit.c之外的目標文件壓縮并之外的目標文件壓縮并“匯編匯編”成一個成一個bootrom.Z.s,最后和,最后和romInit.o,bootInit.o,version.o進行鏈接,生成進行鏈接,生成bootrom映像映像p要全部拷貝到要全部拷貝到ram中,并必須要進行解壓縮的工作。而這中,并必須要進行解壓縮的工作。而這些工作基本上都是在些工作基本上都是在bootInit.c中進行的。中進行的。 11VxWorks類型映像類型映像p 系統(tǒng)的主映像,是系統(tǒng)最終要運行的映像
11、系統(tǒng)的主映像,是系統(tǒng)最終要運行的映像p 該映像在運行時至少有一部分該映像在運行時至少有一部分(如:數(shù)據(jù)段和如:數(shù)據(jù)段和BSS段段)需要在需要在RAM中運行中運行p 在系統(tǒng)中其對應的編譯規(guī)則文件是在系統(tǒng)中其對應的編譯規(guī)則文件是rules.vxWorksp 分類分類p RAM運行的運行的 -ROM運行的運行的p 壓縮的壓縮的 -不壓縮是不壓縮是12RAM 類型映像類型映像 vs ROM 類型映像類型映像13VxWorks類型四種映像類型四種映像p VxWorks:RAM運行的運行的VxWorks映像映像p 不包含引導程序,需要獨立的引導程序從本地存儲器或者經(jīng)不包含引導程序,需要獨立的引導程序從本地
12、存儲器或者經(jīng)由網(wǎng)絡獲取該映像,然后將其下載到由網(wǎng)絡獲取該映像,然后將其下載到RAM中的中的RAM_LOW_LADRS處運行處運行p VxWorks_romp ROM 自動自動RAM 運行的運行的VxWorks映像,不需要映像,不需要BootRom輔輔助助p VxWorks_romResidentp ROM啟動啟動ROM運行的運行的VxWorks映像,不需要映像,不需要BootRom輔助輔助p 包含引導代碼,在重啟時清空包含引導代碼,在重啟時清空RAM,引導代碼只將,引導代碼只將data段拷段拷貝到貝到RAM 中的中的RAM_LOW_ADRS處處p 系統(tǒng)的運行是在系統(tǒng)的運行是在ROM 中進行的中
13、進行的p 啟動速度快,需要的啟動速度快,需要的RAM 空間少,但是運行速度慢空間少,但是運行速度慢p VxWorks_romCompressp VxWorks_rom 的壓縮形式的壓縮形式14VxWorks型型 vs BootROM型映像型映像p對于沒有自啟動功能的對于沒有自啟動功能的VxWorks類型映像類型映像(如如VxWorks型型),映像運行前需一段程序?qū)⒃撚常诚襁\行前需一段程序?qū)⒃撚诚窨截惖较窨截惖絉AM中運行中運行pBootRom類型映像完成類型映像完成VxWorks系統(tǒng)下載,系統(tǒng)下載,完畢后完畢后BootRom的任務就結(jié)束了的任務就結(jié)束了p二者在系統(tǒng)初始化的時候,所做的功能基本
14、相二者在系統(tǒng)初始化的時候,所做的功能基本相同同pBootRom類型映像調(diào)用類型映像調(diào)用bootConfig.c,而,而VxWorks類型映像調(diào)用類型映像調(diào)用usrConfig.c15映像鏈接方式映像鏈接方式p可被靜態(tài)或動態(tài)鏈接可被靜態(tài)或動態(tài)鏈接p動態(tài)動態(tài)pVxWorksVxWorks在開發(fā)階段可動態(tài)地下載目標文件,并與在開發(fā)階段可動態(tài)地下載目標文件,并與操作系統(tǒng)及其它目標文件動態(tài)鏈接。操作系統(tǒng)及其它目標文件動態(tài)鏈接。p鏈接以后是浮動的,只在裝載時才與絕對物理地址鏈接以后是浮動的,只在裝載時才與絕對物理地址相對應相對應p靜態(tài)靜態(tài)pVxWorksVxWorks成品階段是采用靜態(tài)鏈接的成品階段是采用
15、靜態(tài)鏈接的16成品時的成品時的IMAGEIMAGEp ROM-resident imagep BSP初始化時把初始化時把image中中的的data段復制到段復制到RAM中,中,code在在ROM中運行中運行p ROM-based imagep BSP初始化時把初始化時把image完完全搬到全搬到RAM中執(zhí)行,包括中執(zhí)行,包括image中的中的data段和段和bss段。段。(分壓縮和非壓縮兩分壓縮和非壓縮兩種類型種類型) 17調(diào)試時的調(diào)試時的Image p 先由引導代碼把先由引導代碼把ROM Boot ProgramROM Boot Program搬到搬到RAM中,中,Boot Program初
16、始化調(diào)試下載通道和調(diào)試信息輸出通道初始化調(diào)試下載通道和調(diào)試信息輸出通道p 被調(diào)試的被調(diào)試的IMAGEIMAGE通過通過HostHost與與TargetTarget之間的某種耦合方式之間的某種耦合方式downloaddownload到到TargetTarget的的RAMRAM中,然后接受控制權(quán),實現(xiàn)調(diào)試中,然后接受控制權(quán),實現(xiàn)調(diào)試 18Image的在線升級的在線升級 p存儲介質(zhì):存儲介質(zhì):flash、flash diskp升級通道:升級通道:p升級時期:升級時期:p升級保護:升級保護:p升級安全:升級安全:p升級升級IMAGEIMAGE的部分或整體的部分或整體 19用戶程序框架用戶程序框架 時
17、間 軸 bootrom (從 Flash 讀取映像文件) VxWorks (發(fā)起多個系統(tǒng)任務) 用戶程序入口 (發(fā)起多個用戶任務) 單任務 系統(tǒng) 多任務 系統(tǒng) 系統(tǒng)任務 (tExcTask/tLogTask /tWdbTask/tNetTask) 網(wǎng)絡模塊 綁定中斷服務程序, 發(fā)起相應任務 輪詢硬件模塊 20課程大綱課程大綱VxWorksVxWorks簡介簡介VxWorksVxWorks映像映像Wind Wind 內(nèi)核內(nèi)核VxWorksVxWorks內(nèi)存管理及其他內(nèi)存管理及其他VxWorksVxWorks開發(fā)環(huán)境開發(fā)環(huán)境21內(nèi)核內(nèi)核wind kernelp微內(nèi)核微內(nèi)核p支持支持Componen
18、tsp內(nèi)核不處理外設內(nèi)核不處理外設p對外設不做假設對外設不做假設p操作系統(tǒng)不假設板上是否有總線以及什么總線操作系統(tǒng)不假設板上是否有總線以及什么總線p不假設內(nèi)存的大小及內(nèi)存如何定位不假設內(nèi)存的大小及內(nèi)存如何定位p不假設不假設I/O及有多少及有多少I/Op板級支持包板級支持包BSP管理外設管理外設22內(nèi)核版本內(nèi)核版本p最簡內(nèi)核最簡內(nèi)核p任務的管理與調(diào)度任務的管理與調(diào)度p納核納核p8k pVxWorks:標準的單:標準的單CPU版本版本pVxFusion:標準的多:標準的多CPU版本版本 p可裁減性可裁減性p 由一個體積很小的內(nèi)核及一些可以根據(jù)需要進行定由一個體積很小的內(nèi)核及一些可以根據(jù)需要進行定制
19、的系統(tǒng)模塊組成制的系統(tǒng)模塊組成p圖形顯示、文件系統(tǒng)以及一些設備驅(qū)動均可被裁減圖形顯示、文件系統(tǒng)以及一些設備驅(qū)動均可被裁減23RTOS內(nèi)核組成:任務的管理與調(diào)度、任務的同步與內(nèi)核組成:任務的管理與調(diào)度、任務的同步與通信、動態(tài)內(nèi)存的管理、軟時鐘的管理、通信、動態(tài)內(nèi)存的管理、軟時鐘的管理、I/O管理管理 24實時性實時性 p系統(tǒng)本身的開銷很小系統(tǒng)本身的開銷很小p進程調(diào)度、進程間通信、中斷處理等系統(tǒng)公用進程調(diào)度、進程間通信、中斷處理等系統(tǒng)公用程序精練而有效,造成的延遲很短程序精練而有效,造成的延遲很短p采用優(yōu)先級搶占(采用優(yōu)先級搶占(Preemptive Priority Preemptive Pri
20、ority SchedulingScheduling)和輪轉(zhuǎn)調(diào)度()和輪轉(zhuǎn)調(diào)度(Round-Robin Round-Robin SchedulingScheduling)機制)機制p符合符合PosixPosix 1003.1b 1003.1b25任務狀態(tài)變遷任務狀態(tài)變遷p 任務狀態(tài)任務狀態(tài)p 延遲延遲Delayed、阻塞、阻塞Pended、就緒、就緒Ready、掛起、掛起suspendedp 事件驅(qū)動事件驅(qū)動 p RE:不同優(yōu)先級搶占,同一優(yōu)先級時間片輪轉(zhuǎn):不同優(yōu)先級搶占,同一優(yōu)先級時間片輪轉(zhuǎn)p ER:被其他任務搶占或時間片耗盡:被其他任務搶占或時間片耗盡p EB:所需資源沒有滿足:所需資源沒
21、有滿足p BR:所需資源得到滿足:所需資源得到滿足PendedReadyDelayedSuspendedExecuting26任務的上下文任務的上下文p 任務的程序計數(shù)器任務的程序計數(shù)器p CPU寄存器寄存器p 存放動態(tài)變量和各種函數(shù)調(diào)用返回地址的堆棧存放動態(tài)變量和各種函數(shù)調(diào)用返回地址的堆棧p 標準輸入、輸出、錯誤的設置標準輸入、輸出、錯誤的設置p 一個延遲定時器一個延遲定時器p 一個時間片定時器一個時間片定時器p 內(nèi)核控制結(jié)構(gòu)內(nèi)核控制結(jié)構(gòu)p 信號處理器信號處理器p 調(diào)試和性能監(jiān)測值調(diào)試和性能監(jiān)測值27VxWorks的任務調(diào)度算法的任務調(diào)度算法p每個任務可以規(guī)定自己的信息每個任務可以規(guī)定自己的
22、信息pPrioritypModep可否設斷點可否設斷點p是否支持浮點操作是否支持浮點操作p不同優(yōu)先級不同優(yōu)先級p采用優(yōu)先級搶占(采用優(yōu)先級搶占(Preemptive Priority Preemptive Priority SchedulingScheduling)p相同優(yōu)先級相同優(yōu)先級p輪轉(zhuǎn)調(diào)度(輪轉(zhuǎn)調(diào)度(Round-Robin SchedulingRound-Robin Scheduling)機制)機制28RTOS任務調(diào)度的算法任務調(diào)度的算法 pPre_emptyPre_empty: :不同優(yōu)先級的任務采用搶占方式不同優(yōu)先級的任務采用搶占方式 High PriorityTask AMedi
23、um PriorityTask BLow PriorityTask CEventEvent29Timeslice:相同優(yōu)先級的任務采用時間片相同優(yōu)先級的任務采用時間片輪轉(zhuǎn)方式(輪轉(zhuǎn)方式(Kernel Time Slice(ticks)) ABCDABCD時間片30任務間通信手段任務間通信手段 p通信:通信:p松耦合方式:實現(xiàn)機制為一個消息隊列松耦合方式:實現(xiàn)機制為一個消息隊列p緊耦合方式:實現(xiàn)機制為兩個消息隊列緊耦合方式:實現(xiàn)機制為兩個消息隊列p任務之間的通信也可以用信號量來構(gòu)造任務之間的通信也可以用信號量來構(gòu)造p控制方法控制方法p數(shù)據(jù)保護:信號量或互斥量數(shù)據(jù)保護:信號量或互斥量p同步:同步:
24、wind 核提供以下幾種支持核提供以下幾種支持p二進制信號量二進制信號量p計數(shù)信號量計數(shù)信號量p互斥信號量互斥信號量p POSIX 信號量信號量31VxWorks中斷處理中斷處理p中斷服務程序(中斷服務程序(ISR)運行在特定的空間)運行在特定的空間p不同于一般的任務,中斷服務程序沒任務上下文不同于一般的任務,中斷服務程序沒任務上下文p不包含任務控制塊不包含任務控制塊p所有的中斷服務程序使用同一中斷堆棧(專用的)所有的中斷服務程序使用同一中斷堆棧(專用的)p通過內(nèi)核工作隊列(通過內(nèi)核工作隊列(Kernel Work Queue)最大)最大程度減少中斷延遲程度減少中斷延遲pVxworks任務調(diào)度
25、器的兩種調(diào)用情況任務調(diào)度器的兩種調(diào)用情況p從中斷或系統(tǒng)調(diào)用返回的時候從中斷或系統(tǒng)調(diào)用返回的時候p代碼本身去調(diào)用了會引起調(diào)度的系統(tǒng)函數(shù),如代碼本身去調(diào)用了會引起調(diào)度的系統(tǒng)函數(shù),如taskDelay32Vxworks不支持不支持“中斷線程化中斷線程化”p 某些操作系統(tǒng)可以在一些特定的低優(yōu)先級某些操作系統(tǒng)可以在一些特定的低優(yōu)先級ISR里面進里面進行行pend操作的操作的p 要求操作系統(tǒng)的中斷,有線程上下文要求操作系統(tǒng)的中斷,有線程上下文p 線程(任務)上下文是任務調(diào)度的基礎線程(任務)上下文是任務調(diào)度的基礎p 任務上下文不等同于中斷上下文任務上下文不等同于中斷上下文p Vxworks任務調(diào)度是依賴于
26、中斷的,為了實時性不支任務調(diào)度是依賴于中斷的,為了實時性不支持中斷線程化持中斷線程化p ISR是沒有任務(線程)上下文(是沒有任務(線程)上下文(TCB)p 如果支持中斷線程化,那么將導致中斷響應時間不確如果支持中斷線程化,那么將導致中斷響應時間不確定,實時性難以得到保證定,實時性難以得到保證33ISR中的中的阻塞阻塞(Blocking)問題)問題p ISR中不能調(diào)用可能導致中不能調(diào)用可能導致blocking的函數(shù)的函數(shù) p 不能以不能以semTake獲取信號量,因如果該信號量不可利用,內(nèi)核會試圖讓獲取信號量,因如果該信號量不可利用,內(nèi)核會試圖讓調(diào)用者切換到調(diào)用者切換到blocking態(tài)態(tài)p
27、malloc和和free可能導致可能導致blocking,因此也不能使用,因此也不能使用p 避免進行避免進行VxWorks I/O系統(tǒng)操作系統(tǒng)操作,如,如printf (除管道外除管道外)p vxworks使用了可能使用了可能blocking的代碼,的代碼,2種后果種后果p 關中斷運行關中斷運行p 在在blocking的地方,將永遠等待的地方,將永遠等待p 這時候任務調(diào)度依賴的時鐘中斷都不能響應,也就是說任務調(diào)度器都不能運這時候任務調(diào)度依賴的時鐘中斷都不能響應,也就是說任務調(diào)度器都不能運行行p 開中斷進行開中斷進行p 在在blocking的地方,任務調(diào)度器仍然可能運行的地方,任務調(diào)度器仍然可能
28、運行p 任務調(diào)度器會企圖把任務調(diào)度器會企圖把ISR的的TCB屬性改為屬性改為pendp 但是但是ISR沒有沒有TCB,出錯,出錯p Vxworks的處理方法的處理方法p 在在ISR里,除了對中斷寄存器進行必要的操作之外,盡量簡單的就是只里,除了對中斷寄存器進行必要的操作之外,盡量簡單的就是只釋放一個信號量,通知一個高優(yōu)先級的任務來完成可能引起釋放一個信號量,通知一個高優(yōu)先級的任務來完成可能引起blocking的的工作工作34中斷服務程序中斷服務程序 p 處理來自硬件的中斷處理來自硬件的中斷p 是設備驅(qū)動程序的重要組成部分是設備驅(qū)動程序的重要組成部分p 應盡量的小,只把最必要的任務放在中斷服務程
29、序里應盡量的小,只把最必要的任務放在中斷服務程序里面執(zhí)行面執(zhí)行p 掛中斷向量時間掛中斷向量時間p 可在系統(tǒng)啟動,硬件設備成功初始化之后將可在系統(tǒng)啟動,硬件設備成功初始化之后將ISR與中斷向量與中斷向量掛上掛上p 也可以在系統(tǒng)啟動后的任何時刻掛中斷向量也可以在系統(tǒng)啟動后的任何時刻掛中斷向量p ISR掛上中斷向量掛上中斷向量p 設置中斷向量值設置中斷向量值p 在與中斷向量相連的在與中斷向量相連的ISR加上了一層加上了一層(思考一下思考一下,為什么為什么?)p包括包括ISR執(zhí)行前保存寄存器值設置堆棧以及執(zhí)行前保存寄存器值設置堆棧以及ISR執(zhí)行后恢復寄執(zhí)行后恢復寄存器和堆棧存器和堆棧35統(tǒng)一的統(tǒng)一的A
30、PI p由操作系統(tǒng)內(nèi)核提供的服務原語搭建起來的由操作系統(tǒng)內(nèi)核提供的服務原語搭建起來的p服務原語,是不可打斷的服務原語,是不可打斷的p系統(tǒng)調(diào)用的時間盡量小、盡量是常量和可確定系統(tǒng)調(diào)用的時間盡量小、盡量是常量和可確定p6.x6.x支持處理器抽象層(支持處理器抽象層(PALPAL)p增強了支持類似硬件體系結(jié)構(gòu)系列的能力增強了支持類似硬件體系結(jié)構(gòu)系列的能力pPALPAL為每個體系結(jié)構(gòu)系列定義了功能接口,并且在為每個體系結(jié)構(gòu)系列定義了功能接口,并且在一定程度上抽象了操作系統(tǒng)對硬件特性的功能性需一定程度上抽象了操作系統(tǒng)對硬件特性的功能性需求求p對于應用程序用戶是透明的對于應用程序用戶是透明的p體系結(jié)構(gòu)系列
31、體系結(jié)構(gòu)系列PALPAL,加速了對該系列處理器變種的,加速了對該系列處理器變種的支持,并縮短產(chǎn)品上市時間支持,并縮短產(chǎn)品上市時間36課程大綱課程大綱VxWorksVxWorks簡介簡介VxWorksVxWorks映像映像Wind Wind 內(nèi)核內(nèi)核VxWorksVxWorks內(nèi)存管理及其他內(nèi)存管理及其他VxWorksVxWorks開發(fā)環(huán)境開發(fā)環(huán)境37內(nèi)存管理內(nèi)存管理p 平坦模式平坦模式(Flat Mode)p 為什么不是段頁式的管理?為什么不是段頁式的管理?p 頁式管理要有程序頁式管理要有程序-內(nèi)存的映內(nèi)存的映射,嚴重影響實時性射,嚴重影響實時性p 包括包括p 靜態(tài)分配的靜態(tài)分配的IMAGE占
32、用空間占用空間p.code、.data、.bssp 系統(tǒng)的動態(tài)空間系統(tǒng)的動態(tài)空間pwind kernel創(chuàng)建的創(chuàng)建的REGION#0p 用戶的動態(tài)空間用戶的動態(tài)空間p 內(nèi)存分配采用內(nèi)存分配采用first-fit算法算法p 內(nèi)存釋放采用上下空閑區(qū)內(nèi)存釋放采用上下空閑區(qū)融合算法融合算法38內(nèi)存管理模塊內(nèi)存管理模塊p內(nèi)存管理模塊由內(nèi)存分配和內(nèi)存保護兩個相互內(nèi)存管理模塊由內(nèi)存分配和內(nèi)存保護兩個相互獨立的子模塊獨立的子模塊p內(nèi)存保護機制內(nèi)存保護機制p基于基于MMU的內(nèi)存保護機制的內(nèi)存保護機制p將內(nèi)核與用戶模式應用程序分離將內(nèi)核與用戶模式應用程序分離p將應用程序彼此分離將應用程序彼此分離p內(nèi)存管理函數(shù)內(nèi)存
33、管理函數(shù)p緊湊的內(nèi)存分區(qū)管理器緊湊的內(nèi)存分區(qū)管理器(memPartLib)p完整的內(nèi)存分區(qū)管理器完整的內(nèi)存分區(qū)管理器(memLib)39內(nèi)存碎片內(nèi)存碎片p 編程盡量使用靜態(tài)內(nèi)存分配編程盡量使用靜態(tài)內(nèi)存分配p 動態(tài)內(nèi)存分配會導致響應和執(zhí)行時間不動態(tài)內(nèi)存分配會導致響應和執(zhí)行時間不p 確定、內(nèi)存碎片等問題確定、內(nèi)存碎片等問題p VxWorks沒有清除碎片的功能沒有清除碎片的功能p 找不到一個合適的時間把正在運行的程序暫停下來清理內(nèi)存找不到一個合適的時間把正在運行的程序暫停下來清理內(nèi)存p 內(nèi)存碎片對實時性影響內(nèi)存碎片對實時性影響p 使得系統(tǒng)的可用空間減少使得系統(tǒng)的可用空間減少p 增加內(nèi)存管理單元的計算
34、負擔增加內(nèi)存管理單元的計算負擔p 只能避免碎片只能避免碎片p 限制使用動態(tài)內(nèi)存分配:限制使用動態(tài)內(nèi)存分配:p為了防止任務掛起,中斷服務程序里面不要使用為了防止任務掛起,中斷服務程序里面不要使用mallocp內(nèi)存搜索有時問開銷,所以有嚴格時限的任務也不能使用內(nèi)存搜索有時問開銷,所以有嚴格時限的任務也不能使用406.X版本內(nèi)存管理版本內(nèi)存管理p6.x支持非重疊地址空間支持非重疊地址空間p代碼向后兼容代碼向后兼容p無需多余的內(nèi)存射入無需多余的內(nèi)存射入(mapped in)或射出或射出(mapped out)操作,及多余的緩存刷新,保證了操作,及多余的緩存刷新,保證了高確定性和低延時高確定性和低延時p
35、在在MMU-less配置下不需要內(nèi)存轉(zhuǎn)換表,節(jié)省了內(nèi)配置下不需要內(nèi)存轉(zhuǎn)換表,節(jié)省了內(nèi)存空間并存空間并(在某些在某些CPU下下)提升了內(nèi)存訪問性能提升了內(nèi)存訪問性能p地址指針具唯一性,支持驅(qū)動程序和應用程序的重地址指針具唯一性,支持驅(qū)動程序和應用程序的重復使用,簡化了開發(fā)復使用,簡化了開發(fā)p同時支持有同時支持有MMU和無和無MMU的處理器的處理器41板級支持包板級支持包BSP-Board Support Package pBSPBSP通常是指針對具體的硬件平臺,用戶所編通常是指針對具體的硬件平臺,用戶所編寫的啟動代碼和部分設備驅(qū)動程序的集合寫的啟動代碼和部分設備驅(qū)動程序的集合p由兩部分組成由兩部
36、分組成p初始化、驅(qū)動程序初始化、驅(qū)動程序p初始化初始化p從系統(tǒng)上電復位開始直到從系統(tǒng)上電復位開始直到wind kernelwind kernel和和usrRootusrRoot根根任務啟動的這段時間,系統(tǒng)的執(zhí)行過程任務啟動的這段時間,系統(tǒng)的執(zhí)行過程p驅(qū)動程序:一些包含驅(qū)動程序:一些包含I/OI/O操作的子函數(shù)操作的子函數(shù) 42驅(qū)動程序驅(qū)動程序p 不能自動執(zhí)行,只能被動調(diào)用不能自動執(zhí)行,只能被動調(diào)用p 三種方式三種方式p 任務直接調(diào)用任務直接調(diào)用p 任務調(diào)用任務調(diào)用System CallSystem Callp 任務調(diào)用服務任務調(diào)用服務 43初始化初始化p包括:包括:pCPU Init CPU
37、Init pCPU InitCPU Init初始化初始化CPUCPU的內(nèi)部寄存器。的內(nèi)部寄存器。pBoard Init Board Init pBoard InitBoard Init初始化智能初始化智能I/OI/O的寄存器,將的寄存器,將devicedevice打通打通pSystem InitSystem InitpSystem InitSystem Init為系統(tǒng)的運行準備數(shù)據(jù)結(jié)構(gòu),進行數(shù)據(jù)初始為系統(tǒng)的運行準備數(shù)據(jù)結(jié)構(gòu),進行數(shù)據(jù)初始化?;?44Vxworks啟動過程啟動過程p 可加載型啟動方式可加載型啟動方式p 基于基于ROM型啟動方式型啟動方式45其他其他1p基于進程的標準編程模式基于
38、進程的標準編程模式p簡化了應用程序開發(fā)簡化了應用程序開發(fā)p對對MMU-less處理器也提供實時進程支持處理器也提供實時進程支持pIPv4/IPv6雙網(wǎng)絡協(xié)議棧雙網(wǎng)絡協(xié)議棧p基于基于KAME/FreeBSD TCP/IP版本移植而來版本移植而來p在內(nèi)核和網(wǎng)絡應用程序之間引入一個更強的隔離在內(nèi)核和網(wǎng)絡應用程序之間引入一個更強的隔離p高性能、可裁剪性高性能、可裁剪性46其他其他2p支持面向?qū)ο笾С置嫦驅(qū)ο髉VxWorks的對象的對象pTask、Message Queue、Semophore、Timer、Pipe、File Descriptorp對象的屬性:對象的屬性: p生存性:對象可以被創(chuàng)建或刪除
39、生存性:對象可以被創(chuàng)建或刪除p在生存期間,可被標識和管理:在生存期間,可被標識和管理:Name、ID、Control Blockp平等性:對象之間不象平等性:對象之間不象Unix中的父子進程間那樣存在繼中的父子進程間那樣存在繼承關系承關系p對象的服務對象的服務p系統(tǒng)使用系統(tǒng)服務對對象進行操作系統(tǒng)使用系統(tǒng)服務對對象進行操作47課程大綱課程大綱VxWorksVxWorks簡介簡介VxWorksVxWorks映像映像Wind Wind 內(nèi)核內(nèi)核VxWorksVxWorks內(nèi)存管理及其他內(nèi)存管理及其他VxWorksVxWorks開發(fā)環(huán)境開發(fā)環(huán)境48Tornado p WINDOWS/SUN SOLAR
40、IS/SUN OS/HP-UX環(huán)境下的環(huán)境下的IDEp 基于軟總線的開放環(huán)境基于軟總線的開放環(huán)境p 層次結(jié)構(gòu):層次結(jié)構(gòu):Manager、Project Tools、Internal BUS、symbol server & communicate server。p 1995年推出年推出p 主機主機-目標機交叉開發(fā)模型目標機交叉開發(fā)模型p 應用程序在主機的應用程序在主機的Windows環(huán)境下編譯鏈接生成可執(zhí)行文件環(huán)境下編譯鏈接生成可執(zhí)行文件p 下載到目標機下載到目標機p 通過主機上的目標服務器與目標機上的目標代理程序的通信完成對通過主機上的目標服務器與目標機上的目標代理程序的通信完成對應用
41、程序的調(diào)測、分析應用程序的調(diào)測、分析p Tornado的組成的組成p Tornado系列工具,一套位于主機與目標機上的工具與程序系列工具,一套位于主機與目標機上的工具與程序p VxWorks,高性能的實時操作系統(tǒng);高性能的實時操作系統(tǒng);p 主機、目標機之間的通信軟硬件,包括以太網(wǎng)、串行線、在線仿真主機、目標機之間的通信軟硬件,包括以太網(wǎng)、串行線、在線仿真器、器、ROM仿真器等仿真器等49Tornado-集成編譯環(huán)境集成編譯環(huán)境 50GDB-調(diào)試界面調(diào)試界面51WindView-多任務觀察界面多任務觀察界面52程序編輯程序編輯-Source Insight 53Tornado結(jié)構(gòu)結(jié)構(gòu)p Cros
42、s Compiler:p GNU for all architecturep Diab Data for PPC,68k,Mips,ARM etc.p Cross Debugger:p 照相機:照相機:Cross Windp 攝象機:攝象機:WindView,System Browser,CodeTest,Scope Tools p Project Facilityp VxWorks的自動配置工具的自動配置工具p Simulatorp Integrated simulator,full simulator5455Torando II嵌入式嵌入式開發(fā)系統(tǒng)開發(fā)系統(tǒng)Tornado軟件工具軟件工具包包
43、 Tornado Tools PackagesC DevelopersC+ DevelopersTornado Standard Core toolsTornado Prototyper Core tools VxSimTornado Professional Core tools?WindView Two additional WindPower toolsTornado Power Professional Core tools?WindView, Visual SlickEdit Four additional WindPower toolsTornado C+ Professional
44、 Core tools?WindView Two additional WindPower tools WindPower C+ toolsTo r n a d o C + + P o w e r Professional Core tools?WindView, Visual SlickEdit?Four additional WindPower tools WindPower C+ tools56核心工具核心工具p 1、圖形化的交叉調(diào)試器、圖形化的交叉調(diào)試器(Debugger)CrossWind/WDBp 遠程的源代碼集成調(diào)試器遠程的源代碼集成調(diào)試器p 支持任務級和系統(tǒng)級調(diào)試支持任務級和系
45、統(tǒng)級調(diào)試p 支持混合源代碼和匯編代碼顯示支持混合源代碼和匯編代碼顯示p 支持多目標機同時調(diào)試支持多目標機同時調(diào)試 p 2工程配置工具工程配置工具(Project Facility/Configuration)p 對對VxWorks操作系統(tǒng)及其組件進行自動地配置操作系統(tǒng)及其組件進行自動地配置 p Makefile自動生成維護自動生成維護p 軟件工程維護軟件工程維護p 自動的依賴性分析自動的依賴性分析p 代碼容量計算代碼容量計算p 自動裁剪自動裁剪57p 3集成仿真器集成仿真器(Integrated Simulator) p VxSim p 支持支持CrossWind, WindView, Bro
46、wser, 提供與真實目標機一致的調(diào)試提供與真實目標機一致的調(diào)試和仿真運行環(huán)境和仿真運行環(huán)境 p 可以可以沒有沒有BSP、操作系統(tǒng)配置、目標機硬件、操作系統(tǒng)配置、目標機硬件p 4診斷分析工具診斷分析工具(WindView for the Integrated Simulator)p 動態(tài)診斷和分析工具動態(tài)診斷和分析工具 p 目標機硬件上實際運行的應用程序的許多的詳細情況目標機硬件上實際運行的應用程序的許多的詳細情況 p 5C/C+編譯環(huán)境編譯環(huán)境p 交叉編譯器交叉編譯器p Diab C/C+ CompilerDiab C/C+ Compiler:唯一獲得:唯一獲得MOTOROLAMOTOROL
47、A白金大獎的嵌入式編譯器白金大獎的嵌入式編譯器p GNU C/C+ CompilerGNU C/C+ Compiler:應用最廣泛的編譯器。:應用最廣泛的編譯器。p iostreams類庫類庫p 支持支持C+C+中的格式化的和類型安全的中的格式化的和類型安全的I/O I/O p 擴展到用戶自定義數(shù)據(jù)類型擴展到用戶自定義數(shù)據(jù)類型 p 一些列的工具一些列的工具 p 異常事件處理、標準模板庫異常事件處理、標準模板庫(STL:Standard Template Library)、運行類、運行類型識別型識別(RTTI:Run-Time Type Identification)、支持靜態(tài)構(gòu)造器和析構(gòu)、支持
48、靜態(tài)構(gòu)造器和析構(gòu)器的加載器、器的加載器、C+調(diào)試器調(diào)試器58p 6主機目標機連接配置器主機目標機連接配置器(Launcher)p 允許開發(fā)者輕松地設置和配置一定的開發(fā)環(huán)境,也提供對開發(fā)環(huán)境允許開發(fā)者輕松地設置和配置一定的開發(fā)環(huán)境,也提供對開發(fā)環(huán)境的管理和許多管理功能的管理和許多管理功能 p 7 目標機系統(tǒng)狀態(tài)瀏覽器目標機系統(tǒng)狀態(tài)瀏覽器(Browser)p 提供目標系統(tǒng)的全面狀態(tài)總結(jié),也允許開發(fā)者監(jiān)視獨立的目標系統(tǒng)提供目標系統(tǒng)的全面狀態(tài)總結(jié),也允許開發(fā)者監(jiān)視獨立的目標系統(tǒng)對象:任務、信號燈、消息隊列、內(nèi)存分區(qū)、定時器、模塊、變量、對象:任務、信號燈、消息隊列、內(nèi)存分區(qū)、定時器、模塊、變量、堆棧等
49、堆棧等 p 8命令行執(zhí)行工具命令行執(zhí)行工具(WindSh)p 命令行解釋器命令行解釋器 p 可以直接解釋執(zhí)行可以直接解釋執(zhí)行C語句表達式、調(diào)用目標機上的語句表達式、調(diào)用目標機上的C函數(shù)、訪問系統(tǒng)函數(shù)、訪問系統(tǒng)符號表中登記的變量;還可以直接執(zhí)行符號表中登記的變量;還可以直接執(zhí)行TCL語言語言 p 9多語言瀏覽器多語言瀏覽器(WindNavigator)p 源程序代碼瀏覽,圖形化顯示函數(shù)調(diào)用關系,快速地進行代碼定位源程序代碼瀏覽,圖形化顯示函數(shù)調(diào)用關系,快速地進行代碼定位 p 10圖形化核心配置工具圖形化核心配置工具(WindConfig)p 使用圖形向?qū)Х绞街悄芑淖詣优渲檬褂脠D形向?qū)Х绞街悄芑?/p>
50、的自動配置VxWorks內(nèi)核及其組件參數(shù)內(nèi)核及其組件參數(shù) p 11增量加載器增量加載器(Incremental Loader)p 可以動態(tài)的加載新增模塊并在目標機與內(nèi)核實現(xiàn)動態(tài)鏈接運行可以動態(tài)的加載新增模塊并在目標機與內(nèi)核實現(xiàn)動態(tài)鏈接運行59備選工具備選工具(Optioanal tools)p WindPower工具工具p 1.1.軟件邏輯分析儀軟件邏輯分析儀WindViewWindViewp 提供嵌入式系統(tǒng)中各種動態(tài)運行過程的細節(jié)提供嵌入式系統(tǒng)中各種動態(tài)運行過程的細節(jié)p 2.2.原型仿真器原型仿真器VxSimVxSimp 完整的原型和仿真工具完整的原型和仿真工具p 在沒有實際的目標硬件的前提
51、下,先進行包括網(wǎng)絡和基于多處理器的原型應用程序設計在沒有實際的目標硬件的前提下,先進行包括網(wǎng)絡和基于多處理器的原型應用程序設計p 允許開發(fā)者在開發(fā)周期的前期就進行大量的應用程序測試允許開發(fā)者在開發(fā)周期的前期就進行大量的應用程序測試p 3.3.顯示軟件包顯示軟件包ScopePakScopePakp 軟件示波器軟件示波器StethoScopeStethoScopep 實時數(shù)據(jù)收集、圖形顯示、文檔和調(diào)試工具實時數(shù)據(jù)收集、圖形顯示、文檔和調(diào)試工具 p 跟蹤示波器跟蹤示波器TraceScopeTraceScopep 追蹤程序執(zhí)行過程的工具追蹤程序執(zhí)行過程的工具 p 4.4.性能檢測包性能檢測包Perfo
52、rmancePakPerformancePakp CPUCPU運行概況分析工具運行概況分析工具ProfileScopeProfileScopep 提供細節(jié)的、到每個函數(shù)的運行信息,可以幫助開發(fā)者查看提供細節(jié)的、到每個函數(shù)的運行信息,可以幫助開發(fā)者查看CPUCPU工作情況和確定性瓶頸工作情況和確定性瓶頸 p 內(nèi)存使用分析工具內(nèi)存使用分析工具MemScopeMemScopep 控制內(nèi)存使用、檢查內(nèi)存泄露、查看內(nèi)存使用情況控制內(nèi)存使用、檢查內(nèi)存泄露、查看內(nèi)存使用情況 p 5.5.代碼測試器代碼測試器CodeTestCodeTestp 覆蓋率分析覆蓋率分析Coverage ModuleCoverage Modulep 動態(tài)的內(nèi)存分配分析動態(tài)的內(nèi)存分配分析Memory ModuleMemory Modulep 替代探針的替代探針的target agenttarget agentp 6.6.編輯工具編輯工具Visual SlickEdit for TornadoVisual SlickEdit for Tor
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度手店面轉(zhuǎn)租合同:電競主題客棧轉(zhuǎn)租管理協(xié)議
- 2025年度離婚協(xié)議書模板:離婚后子女撫養(yǎng)權(quán)及贍養(yǎng)費協(xié)議
- 2025年度自愿離婚協(xié)議及財產(chǎn)分割執(zhí)行合同
- 二零二五年度物業(yè)賠償業(yè)主裝修期間意外事故協(xié)議
- 2025年度時尚服裝加盟店合作協(xié)議
- 2025年度餐飲服務業(yè)勞動合同解除協(xié)議
- 二零二五年度反擔保合同匯編:農(nóng)業(yè)產(chǎn)業(yè)化項目融資風險控制
- 二零二五年度順豐快遞員績效獎金合同
- 二零二五年度耕地租賃與農(nóng)業(yè)文化遺產(chǎn)保護合同
- 企業(yè)信息管理軟件開發(fā)合同
- 《主題四 雞蛋撞地球》教學設計-2023-2024學年六年級下冊綜合實踐活動遼師大版
- 2025年北京控股集團招聘筆試參考題庫含答案
- 《物聯(lián)網(wǎng)中間件》課件
- 2025年中國建材集團所屬中建材聯(lián)合投資有限公司招聘筆試參考題庫附帶答案詳解
- 水幕噴淋系統(tǒng)的工作原理與應用
- 門樓施工方案
- 全國職業(yè)院校技能大賽高職組(康復治療技術賽項)考試及答案
- 2024年08月河北唐山銀行第二批社會招考筆試歷年參考題庫附帶答案詳解
- 藥劑學第9版課件:第一章-緒論
- 【魔鏡洞察】2024藥食同源保健品滋補品行業(yè)分析報告
- DL-T 572-2021電力變壓器運行規(guī)程-PDF解密
評論
0/150
提交評論