版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、VxWks5.5開發(fā)指南學(xué)習(xí)筆記開發(fā)指南學(xué)習(xí)筆記第一章第一章VxWks概述概述1緒論緒論VxWks是一種嵌入式的實時操作系統(tǒng),所謂嵌入式操作系統(tǒng)就是我們自己設(shè)計開發(fā)一塊可以實現(xiàn)某種功能的板子,一般的功能板上都有一個cpu,嵌入式實施操作系統(tǒng)就是運行于這個cpu之上,使我們能夠在板子上作相應(yīng)得軟件開發(fā)實現(xiàn)板子功能。VxWks支持32位的CPU,包括Intel公司的x86、Motola公司的68k和PowerPC、MIPS、ARM、Inte
2、l公司的i960、Hitachi公司的SH。我們設(shè)計的這塊板子通常沒有軟件的自開發(fā)能力,所以我們需要一臺通用機來輔助開發(fā),這臺通用機可以是PC或工作站,我們稱輔助我們軟件開發(fā)的通用機為宿主機(Host),用戶自己開發(fā)的板子為目標(biāo)機(Target)。宿主機上要有一個集成開發(fā)環(huán)境(IDE)來輔助我們的軟件開發(fā),這套集成開發(fā)環(huán)境可以運行在Windows95NT或UNIX下,包括交叉編譯器(CrossCompiler)和交叉調(diào)試器(CrossD
3、ebugger)所謂交叉編譯器就是在宿主機上編譯生成可以在目標(biāo)機上運行的代碼IMAGE,交叉調(diào)試器就是通過宿主機和目標(biāo)機之間的某種耦合方式實現(xiàn)前后臺調(diào)試。我們稱宿主機上的這套集成開發(fā)環(huán)境為Tnado,編譯生成的目標(biāo)機上的可執(zhí)行代碼IMAGE為VxWks。在系統(tǒng)安裝的時候,集成調(diào)試環(huán)境和VxWks的原材料(一些obj文件)都安裝到宿主機上,編譯生成的在目標(biāo)機上運行的IMAGE內(nèi)包含操作系統(tǒng)。下面我們分別來介紹這兩部分內(nèi)容。1.1IMAGE
4、1.1IMAGEofofVxWksVxWks1IMAGE的結(jié)構(gòu)IMAGE可以分為三個層次四個部分,最底層是BSP,中間層是VxWks其中包含WindKernel和components兩部分,最高層是應(yīng)用實現(xiàn)層app。1)BSPBSP是系統(tǒng)用來管理外設(shè)的部分,由兩部分組成:初始化、驅(qū)動程序。所謂初始化是指從系統(tǒng)上電復(fù)位開始直到windkernel和usrRoot根任務(wù)啟動的這段時間系統(tǒng)的執(zhí)行過程。驅(qū)動程序就是一些包含IO操作的子函數(shù),是對
5、一些調(diào)試或加載應(yīng)用程序所需要的外設(shè)的驅(qū)動程序。初始化可分為3個過程:CPUInit、BoardInit、SystemInit。CPUInit初始化CPU的內(nèi)部寄存器。BoardInit初始化智能IO的寄存器,將device打通。SystemInit為系統(tǒng)的運行準(zhǔn)備數(shù)據(jù)結(jié)構(gòu),進行數(shù)據(jù)初始化。驅(qū)動程序的特點是不能自動執(zhí)行,只能被動調(diào)用。調(diào)用可以有三種方式:任務(wù)直接調(diào)用、任務(wù)調(diào)用SystemCall、任務(wù)調(diào)用服務(wù)。具體如下圖11所示??蓜討B(tài)地
6、下載目標(biāo)文件,并與操作系統(tǒng)及其它目標(biāo)文件動態(tài)鏈接。這與DOS的.EXE文件相類似,其地址在鏈接以后是浮動的,只在裝載時才與絕對物理地址相對應(yīng);VxWks成品階段是采用靜態(tài)鏈接的。Tnado是一個用于軟件交叉開發(fā)的集成開發(fā)環(huán)境。它提供了一種高效的開發(fā)實施嵌入式系統(tǒng)的高效方法,同時與目標(biāo)機的相關(guān)很少。有如下的組成部分:?VxWks,高效能的操作系統(tǒng)。?應(yīng)用開發(fā)工具?集成開發(fā)環(huán)境第二章第二章Vxwks操作系統(tǒng)操作系統(tǒng)2.12.1內(nèi)存管理內(nèi)存管
7、理實時嵌入式操作系統(tǒng)得內(nèi)存管理與通用操作系統(tǒng)有很大不同,它有一些特殊的要求:?快速性:?可靠性:?高效性2.1.1嵌入式系統(tǒng)動態(tài)內(nèi)存分配嵌入式系統(tǒng)動態(tài)內(nèi)存分配1基本概念堆:嵌入式系統(tǒng)中,將代碼、數(shù)據(jù)和系統(tǒng)信息等所占的內(nèi)存之外的部分用于內(nèi)存的動態(tài)分配這個區(qū)域稱為堆。內(nèi)存管理只要是管理對內(nèi)存的分配與回收。內(nèi)存單元內(nèi)存單元:堆一般被分為一些固定大小的單元,單元大小為2的乘冪(以B為單位),動態(tài)分配程序malloc()實際分配的內(nèi)存是內(nèi)存單元的
8、整數(shù)倍。假設(shè)內(nèi)存單元是4B,請求分配101B,則實際分配了104B,多余的3B成為內(nèi)部內(nèi)存碎片。內(nèi)存碎片內(nèi)存碎片:除過內(nèi)部內(nèi)存碎片,還有一類外部碎片:當(dāng)堆中空閑內(nèi)存快都小于請求分配的內(nèi)存大小時稱外部碎片。消除內(nèi)存碎片的方法是“緊縮”,即通過移動空閑內(nèi)存快只間的內(nèi)容是空閑沒內(nèi)存快相鄰接合并為較大的內(nèi)存塊。內(nèi)存對齊內(nèi)存對齊:內(nèi)存對齊指的是,在特定體系結(jié)構(gòu)中強加在數(shù)據(jù)項的內(nèi)存地址上的限制。很多處理器不能在任意地址訪問多字節(jié)的整數(shù)項(如整形)內(nèi)
9、存分配表:內(nèi)存分配表:良好的內(nèi)存分配表是獲得高效內(nèi)存管理的關(guān)鍵,它決定了下列內(nèi)存管理是否能夠快速有效得實現(xiàn)。1。分配內(nèi)存時確定是否有足夠大的空閑塊;釋放內(nèi)存時更新內(nèi)存管理信息;釋放內(nèi)存時確定當(dāng)前的內(nèi)存塊是否能與相鄰的空閑塊合并2.1.2Vxwks動態(tài)內(nèi)存管理動態(tài)內(nèi)存管理在Vxwks5.x中,有兩個內(nèi)存池用于動態(tài)內(nèi)存分配:系統(tǒng)內(nèi)存池和TargetServer內(nèi)存池。系統(tǒng)內(nèi)存池面向目標(biāo)板內(nèi)存的使用,其管理在目標(biāo)板上進行。TargetServ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)習(xí)筆記
- 出納學(xué)習(xí)筆記
- 學(xué)習(xí)筆記-動詞
- hypermesh學(xué)習(xí)筆記
- spss學(xué)習(xí)筆記
- 學(xué)習(xí)筆記 藥疹
- 音標(biāo)學(xué)習(xí)筆記
- eddypro學(xué)習(xí)筆記
- bpa學(xué)習(xí)筆記
- java學(xué)習(xí)筆記
- arduino學(xué)習(xí)筆記
- 學(xué)習(xí)筆記模板
- axure學(xué)習(xí)筆記
- 法語學(xué)習(xí)筆記
- spring學(xué)習(xí)筆記
- tbbt學(xué)習(xí)筆記
- 黨章學(xué)習(xí)筆記
- cuda學(xué)習(xí)筆記
- 學(xué)習(xí)筆記整理
- 茶藝學(xué)習(xí)筆記
評論
0/150
提交評論