基于32位X86CPU的嵌入式操作系統(tǒng)研發(fā)
發(fā)布時間:2021-08-07 01:17
根據(jù)日常工作中對嵌入式操作系統(tǒng)的功能要求以及當前x86CPU的發(fā)展趨勢,提出研發(fā)基于32位x86CPU的嵌入式操作系統(tǒng)。本文通過對嵌入式操作系統(tǒng)的應用領域及發(fā)展情況的研究,以及對操作系統(tǒng)原理的分析,確定了本研究需要開發(fā)的系統(tǒng)的框架結構。分析并實現(xiàn)了將CPU從16位實模式到32位保護模式的切換,基于時間片輪轉的可搶占式內(nèi)核,對相同優(yōu)先級的任務引入了優(yōu)先數(shù)概念,實現(xiàn)了對相同優(yōu)先級任務的時間分配和最先適應法的內(nèi)存分配算法。建立了系統(tǒng)調(diào)試環(huán)境,設計了系統(tǒng)中任務管理模塊、內(nèi)存管理模塊的測試方案,并成功通過了測試。為方便系統(tǒng)調(diào)試,實現(xiàn)了在DOS系統(tǒng)下裝載內(nèi)核和基本的控制臺驅(qū)動程序。最后獨立自主開發(fā)一套基于32位x86CPU的嵌入式操作系統(tǒng)。
【文章來源】:廣西大學廣西壯族自治區(qū) 211工程院校
【文章頁數(shù)】:92 頁
【學位級別】:碩士
【部分圖文】:
源代碼日錄結構圖
出侖文邊幼~32位X86CPU的嵌夕、式操作龍蔽崖充花開發(fā)在本研究中,體系結構相關的程序統(tǒng)一存放在一個目錄下,在這個目錄下,分別為各個體系建立一個目錄,用以保存不同體系結構的程序。其基本結構如圖3.2:圖3.2體系結構相關代碼圖Fig.3.2ArehiteetUresPeeifieeode這么設計的好處就是將硬件相關的代碼獨立出來,使操作系統(tǒng)移植的復雜性降到最低。例如,本操作系統(tǒng)是基于32位的x86處理器的,屬于IA32體系,在開發(fā)的時候,只在L氣32目錄中添加代碼。如果需要移植到ARM體系結構下,只需要增加ARM體系結構對應的代碼即可完成移植,而不會影響到其它已經(jīng)部分。體系結構無關代碼。體系結構無關代碼是指與硬件無關的代碼,通常是操作系統(tǒng)的核心部分
跳轉至內(nèi)核。程序的流程圖見圖3.4:打打開文件件 讀讀內(nèi)核文件數(shù)據(jù)據(jù) 至 至 RAMMM跳跳轉至內(nèi)核核調(diào)調(diào)整內(nèi)存范圍 圍 圖3.4系統(tǒng)裝載程序流程圖 Fig.3.4SystemloadingProgramflowehart裝載程序主要有兩個關鍵點。一是跨內(nèi)存段傳送數(shù)據(jù)。二是手動構造跳轉指令?鐑(nèi)存段傳送數(shù)據(jù)。受調(diào)試環(huán)境是DOS的限制,DOS程序在默認情況下,只能訪問當前段內(nèi)的內(nèi)存空間,而使用動態(tài)內(nèi)存分配的時候,并不能保證系統(tǒng)分配的空間一定是0x80000(使用段:偏移的表示方式為8000:0000)這個地為L,因此需要直接操作段寄存器,直接定位到操作系統(tǒng)區(qū)的內(nèi)存地址。同時受到16位實模式的現(xiàn)實,每個內(nèi)存段最大只有64K的空間,如果超過這個范圍,地址計算將出現(xiàn)錯誤,從而導致數(shù)據(jù)被覆蓋。為完成跨內(nèi)存段傳送數(shù)據(jù)
本文編號:3326850
【文章來源】:廣西大學廣西壯族自治區(qū) 211工程院校
【文章頁數(shù)】:92 頁
【學位級別】:碩士
【部分圖文】:
源代碼日錄結構圖
出侖文邊幼~32位X86CPU的嵌夕、式操作龍蔽崖充花開發(fā)在本研究中,體系結構相關的程序統(tǒng)一存放在一個目錄下,在這個目錄下,分別為各個體系建立一個目錄,用以保存不同體系結構的程序。其基本結構如圖3.2:圖3.2體系結構相關代碼圖Fig.3.2ArehiteetUresPeeifieeode這么設計的好處就是將硬件相關的代碼獨立出來,使操作系統(tǒng)移植的復雜性降到最低。例如,本操作系統(tǒng)是基于32位的x86處理器的,屬于IA32體系,在開發(fā)的時候,只在L氣32目錄中添加代碼。如果需要移植到ARM體系結構下,只需要增加ARM體系結構對應的代碼即可完成移植,而不會影響到其它已經(jīng)部分。體系結構無關代碼。體系結構無關代碼是指與硬件無關的代碼,通常是操作系統(tǒng)的核心部分
跳轉至內(nèi)核。程序的流程圖見圖3.4:打打開文件件 讀讀內(nèi)核文件數(shù)據(jù)據(jù) 至 至 RAMMM跳跳轉至內(nèi)核核調(diào)調(diào)整內(nèi)存范圍 圍 圖3.4系統(tǒng)裝載程序流程圖 Fig.3.4SystemloadingProgramflowehart裝載程序主要有兩個關鍵點。一是跨內(nèi)存段傳送數(shù)據(jù)。二是手動構造跳轉指令?鐑(nèi)存段傳送數(shù)據(jù)。受調(diào)試環(huán)境是DOS的限制,DOS程序在默認情況下,只能訪問當前段內(nèi)的內(nèi)存空間,而使用動態(tài)內(nèi)存分配的時候,并不能保證系統(tǒng)分配的空間一定是0x80000(使用段:偏移的表示方式為8000:0000)這個地為L,因此需要直接操作段寄存器,直接定位到操作系統(tǒng)區(qū)的內(nèi)存地址。同時受到16位實模式的現(xiàn)實,每個內(nèi)存段最大只有64K的空間,如果超過這個范圍,地址計算將出現(xiàn)錯誤,從而導致數(shù)據(jù)被覆蓋。為完成跨內(nèi)存段傳送數(shù)據(jù)
本文編號:3326850
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3326850.html
最近更新
教材專著