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