国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

NIOS軟核處理器的Linux引導(dǎo)程序U-boot設(shè)計

時間:2024-05-19 04:19:34 理工畢業(yè)論文 我要投稿
  • 相關(guān)推薦

NIOS軟核處理器的Linux引導(dǎo)程序U-boot設(shè)計

摘要:針對將cClinux向Nios處理器移植過程中的啟動加載程序U-boot bootloader進(jìn)行研究。首先介紹移植的步驟,然后利用bootloader的設(shè)計思想,著重討論U-boot在Nios中的設(shè)計與實(shí)現(xiàn),最后對U-boot在基于Linux的嵌入式系統(tǒng) 中的運(yùn)用作了探索和展望。

1 概述

1.1 Nios簡介

Nios是Altera公司以RISC為基礎(chǔ)的可配置、可裁減軟核處理器。它具有16位指令集和16/32位數(shù)據(jù)通路,通過將包括16或32位高性能處理器在內(nèi)的移種應(yīng)用模塊嵌入到通用FPGA/CPLD內(nèi),實(shí)現(xiàn)完全可配置的嵌入式系統(tǒng)。其開發(fā)套件包括:具有必要外圍內(nèi)核的Nios處理器、C/C 編譯器、Cygnus的源級調(diào)試程序、Quartus編譯軟件、驗(yàn)證工具和開發(fā)板。

Nios軟核處理器主要特性包括:高效靈活的處理器模塊,可以通過軟件配置成16位或32位的中央處理單元(RISC結(jié)構(gòu)),并可選擇不同的內(nèi)部存儲器大小,其最高執(zhí)行速度可達(dá)50MHz;具有多種其它功能模塊的選擇(SDRAM控制器、UART控制器、PCI接口模塊、LCD接口模塊、MAC接口模塊等多種功能模塊);具有完整、廉價、便捷的開發(fā)系統(tǒng)。所有開發(fā)(包括設(shè)計、調(diào)試)均通過軟件進(jìn)行,不再需要專門的硬件仿真器和編器,大大減少了開發(fā)設(shè)備的成本。

1.2 向Nios移植uClinux需要做的工作和步驟

(1)硬件需求

需要一個Altera公司的開發(fā)包,或者是下面三種之一:APEX board,STRATIX board,CYCLONE board。本文選用的是CYCLONAE board。

(2)軟件需求

下載一個最新版本的uClinux,并搭建一個Nios的GNU C編譯環(huán)境,準(zhǔn)備好CDK4Nios開發(fā)包。CDK4Nios開發(fā)包是Nios的交叉開發(fā)包。

(3)bootloader

需要編寫或移植一個bootloader到Altara Nios board上。本文就是要設(shè)計一個用于Nios的U-boot bootloader。利用QUARTUS軟件為開發(fā)板定義默認(rèn)參數(shù),然后在開發(fā)板上測試U-boot。

(4)uClinux內(nèi)核的編譯

將下載好的uClinux源泉代碼解壓到/home目錄下,會產(chǎn)生/home/uClinux-dist目錄,進(jìn)入該目錄,依次鍵入:

make menuconfig

make dep

make

在/home/uClinux-dist/image目錄中產(chǎn)生image.rom,image.ram,romfs.img,它們分別是內(nèi)核的映像及文件系統(tǒng)的映像文件。鍵入make menuconfig時,會出現(xiàn)開發(fā)平臺及內(nèi)核配置和文件系統(tǒng)應(yīng)用程序的配置界面,可以根據(jù)需要配置。

(5)uClinux的根文件系統(tǒng)及其加載

uClinux系統(tǒng)采用romfs文件系統(tǒng),這種文件系統(tǒng)相對于一般的ext2文件系統(tǒng)要求更少的空間。romfs文件系統(tǒng)不支持動態(tài)擦寫保存,對于需要系統(tǒng)動態(tài)保存的數(shù)據(jù),采用虛擬ram盤的方法進(jìn)行處理(ram盤將采用ext2文件系統(tǒng))。同時,uClinux內(nèi)核也支持各種文件系統(tǒng),例如,網(wǎng)絡(luò)文件系統(tǒng),在需要時可以進(jìn)行mount。

解決了上述問題以后,uClinux便可以成功地移植到Nios上。

1.3 U-boot介紹

U-boot是啟動引導(dǎo)程序的一種,是一種通用的Linux bootloader。在做uClinux移植時,碰到的第一個問題就是移植bootloader或者自己編寫bootloader程序。Linux內(nèi)核啟動部分的代碼需要判斷從bootloader傳遞過來的寄存器值。U-boot對Linux引導(dǎo)有特別的支持,如:

①SCC/FEC以太網(wǎng)支持;

②BOOTP/TFTP引導(dǎo);

③IP,MAC預(yù)置能力和在線讀寫Flash、DOC、IDE、IIC、EEROM、RTC;

④支持串行口kernit,S-record下載代碼;

⑤識別二進(jìn)制、ELF32、pImage格式的Image,對Linux引導(dǎo)有特別的支持;

⑥單軟件軟件運(yùn)行環(huán)境(hello.c);

⑦監(jiān)控(minitor)命令集有讀寫I/O、內(nèi)存、寄存器、外設(shè)測試功能等;

⑧腳本語言支持(類似BASH腳本);

⑨支持watchDog,LCDlogo,狀態(tài)指示功能等。

本文著重介紹uClinux向Nios軟核處理器移植過程中,U-boot的設(shè)計和實(shí)現(xiàn)。

2 U-boot的設(shè)計

2.1 bootloader的設(shè)計思想

bootloader的設(shè)計除了依賴于CPU的體系結(jié)構(gòu)外,它實(shí)際上也依賴于具體的嵌入式板級設(shè)備的配置。也就是說,對于兩塊不同的嵌入式板而言,即使它們是基于同一種CPU而構(gòu)建的,要想讓運(yùn)行在一塊板子上的bootloader程序也能運(yùn)行在另一塊板子上,通常也都需要修改bootloader的源程序。從本質(zhì)上講,它不屬于操作內(nèi)核,它是針對不同的CPU體系結(jié)構(gòu)的,這一部分代碼不具有可移植性。在移植操作系統(tǒng)時,這部分代碼必須加以改寫。

bootloader引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段軟件代碼。通過這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以

【NIOS軟核處理器的Linux引導(dǎo)程序U-boot設(shè)計】相關(guān)文章:

基于Nios軟核的嵌入式Internet系統(tǒng)設(shè)計03-20

基于ARM7核處理器VxWorks系統(tǒng)BSP設(shè)計03-19

嵌入式Linux系統(tǒng)CGI程序設(shè)計技術(shù)03-18

嵌入式Linux下CAN總線驅(qū)動程序設(shè)計03-07

基于嵌入式Linux的MPC8271 ATM驅(qū)動程序設(shè)計03-30

采用Nios定制指令的嵌入式系統(tǒng)優(yōu)化設(shè)計03-19

基于ARM9微處理器與Linux操作系統(tǒng)的SD驅(qū)動開發(fā)03-07

ARM922T核ZCP320A處理器PCI總線操作12-07

軟巖回采巷道支護(hù)設(shè)計03-19