畢業(yè)設計(論文)基于MagicSOPC的uClinux的移植_第1頁
畢業(yè)設計(論文)基于MagicSOPC的uClinux的移植_第2頁
畢業(yè)設計(論文)基于MagicSOPC的uClinux的移植_第3頁
畢業(yè)設計(論文)基于MagicSOPC的uClinux的移植_第4頁
畢業(yè)設計(論文)基于MagicSOPC的uClinux的移植_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、本科畢業(yè)論文 (設計)題 目:基于magicsopc的uclinux的移植學 院:信息工程學院 專 業(yè):計算機科學與技術(shù) 姓 名: 指導教師: 2009 年 6 月 5 日摘要uclinux嵌入式操作系統(tǒng)是一種可以嵌入到硬件平臺上的操作系統(tǒng),它主要是為無內(nèi)存管理單元的處理器設計,它支持多任務,具有完備的tcp/ip協(xié)議棧并支持多種網(wǎng)絡協(xié)議,并且支持多種文件系統(tǒng)。nios ii是altera公司開發(fā)的可用于sopc(system on a programmable chip,可編程片上系統(tǒng))設計的處理器軟核?;趎ios ii軟核的sopc系統(tǒng),其最大特點就是靈活,可以根據(jù)自己的需要靈活改變ni

2、os ii的外圍設備,使得硬件利用效率達到最高,同時它具有isp(in system programmable,在系統(tǒng)編程)的功能,可裁減,可擴充,可升級。本文主要研究了基于magicsopc的uclinux嵌入式系統(tǒng)的移植過程。在對magicsopc了解的基礎上,通過修改、配置、交叉編譯uclinux內(nèi)核源代碼,實現(xiàn)了uclinux發(fā)行包在magicsopc開發(fā)板上的成功移植。編譯后的內(nèi)核最終燒錄至開發(fā)板,并成功運行。關鍵詞:uclinux,magicsopc,nios ii,嵌入式系統(tǒng)abstract the uclinux is a kind of operating system wh

3、ich can be embedded in the hardware platform.it is mainly designed for the processor of non-memory management unit.it supports the multi-duties and many kinds of filing system,it also supports a lot kinds of net protocols,as well as has a integtated tcp/ip protocol stack.nios ii is a processers soft

4、core used for designing of system on a programmable chip which is developed by altera.system on a programmable chip based on niosii is very flexible,its peripheral equipment can be changed according to your needs,which makes the hardwares use efficiency highest.at the same time, niosii has in-system

5、-programmable function,it is reducible,expandable,upgradeable.the paper probes into the process of transplanting uclinux to magicsopc.after knowing more about magicsopc,it have realized the transplanting uclinux to nios iiii board by writing,altering,setting,cross-compiling the kernel of uclinux.the

6、 compiled kernel had been downloaded,burned to development board and run successfully at last.keywords: uclinux,magicsopc,nios ii,embedded system目錄第一章 緒論11.1 研究背景及意義11.2研究的主要內(nèi)容2第二章 嵌入式系統(tǒng)及嵌入式操作系統(tǒng)概述22.1嵌入式系統(tǒng)的概念及特點22.2嵌入式操作系統(tǒng)的概念及特點32.3嵌入式系統(tǒng)的發(fā)展4第三章 uclinux內(nèi)核分析43.1uclinux內(nèi)核結(jié)構(gòu)特點43.2uclinux源代碼組織結(jié)構(gòu)53.3內(nèi)存管理6

7、3.4進程管理7第四章 系統(tǒng)硬件平臺magicsopc介紹84.1 sopc簡介84.2 magicsopc開發(fā)板功能簡介94.3magicsopc的硬件資源和核心板性能114.3.1硬件資源114.3.2 核心板powersopc-2c35性能124.4 nios iiii軟核處理器簡介13第五章 基于magicsopc的uclinux移植145.1建立交叉編譯環(huán)境145.2內(nèi)核下載145.3 內(nèi)核配置和編譯155.4 內(nèi)核燒寫18第六章 全文總結(jié)22謝辭23參考文獻24第一章 緒論1.1 研究背景及意義隨著通信網(wǎng)絡技術(shù)和集成電路設計的高速發(fā)展,嵌入式系統(tǒng)已成為it業(yè)的一個焦點。嵌入式系統(tǒng)大

8、量應用于自動控制、工業(yè)生產(chǎn)、軍事技術(shù)和家用消費類數(shù)碼設備上。pc己經(jīng)從高速增長進入到平穩(wěn)發(fā)展的市場頂峰時期,單純由pc帶領的電子產(chǎn)業(yè)蒸蒸日上的時代己經(jīng)成為歷史,現(xiàn)在的電子產(chǎn)業(yè)的發(fā)展需要尋找一個新的發(fā)展點。人們提出了“后pc時代”的概念,計算機無處不在,它滲透到生活和工作的方方面面。后pc時代的絕大多數(shù)計算機是以非計算機的形式出現(xiàn)的,例如智能手機、個人數(shù)字助理、路由器、電視機等等。這些設備大多數(shù)是以嵌入式系統(tǒng)的形式存在。近年來,可編程邏輯器件(pld)的發(fā)展,使得sopc(system on a programmable chip,可編程片上系統(tǒng))成為可能, 即在一塊可編程芯片上實現(xiàn)整個系統(tǒng)。n

9、ios ii是altera公司開發(fā)的可用于sopc設計的處理器軟核。基于nios ii軟核的sopc系統(tǒng),其最大特點就是靈活,可以根據(jù)自己的需要靈活改變nios ii的外圍設備,使得硬件利用效率達到最高,同時它具有isp(in system programmable,在系統(tǒng)編程)的功能,可裁減,可擴充,可升級。uclinux是linux的一個分支,它保留了linux穩(wěn)定和優(yōu)異的網(wǎng)絡能力以及優(yōu)秀的文件系統(tǒng)支持的特點,同時又克服了linux必須依賴與mmu的不足,是一種優(yōu)秀的嵌入式操作系統(tǒng)。同時nios ii又是一種高效、低功耗的risc處理器。二者的結(jié)合將使基于nios ii和uclinux的嵌

10、入式產(chǎn)品有更高的競爭力。1.2研究的主要內(nèi)容本文針對嵌入式操作系統(tǒng)移植的普遍問題,結(jié)合altera公司的nios iiii嵌入式處理器對嵌入式操作系統(tǒng)uclinux移植的以下幾個方面進行了探討和研究:(1)uclinux操作系統(tǒng);(2)硬件開發(fā)平臺magicsopc;(3)nios iiii軟核處理器;(4)將uclinux移植到magicsopc板子上的主要步驟。第二章 嵌入式系統(tǒng)及嵌入式操作系統(tǒng)概述隨著信息技術(shù)和網(wǎng)絡技術(shù)的迅速發(fā)展,建立在此基礎上的嵌入式系統(tǒng)已廣泛滲透到科學研究、工程設計、軍事技術(shù)、商業(yè)文化藝術(shù)以及人們的日常生活等方面,嵌入式接入設備是數(shù)字化時代的一大主流產(chǎn)品,世界各國在此

11、領域開始了激烈競爭,以爭取獲得主導地位。本章主要介紹了嵌入式系統(tǒng)和嵌入式操作系統(tǒng)的基本概念和特點。2.1嵌入式系統(tǒng)的概念及特點嵌入式系統(tǒng)是計算機軟件與硬件的綜合體,它是以應用為中心,以計算機技術(shù)為基礎,軟硬件可裁剪,從而能夠適應實際應用中對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)通常具備以下一些特點:(1)嵌入式系統(tǒng)是將先進的計算機技術(shù)、半導體技術(shù)以及電子技術(shù)與各個行業(yè)具體應用相結(jié)合的產(chǎn)物,是一個技術(shù)密集、資金密集、高度分散、不斷據(jù)創(chuàng)新的知識集成系統(tǒng);(2)嵌入式系統(tǒng)通常只執(zhí)行特定的功能,是面向用戶、面向產(chǎn)品、面向特定應用的系統(tǒng)。嵌入式系統(tǒng)cpu都具有低功耗、體積小

12、、集成度高等特點,而且能夠集成多種外設,從而有利于整個系統(tǒng)趨于小型化;(3)嵌入式系統(tǒng)和具體的應用有機地結(jié)合在一起,其升級換代也和具體的產(chǎn)品同步進行,因此,嵌入式系統(tǒng)產(chǎn)品一旦進入市場,就具有較長的生命周期;(4)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲芯片中或單片機中,而不是在存儲在磁盤等載體中。另外,由于大部分嵌入式系統(tǒng)必須具有較高的實時性,因此對程序的質(zhì)量,特別是可靠設計性,有較高的要求。嵌入式系統(tǒng)的核心是嵌入式微處理器。嵌入式微處理器一般具備以下4個特點:(1)對實時和多任務有很強的支持能力,能完成多任務并且有較短的中斷響應時間,從而使內(nèi)部的代碼和實時操作系統(tǒng)的執(zhí)

13、行時間減少到最低限度;(2)具有功能很強的存儲區(qū)保護功能,這是由于嵌入式系統(tǒng)的軟件結(jié)構(gòu)己模塊化,而為了避免在軟件模塊之間出現(xiàn)錯誤的交叉作用,需要設計強大的存儲區(qū)保護功能,同時也有利于軟件診斷;(3)可擴展的處理器結(jié)構(gòu),能迅速地擴展出滿足應用的高性能的嵌入式微處理器;(4)嵌入式微處理器的功耗必須很低,尤其是用于便攜式的無線及移動的計算和通信設備中靠電池供電的嵌入式系統(tǒng)更是如此,功耗只能為mw甚至uw級。據(jù)不完全統(tǒng)計,全世界嵌入式處理器已經(jīng)超過100多種,流行的體系結(jié)構(gòu)有30幾個系列。嵌入式微處理器的體系結(jié)構(gòu)經(jīng)歷了從cisc (complex instruction set computer,復

14、雜指令集計算機)到risc(reduced instruction set computer,精簡指令集計算機)和compactrisc的轉(zhuǎn)變;位數(shù)由4位、8位、16位、32位到64位;尋址空間從64kb到64mb;處理速度從0.1mips(million instructions per second,百萬指令每秒)到2000mips等。2.2嵌入式操作系統(tǒng)的概念及特點嵌入式操作系統(tǒng)是一種支持嵌入式系統(tǒng)應用的操作系統(tǒng)軟件,它是嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成部分,通常包括與硬件相關的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設備驅(qū)動接口、通信協(xié)議、圖形界面、標準化瀏覽器等。嵌入式操作系統(tǒng)具有通用操

15、作系統(tǒng)的基本特點,如能夠有效管理越來越復雜的系統(tǒng)資源;能夠把硬件虛擬化,使得開發(fā)人員從繁忙的驅(qū)動程序移植和維護中解脫出來;能夠提供庫函數(shù)、驅(qū)動程序、工具集以及應用程序。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關依賴性、軟件固態(tài)化以及應用的專用性等方面具有較為突出的特點。從20世紀80年代開始,出現(xiàn)了各種各樣的商用嵌入式操作系統(tǒng),這些嵌入式操作系統(tǒng)大部分是為專有系統(tǒng)開發(fā),從而形成了多種形式的嵌入式操作系統(tǒng),常用的操作系統(tǒng)包括嵌入式linux、microsoft windowsce、vxworks以及uc/os-ii等等。2.3嵌入式系統(tǒng)的發(fā)展縱觀嵌入式系統(tǒng)的發(fā)展,大致經(jīng)歷了

16、三個階段。第一階段是以單芯片為核心的可編程控制器形式的系統(tǒng),同時具有與監(jiān)測、指示設備相配合的功能。這種系統(tǒng)大部分應用于工業(yè)控制系統(tǒng)中,一般沒有操作系統(tǒng)的支持。第二階段以嵌入式操作系統(tǒng)為標志。這一階段系統(tǒng)的主要特點是:嵌入式操作系統(tǒng)能運行于各種不同類型的微處理器上,操作系統(tǒng)內(nèi)核精小、效率高,并且具有高度的模塊化和擴展性;具有文件和目錄管理、設備支持、多任務、網(wǎng)絡支持、圖形窗口以及用戶界面等功能;具有大量的應用程序接口(api),嵌入式應用軟件豐富,但與互聯(lián)網(wǎng)無關。第三階段是以基于因特網(wǎng)為標志的嵌入式系統(tǒng),這是一個正在迅速發(fā)展的階段。第三章 uclinux內(nèi)核分析嵌入式操作系統(tǒng)是嵌入式系統(tǒng)的靈魂,

17、而且在同一個硬件平臺上可以嵌入不同的嵌入式操作系統(tǒng),本章主要針對uclinux內(nèi)核進行分析探討。嵌入式uclinux操作系統(tǒng)主要由三個基本部分組成:引導程序,uclinux內(nèi)核(由內(nèi)存管理,進程管理和中斷處理等構(gòu)成)和文件系統(tǒng)。uclinux可以通過定制使內(nèi)核小型化,還可以加上gui和定制應用程序,并將其放在rom,ram,flash或者disk on chip中啟動。由于嵌入式uclinux操作系統(tǒng)的內(nèi)核定制的高度靈活性,開發(fā)者可以按需要進行分配,來滿足實際應用要求;又由于uclinux是源代碼公開,因此開發(fā)人員完全可以了解內(nèi)核原理,自己開發(fā)部分應用軟件,下面將詳細分析嵌入式操作系統(tǒng)ucli

18、nux內(nèi)核的特點。3.1uclinux內(nèi)核結(jié)構(gòu)特點uclinux從linux2.0/2.4內(nèi)核派生而來,其內(nèi)核功能結(jié)構(gòu)與linux基本相同,不同的主要是對內(nèi)存管理和進程管理進行了改寫,以滿足無mmu處理器的要求。另外,由于大多數(shù)內(nèi)核源代碼被改寫,uclinux的內(nèi)核要比原來linux2.0內(nèi)核小的多,但保留了linux操作系統(tǒng)的主要優(yōu)點:穩(wěn)定性、優(yōu)異的網(wǎng)絡能力以及優(yōu)秀的文件系統(tǒng)支持。作為一個優(yōu)秀的嵌入式操作系統(tǒng),uclinux的主要特點有:(1)通用的linuxapi(application programming interface,應用程序編程接口);(2)完整的tcp/ip協(xié)議堆棧;(3

19、 )支持大量其他的網(wǎng)絡協(xié)議;(4)支持各種文件系統(tǒng),包括nfs,ext2,romfs,jffs,ms-dos以及fat 16/323.2uclinux源代碼組織結(jié)構(gòu)uclinux系統(tǒng)采用romfs文件系統(tǒng),這種文件系統(tǒng)相對于一般的ext2文件系統(tǒng)要求更少的空間??臻g的節(jié)約來自于兩個方面:首先內(nèi)核支持romfs文件系統(tǒng)比支持ext2文件系統(tǒng)需要更少的代碼;其次romfs文件系統(tǒng)相對簡單,建立文件系統(tǒng)超級塊需要更少的存儲空間。romfs文件系統(tǒng)不支持動態(tài)擦寫保存,對于系統(tǒng)需要動態(tài)保存的數(shù)據(jù)采用虛擬ram盤的方法進行處理(ram盤將采用ext2文件系統(tǒng))?,F(xiàn)在的uclinux有兩種版本,即uclin

20、ux-2.0和uclinux-2.4版本,它們分別對應于標準linux的uclinux-2.0和uclinux-2.4版本。下面我以內(nèi)核2.4.x為例,詳細介紹內(nèi)核源文件的結(jié)構(gòu)。該版本的uclinux內(nèi)核源程序安裝在/home/uclinux-dist/linux-2.4.x目錄下。linux內(nèi)核版本編號有約定:任何偶數(shù)的內(nèi)核(例如2.0.x)都是一個穩(wěn)定的發(fā)行內(nèi)核,而任何奇數(shù)的內(nèi)核(例如2.1.x)都是一個正在開發(fā)中的內(nèi)核。內(nèi)核源程序的文件按樹型結(jié)構(gòu)進行組織,在內(nèi)核源程序樹的最上層linux-2.4.x目錄下你會看這樣一些目錄:(1) arch:arch包括了所有和體系結(jié)構(gòu)相關的核心代碼。它

21、的每一個子目錄都代表一種支持的體系結(jié)構(gòu),例如nios ii就是關于nios ii cpu體系結(jié)構(gòu)的內(nèi)核,nios ii2nommu就是關于nios ii的內(nèi)核。(2)include:inlcude子目錄包括編譯內(nèi)核所需要的大部分頭文件。與平臺無關的頭文件在/include/linux子目錄下,例如與nios iiii cpu相關的頭文件在inlcude/nios ii2armnommu子目錄下。(3)init:這個目錄包含內(nèi)核的初始化代碼,包含文件main.c和versions.c,這是研究初始化和內(nèi)核的一個非常好的起點。(4) mmnommu:這個目錄包括所有獨立于cpu體系結(jié)構(gòu)的內(nèi)存管理代

22、碼,如頁式存儲器管理內(nèi)存的分配和釋放,而和體系結(jié)構(gòu)相關的內(nèi)存管理代碼則位于arch/*/mm目錄中。(5) kernel:主要的核心代碼,此目錄下的文件實現(xiàn)了大多數(shù)uclinux系統(tǒng)的內(nèi)核函數(shù),其中最重要的文件當屬sched.c,同樣,和體系結(jié)構(gòu)相關的代碼在arch/*/kernel目錄中。(6)drivers:存放系統(tǒng)所有的驅(qū)動程序。每種驅(qū)動程序又各占一個子目錄,如block下為塊設備驅(qū)動程序,比如ide (ide.c)。如果你想查看所有可能包含文件系統(tǒng)的設備是如何被初始化的,你可以看drivers/block/genhd.c中的device_setup()。它不僅初始化硬盤,還初始化網(wǎng)絡。

23、(7)其他如lib,放置內(nèi)核的庫代碼,net放置內(nèi)核與網(wǎng)絡相關的代碼,ipc這個目錄包含內(nèi)核的進程間通信的代碼,fs為所有文件系統(tǒng)代碼和個那文件類型的操作代碼,它的每個子目錄支持一種文件系統(tǒng),例如fat和ext2, scripts包含用于配置內(nèi)核的腳本文件等等。內(nèi)核源代碼分為特定于體系結(jié)構(gòu)的部分和與體系結(jié)構(gòu)無關的部分。內(nèi)核中特定于體系結(jié)構(gòu)的部分先執(zhí)行,它設置硬件寄存器,配置內(nèi)存映射,執(zhí)行特定于體系結(jié)構(gòu)的初始化,然后將控制權(quán)交給內(nèi)核中與體系結(jié)構(gòu)不相關的部分。內(nèi)核樹下的目錄arch/由不同的子目錄組成,每個子目錄用于一個不同的體系結(jié)構(gòu)(mips,arm,i386,sparc,ppc等)。每一個這樣

24、的子目錄都包含kernel和mm子目錄,他們包含特定于體系結(jié)構(gòu)的代碼來完成像初始化內(nèi)存,設置irq(interrupt request,即“中斷請求”),啟用高速緩存,設置頁面表等操作。一旦裝入內(nèi)核并給予其控制,就首先調(diào)用這些函數(shù),然后初始化系統(tǒng)的其余部分。一般在每個目錄下都有一個makefile文件,這個文件是編譯時使用的輔助文件,仔細閱讀這個文件對弄清各個文件之間的聯(lián)系和依托關系很有幫助,而且有的目錄下還有readme文件,它對該目錄下的文件的一些說明,同樣有助于對內(nèi)核源代碼的理解。3.3內(nèi)存管理uclinux同標準linux的最大區(qū)別就在于內(nèi)存管理。標準linux是針對有mmu的處理器設

25、計的。在這種處理器上,虛擬地址被送到mmu(memory management unit,內(nèi)存管理單元),mmu把虛擬地址映射為物理地址。通過賦予每個任務不同的虛擬地址與物理地址轉(zhuǎn)換映射,支持不同任務之間的保護。對于uclinux來說,其設計針對沒有mmu的處理器,不能使用處理器的虛擬內(nèi)存管理技術(shù)。uclinux仍采用存儲器的分頁管理,系統(tǒng)在啟動時把實際存儲器進行分頁。在加載應用程序時程序分頁加載。但是由于沒有mmu管理,所以實際上uclinux采用實存儲器管理策略,這一點影響了系統(tǒng)工作的很多方面。uclinux系統(tǒng)對于內(nèi)存的訪問是直接的,它對地址的訪問不需要經(jīng)過mmu,而是直接送到地址線上輸

26、出,所有程序中訪問的地址都是實際的物理地址。操作系統(tǒng)對內(nèi)存空間沒有保護,這實際上是很多嵌入式系統(tǒng)的特點,各個進程實際上共享一個運行空間,沒有獨立的地址轉(zhuǎn)換表。一個進程在執(zhí)行前,系統(tǒng)必須為進程分配足夠的連續(xù)地址空間,然后全部載入主存儲器的連續(xù)空間中。與之相對應的是標準linux系統(tǒng)在分配內(nèi)存時沒有必要保證實際物理存儲空間是連續(xù)的,而只要保證虛存地址空間連續(xù)就可以了。此外磁盤交換空間也是無法使用的,系統(tǒng)執(zhí)行時如果缺少內(nèi)存將無法通過磁盤交換來得到改善。uclinux對內(nèi)存的管理減少的同時就給開發(fā)人員提出了更高的要求。如果從易用性這一點來說,uclinux的內(nèi)存管理是一種倒退,退回了到了unix早期,

27、開發(fā)人員不得不參與系統(tǒng)的內(nèi)存管理。從編譯內(nèi)核開始,開發(fā)人員必須告訴系統(tǒng)這塊開發(fā)板到底擁有多少的內(nèi)存。系統(tǒng)在啟動的初始化階段對內(nèi)存進行分頁,并且標記已使用的和未使用的內(nèi)存,系統(tǒng)將在運行應用時使用這些分頁內(nèi)存。由于應用程序加載時必須分配連續(xù)的地址空間,而針對不同硬件平臺的可一次成塊(連續(xù)地址)分配內(nèi)存大小限制是不同的。目前針對ez328處理器的uclinux是128k,而針對coldfire處理器的系統(tǒng)內(nèi)存則無此限制,所以開發(fā)人員在開發(fā)應用程序時必須考慮內(nèi)存的分配情況并關注應用程序需要運行空間的大小。另外,由于采用實存儲器管理策略,用戶程序同內(nèi)核以及其它用戶程序在一個地址空間,程序開發(fā)時要保證不侵

28、犯其它程序的地址空間,以使得程序不至于破壞系統(tǒng)的正常工作,或?qū)е缕渌绦虻倪\行異常。從內(nèi)存的訪問角度來看,開發(fā)人員的權(quán)利增大了,開發(fā)人員在編程時可以訪問任意的地址空間,但與此同時系統(tǒng)的安全性也大為下降。此外,系統(tǒng)對多進程的管理將有很大的變化,這一點將在uclinux的多進程處理中說明。3.4進程管理針對沒有mmu的處理器,uclinux拋棄了標準linux諸如對頁目錄和頁表的管理;對于交換空間的維護;頁交換內(nèi)核守護進程和頁面換出功能;缺頁中斷和頁面保護機制等。為了解決由此產(chǎn)生新問題,uclinux修改了部分進程管理代碼。uclinux沒有mmu管理存儲器,在實現(xiàn)多個進程時(fork調(diào)用生成子進

29、程)需要實現(xiàn)數(shù)據(jù)段保護。由于uclinux的多進程管理是通過vfork來實現(xiàn)的,因此fork等于vfork。這意味著uclinux系統(tǒng)fork調(diào)用完成之后,要么子進程代替父進程執(zhí)行(此時父進程已經(jīng)sleep)直到子進程調(diào)用exit退出;要么調(diào)用exec執(zhí)行一個新的進程,這個時候?qū)a(chǎn)生可執(zhí)行文件的加載,即使這個進程只是父進程的拷貝,這個過程也不能避免。當子進程執(zhí)行exit或exec后,子進程使用wakeup把父進程喚醒,使父進程繼續(xù)往下執(zhí)行。uclinux的這種多進程實現(xiàn)機制同他的內(nèi)存管理緊密相關。uclinux針對沒有mmu處理器開發(fā),所以被迫使用一種flat方式的內(nèi)存管理模式,啟動新的應用程

30、序時系統(tǒng)必須為應用程序分配存儲空間,并立即把應用程序加載到內(nèi)存。缺少了mmu的內(nèi)存映射機制,uclinux必須在可執(zhí)行文件加載階段對可執(zhí)行文件reloc處理,使得程序執(zhí)行時能夠直接使用物理內(nèi)存。第四章 系統(tǒng)硬件平臺magicsopc介紹4.1 sopc簡介用可編程邏輯技術(shù)把整個系統(tǒng)放到一塊硅片上,稱作sopc1(system on a programmable chip,可編程片上系統(tǒng))。sopc是一種特殊的嵌入式系統(tǒng):首先它是片上系統(tǒng)(soc),即由單個芯片完成整個系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件在系統(tǒng)可編程的功能。sopc結(jié)

31、合了soc和pld、fpga各自的優(yōu)點,一般具備以下基本特征:(1) 至少包含一個嵌入式處理器內(nèi)核; (2) 具有小容量片內(nèi)高速ram資源; (3) 豐富的ip core資源可供選擇; (4) 足夠的片上可編程邏輯資源; (5) 處理器調(diào)試接口和fpga編程接口; (6) 可能包含部分可編程模擬電路; (7) 單芯片、低功耗、微封裝。 sopc設計技術(shù)涵蓋了嵌入式系統(tǒng)設計技術(shù)的全部內(nèi)容,除了以處理器和實時多任務操作系統(tǒng)(rtos)為中心的軟件設計技術(shù)、以pcb(printed circuit board,印刷電路板)和信號完整性分析為基礎的高速電路設計技術(shù)以外,sopc還涉及目前以引起普遍關注

32、的軟硬件協(xié)同設計技術(shù)。sopc是pld(programmable logic device,可編程邏輯器件)和asic(application specific integrated circuit,專用集成電路)技術(shù)融合的結(jié)果,目前0.13微米的asic產(chǎn)品制造價格仍然相當昂貴,相反,集成了硬核或軟核cpu、dsp、存儲器、外圍i/o及可編程邏輯的sopc芯片在應用的靈活性和價格上有極大的優(yōu)勢。sopc被稱為“半導體產(chǎn)業(yè)的未來”。4.2 magicsopc開發(fā)板功能簡介magicsopc是基于altera nios ii sopc系列的專業(yè)級創(chuàng)新教學實驗開發(fā)平臺;采用altera公司cycl

33、one ii 系列150 萬門的fpga,先進的系統(tǒng)化、模塊化設計;豐富的人機交互方式,眾多的高性能外設使得magicsopc 實驗開發(fā)平臺具有卓越的性能和無與倫比的靈活性;是sopc、eda、dsp 教學實驗、電子設計創(chuàng)新實驗室、現(xiàn)代嵌入式系統(tǒng)實驗室、科研開發(fā)的上佳選擇。實驗開發(fā)平臺采用核心板加主板的結(jié)構(gòu),提供多種人機交互方式,多種模塊外設,如:矩陣鍵盤、按鍵、拔檔開關、觸摸屏輸入;數(shù)碼管顯示、大屏幕tft 彩色液晶顯示屏;ac97音頻模塊;vga、tv、ps/2、usb、irda、can、i2c、spi、rs232、rs485、modem、ethernet、cf 卡、sd/mmc 卡、id

34、e 接口及高速ad/da 模塊等。開發(fā)工程師可在該實驗平臺上實現(xiàn)eda、sopc、dsp 等各種設計并進行驗證。核心板可靈活地用于二次開發(fā)。與一般的實驗箱相比,magicsopc主板的所有外設都不需要進行跳線設置,做實驗時方便簡單;此外每個外設的信號都設置了測試點,方便用戶使用邏輯分析儀進行信號測量??紤]到核心板對用戶的實用性,核心板除設計最小系統(tǒng)外,還設計有按鍵、led 以及電源插座等,用戶直接或量身定制底板使用,這樣核心板可用于用戶自己的設計中,亦可用于電子設計大賽。magicsopc開發(fā)平臺如圖4.1所示:圖4.1 magicsopc開發(fā)平臺powersopc核心板如圖4.2所示:圖4.

35、2 powersopc核心板4.3magicsopc的硬件資源和核心板性能4.3.1硬件資源magicsopc 主板硬件資源如下表所示:輸入接口8個獨立按鍵常用外設交流蜂鳴器8個撥檔開關直流電機(含測速模塊)一個復位按鍵步進電機4*4矩陣鍵盤交通燈模塊8寸觸摸屏數(shù)據(jù)采集電壓基準2個ps/2鼠標、鍵盤接口包括完整ipcore及其驅(qū)動4通道串行高速d/a1通道串行高速a/d輸出接口8個led發(fā)光管數(shù)字溫度傳感器8位高亮度7段動態(tài)數(shù)碼管實時時鐘pcf8563t2位高亮度7段靜態(tài)數(shù)碼管音頻code模塊(ac97)16*16led點陣pwm-dac接口1個256色vga接口包括完整ipcore及其驅(qū)動高

36、速數(shù)據(jù)采集(pack)10bit 125w da,可升級到2路1路8bit 40m ad一個最高130萬色、1024*768分辨率的vga接口350m 高速運放存儲設備ide接口一個tv接口,支持ntsc、ntsc-ela、pal等tv格式cf卡sd卡lcd(2*16)字符型液晶擴展接口主板上總線pack接口8寸640*480分辨率26萬色tft液晶屏,帶觸摸屏1個帶35個獨立i/o的高速擴展接口通訊接口irda1個帶36個獨立i/o的高速擴展接口canuart電源-12vmoden12viic5vspi3.3vps/2紅外遙控器方便做紅外實驗rs485核心板接口3個120pin高速板對板接口

37、,速度大于1gb/秒10m/100m以太網(wǎng)唯一合法mac地址數(shù)字信號源0.5hz-100mhz多組數(shù)字時鐘1個usb device模擬信號源采用dds芯片,使用單片機控制,產(chǎn)生幅值可調(diào)0hz-10mhz的方波、三角波、正弦波4個usb hostfpga jtag4.3.2 核心板powersopc-2c35性能powersopc-2c35 核心板硬件資源如下:(1) 主芯片 fpga 采用cyclone ii 系列的ep2c35f672 器件(等150萬門);(2) 配置芯片為 epcs16,16mb串行flash(可選配epcs64-64mb);(3) 8mb sram(32位、16位、8位

38、總線模式可選,可升級到16mb);(4) 128mb ddr sdram,速度為167mhz(ddr333);(5) 128mb nor flash;(6) usb2.0 控制器isp1161;(7) 1個usb host 接口;(8) 帶i2c 接口、e2prom(2kb)的復位芯片cat1025si;(9) 3個擴展/原型插座;(10) 獨立的1 個jtag 接口、1 個as 接口;(11) 4個用戶自定義按鍵 、1 個重配置按鍵、1 個復位按鍵;(12) 8個用戶自定義led、1 個配置指示燈;(13) 50mhz系統(tǒng)時鐘;(14) 上電復位電路;(15) 板級及芯片級電壓3.3v/2.

39、5v/1.25v/1.2v;(16) 獨立電源輸入接口。4.4 nios ii軟核處理器簡介 nios ii是一種軟核處理器。所謂軟核,是指未被固化到硅片上,使用時需要借助eda軟件對其進行配置并下載到可編程芯片(比如fpga)中的ip核。軟核最大的特點就是可由用戶按需要進行配置。 nios ii是運行在fpga上的五級流水線、單指令的risc處理器,它專門針對altera的可編程邏輯器件及片上可編程的設計思想做了相應的優(yōu)化。作為一種可配置的精減的risc處理器,它可以與用戶自定義邏輯結(jié)合構(gòu)成sopc系統(tǒng),并下載到altera的可編程器件中。32位的nios ii軟核,結(jié)合外部閃存以及大容量存

40、儲器,可以構(gòu)成一個功能強大的32位嵌入式處理器系統(tǒng)。此外,利用altera提供的ide(integrated development environment)開發(fā)工具可以方便的在調(diào)試模式下調(diào)試處理器,提高開發(fā)的速度。第五章 基于magicsopc的uclinux移植基于magicsopc的uclinux的移植主要分為四個個步驟:建立交叉編譯環(huán)境,內(nèi)核下載,內(nèi)核配置和編譯,內(nèi)核燒寫。5.1建立交叉編譯環(huán)境交叉編譯是嵌入式開發(fā)過程中的一項重要技術(shù),它的主要特征是某機器中執(zhí)行的程序代碼不是在本機器編譯生成,而是由另一臺機器編譯生成,一般把前者成為目標機,后者稱為主機。采用交叉編譯的主要原因在于,多數(shù)

41、嵌入式目標系統(tǒng)不能提供足夠的資源供編譯過程使用,因而只好將編譯工程轉(zhuǎn)移到高性能的主機中進行。 要把uclinux放到nios ii中運行,首先必須把uclinux代碼編譯成nios ii的指令。這個編譯過程需要相應的程序來完成。下載nios2linux 開發(fā)包nios2linux-1.4軟件包,并把該軟件包安裝到quartus ii文件夾下的kit文件夾里。5.2內(nèi)核下載然后把“smallcore_for_uclunx”內(nèi)核模板下載到magicsopc 實驗箱中。最后,進入nios ii ied,選擇“file”“new” “project” “microtronix nios ii”“l(fā)in

42、ux kernel project”點擊,建立新工程,如5.1圖:圖 5.1項目名稱輸入first_uclinux,選擇相關的sopc buider 工程.ptf 文件和cpu,如圖5.2所示:圖 5.25.3 內(nèi)核配置和編譯在編譯之前先進行內(nèi)核配置,有3種方法:make config、make menuconfig、make xconfig,分別是字符界面、字符界面下實現(xiàn)的菜單界面和圖形界面,3種配置方法是一致的。在配置內(nèi)核選項中,指定我們需要的硬件,不需要的盡可能不選,因為flash只有16m,因此構(gòu)造的內(nèi)核應盡可能的小,其大小不能超過8m。以文本菜單方式選擇內(nèi)核選項,不同版本的內(nèi)核,選項

43、可能會有一些差異。這一步是內(nèi)核編譯的關鍵,根據(jù)需要支持的硬件、文件系統(tǒng)和協(xié)議等內(nèi)容,選擇不同的選項。配置選項時,有三種選擇方式,它們代表的含義如下:y將該功能編譯進內(nèi)核n不添加功能m將該功能編譯成模塊,在需要時動態(tài)加載到內(nèi)核選擇的原則是與內(nèi)核關心緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中;將與內(nèi)核系較遠且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊,有利于減小內(nèi)核的長度,減小內(nèi)核消耗的內(nèi)存,簡化該功能相應的環(huán)境改變時對內(nèi)核的影響;不需要的功能就不要選。我們使用空格鍵進行選取。根據(jù)選項的不同,按下空格鍵的結(jié)果也有所不同:選項后有“-”符號的,進入下一級菜單;選項前有中括號的,則在空和*之間切換

44、;選項前有尖括號的,在空、“*”和“m”之間切換;選項前有圓括號的,需要在所提供的幾個選項中選擇一項,或者需要輸入數(shù)值等符號。內(nèi)核配置界面如圖5.3所示:圖 5.3內(nèi)核需要正確配置,如果配置不正確會造成內(nèi)核編譯錯誤。(1) code maturity level options 不選。(2) general setup 選configure standard kernel features for small systems),如圖5.4所示:圖 5.4(3) loadable module support 全不選。(4) processor type and featuresplatform

45、 (microtronix cyclone board support) microtronix cylone board support. 選中,如圖5.5所示:圖 5.5(5) device drivers 中去掉:ata/atapi/mfm/rll support、networking support.character devices中除serial drivers中選nios ii serial support、support for comsole on nios ii uart(new)外,其它的全不選。如圖5.6所示:圖 5.6(6) 剩下的全都保持默認值。配置完成后,開始編譯

46、內(nèi)核,配置完成后,打開navigator 表單,右擊工程項目,選擇build project 編譯內(nèi)核,編譯成功后回到first_uclinux工程目錄的build目錄下生成了vmlinux.bin核心文件。5.4 內(nèi)核燒寫把內(nèi)核文件下載到flash,啟動flash programmer,在flash programmer中首先需要在左邊按new生成一個編程配置。然后在右邊選擇program a file into flash memory。blower 選擇內(nèi)選擇vmlinux.bin,而且寫入offset 必須是0x0(系統(tǒng)啟動地址)。點擊apply,然后program flash 啟動編

47、程寫入,如圖5.7所示:圖 5.7這個過程也許需要幾分鐘時間。文件系統(tǒng)下載到flash和核心文件下載類似,如圖5.8所示:圖 5.8需要注意的地方是offset需要填0x800000。點擊apply,然后program flash。啟動編程寫入,這個過程也需要幾分鐘。上述工作完成后我們打開串口調(diào)試助手,把波特率設為115200,然后關閉并重新打開開發(fā)板電源,uclinux 系統(tǒng)啟動,如5.9圖所示:圖 5.9顯示出“#”后,然入ls bin 回車就會顯示當前bin 目錄下的文件和文件夾。 至此,uclinux已經(jīng)成功地移植到了magicsopc板子上。第六章 全文總結(jié)隨著計算機技術(shù)的發(fā)展和微處理器工藝的改進,價格低廉、功能強大、結(jié)構(gòu)小巧的cpu和外設為嵌入式設備提供了穩(wěn)定可靠的硬件架構(gòu),從而快速地促進了嵌

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論