<del id="dhfrq"></del>

    1. <tr id="dhfrq"></tr>
      成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
      現在位置:范文先生網>理工論文>電子通信論文>NIOS軟核處理器的Linux引導程序U-boot設計

      NIOS軟核處理器的Linux引導程序U-boot設計

      時間:2023-02-21 00:06:57 電子通信論文 我要投稿
      • 相關推薦

      NIOS軟核處理器的Linux引導程序U-boot設計

      摘要:針對將cClinux向Nios處理器移植過程中的啟動加載程序U-bootbootloader進行研究。首先介紹移植的步驟,然后利用bootloader的設計思想,著重討論U-boot在Nios中的設計與實現,最后對U-boot在基于Linux的嵌入式系統中的運用作了探索和展望。
        關鍵詞:U-bootbootloaderuClinuxNios軟核
        
        1概述
        
        1.1Nios簡介
        
        Nios是Altera公司以RISC為基礎的可配置、可裁減軟核處理器。它具有16位指令集和16/32位數據通路,通過將包括16或32位高性能處理器在內的移種應用模塊嵌入到通用FPGA/CPLD內,實現完全可配置的嵌入式系統。其開發套件包括:具有必要外圍內核的Nios處理器、C/C++編譯器、Cygnus的源級調試程序、Quartus編譯軟件、驗證工具和開發板。
        
        Nios軟核處理器主要特性包括:高效靈活的處理器模塊,可以通過軟件配置成16位或32位的中央處理單元(RISC結構),并可選擇不同的內部存儲器大小,其最高執行速度可達50MHz;具有多種其它功能模塊的選擇(SDRAM控制器、UART控制器、PCI接口模塊、LCD接口模塊、MAC接口模塊等多種功能模塊);具有完整、廉價、便捷的開發系統。所有開發(包括設計、調試)均通過軟件進行,不再需要專門的硬件仿真器和編器,大大減少了開發設備的成本。
        
        1.2向Nios移植uClinux需要做的工作和步驟
        
        (1)硬件需求
        
        需要一個Altera公司的開發包,或者是下面三種之一:APEXboard,STRATIXboard,CYCLONEboard。本文選用的是CYCLONAEboard。
        
        (2)軟件需求
        
        下載一個最新版本的uClinux,并搭建一個Nios的GNUC編譯環境,準備好CDK4Nios開發包。CDK4Nios開發包是Nios的交叉開發包。
        
        (3)bootloader
        
        需要編寫或移植一個bootloader到AltaraNiosboard上。本文就是要設計一個用于Nios的U-bootbootloader。利用QUARTUS軟件為開發板定義默認參數,然后在開發板上測試U-boot。
        
        (4)uClinux內核的編譯
        
        將下載好的uClinux源泉代碼解壓到/home目錄下,會產生/home/uClinux-dist目錄,進入該目錄,依次鍵入:
        
        makemenuconfig
        
        makedep
        
        make
        
        在/home/uClinux-dist/image目錄中產生image.rom,image.ram,romfs.img,它們分別是內核的映像及文件系統的映像文件。鍵入makemenuconfig時,會出現開發平臺及內核配置和文件系統應用程序的配置界面,可以根據需要配置。
        
        (5)uClinux的根文件系統及其加載
        
        uClinux系統采用romfs文件系統,這種文件系統相對于一般的ext2文件系統要求更少的空間。romfs文件系統不支持動態擦寫保存,對于需要系統動態保存的數據,采用虛擬ram盤的方法進行處理(ram盤將采用ext2文件系統)。同時,uClinux內核也支持各種文件系統,例如,網絡文件系統,在需要時可以進行mount。
        
        解決了上述問題以后,uClinux便可以成功地移植到Nios上。
        
        1.3U-boot介紹
        
        U-boot是啟動引導程序的一種,是一種通用的Linuxbootloader。在做uClinux移植時,碰到的第一個問題就是移植bootloader或者自己編寫bootloader程序。Linux內核啟動部分的代碼需要判斷從bootloader傳遞過來的寄存器值。U-boot對Linux引導有特別的支持,如:
        
        ①SCC/FEC以太網支持;
        
        ②BOOTP/TFTP引導;
        
        ③IP,MAC預置能力和在線讀寫Flash、DOC、IDE、IIC、EEROM、RTC;
        
        ④支持串行口kernit,S-record下載代
        
        
        
        碼;
        
        ⑤識別二進制、ELF32、pImage格式的Image,對Linux引導有特別的支持;
        
        ⑥單軟件軟件運行環境(hello.c);
        
        ⑦監控(minitor)命令集有讀寫I/O、內存、寄存器、外設測試功能等;
        
        ⑧腳本語言支持(類似BASH腳本);
        
        ⑨支持watchDog,LCDlogo,狀態指示功能等。
        
        本文著重介紹uClinux向Nios軟核處理器移植過程中,U-boot的設計和實現。
        
        2U-boot的設計
        
        2.1bootloader的設計思想
        
        bootloader的設計除了依賴于CPU的體系結構外,它實際上也依賴于具體的嵌入式板級設備的配置。也就是說,對于兩塊不同的嵌入式板而言,即使它們是基于同一種CPU而構建的,要想讓運行在一塊板子上的bootloader程序也能運行在另一塊板子上,通常也都需要修改bootloader的源程序。從本質上講,它不屬于操作內核,它是針對不同的CPU體系結構的,這一部分代碼不具有可移植性。在移植操作系統時,這部分代碼必須加以改寫。
        
        bootloader引導加載程序是系統加電后運行的第一段軟件代碼。通過這段小程序,可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核準備好正確的環境。在嵌入式系統開發中,bootloader還擔任了與主機端通信的任務,它相當于一個“服務器”,不斷監聽從主機端傳來的控制信息和數據信息,完成相應的操作。它擔負著初始化硬件和引導操作系統的雙重責任,也是在特定硬件平臺上操作系統移植至關重要的一點。
        
        2.2Nios內核的U-boot設計方案
        
        在主機上建立開發環境的具體步驟:
        
        ①建立Nios平臺內核的頭文件和連接;
        
        ②建立實用程序集合;
        
        ③建立Nios平臺C編譯器;
        
        ④建立Nios平臺的glibc庫;
        
        ⑤建立Nios平臺C++編譯器;
        
        ⑥建立應用程序的開發和測試。
        
        所建立的開發環境結構圖如圖1所示。
        
        搭建完開發環境后,使用開發主機的并口為Nios開發板寫入引導程序作為系統啟動和管理Flash的bootloader,也就是U-boot。該工具能為Nios平臺提供引導功能,并且能夠支持網絡通信,調試和簡單的Flash文件系統,也是CPU開機后執行的第一個程序,它的任務是將操作系統內核(壓縮的或非壓縮的)裝載到內核要求的地址中,然后讓出控制權。
        
        Nios處理器允許操作系統改變內核時鐘,以方便內存對于時間的處理,所以U-boot的第一個任務就是配置處理器的時鐘,并進行內存存取設置。一旦內存可以使用,就開始初始化相應的堆棧。內存初始化完成后,U-boot能使處理器上的串口中斷處理,以允許開發板通過串口與開發環境通信。此后,U-boot還必須完成三個基本工作:
        
        *禁用MMU(MemoryManagementUnit);
        
        *寄存器(CPU寄存器)r0置零;
        
        *寄存器R1置相應的Nios體系結構代碼。
        
        完成這些后,U-boot的工作就完成了,可以通過用戶命令或者系統自動執行下一步,U-boot將跳至內存中內核代碼開始處,開始啟動內核。流程圖如圖2所示。
        
        3Nios內核的U-boot實現
        
        為了達到將U-boot移植到Nios平臺上的目的,我們進行以下操作。
        
        ①在makefile文件和makeallscript里增加一項設置選擇,仿照已經存在的那些例子。
        
        ②建立一個存放開發板代碼的目錄,增加所需要的文件。在這個目錄里,至少有“makefile”,“nios.c“,"flash.c""u-boot.lds"。
        
        ③為開發板建立一個新的設置文件:include/configs/nios.h。
        
        ④如果移植U-boot到一個新的CPU,還需要建立一個放置CPU代碼的目錄。
        
        ⑤運行makenios_config。
        
        ⑥運行m
        
        
        
        ake,獲得一個U-boot.srec的文件并安裝到目標系統。
        
        ⑦調試并解決可能產生的問題。
        
        當然,在修改U-boot代碼時,要特別注意和開發板及CPU相關的部分,要設置成專門的Nios配置。
        
        CONFIG_Nios——定義了所有Nios32的板子。
        
        CFG_Nios_CONSOLE—consoleUART的基地址。
        
        CFG_GBL_DATA_OFFSET—在Nios移植中所用到全局變量的偏移量,簡單來講是全局數據的地址。
        
        CFG_Nios_TMRBASE—計時器的基地址。
        
        CFG_Nios_TMRIRQ——分配給計時器的中斷請求。
        
        下面介紹如何用GERMS執行U-boot。
        
        在沒有將U-boot編入Flash之前,鍵入nios-run命令來運行U-bootmonitor,步驟如下:
        
        *打開一個Niossdkshell。
        
        *把目錄轉換到含有U-boot.src文件的目錄。
        
        *執行下列命令:
        
        $nios-run-ru-boot.srec
        
        這時我們可以看到:
        
        u-boot1.0.0pre(Jan2004-07:36:40)
        
        cpunios-32Rec3.18(03018)
        
        RegfileSize:256
        
        LO_LIMIT/HI_LINIT:2/14
        
        Board:AlteraNios1C20DevelopemtKit
        
        In:Serial
        
        Out:Serial
        
        Err:Serial
        
        ==>
        
        *在下載完之后,GERMSmonitor將自動啟動U-boot。可以看到U-boot命令符號“==>”,看到后,退出nios-run。
        
        *啟動終端,應該被設置在115200,N,8,1處運行。
        
        *開始用U-boot了,試著從U-boot符號那里執行help命令:
        
        ==>help
        
        將U-boot放到Flash存儲器里,在U-boot的提示符下,進行擦除Flash的一個區。
        
        ==>erase400004ffff
        
        把U-boot代碼裝載到RAM:把一個二進制映像裝載到RAM。
        
        ==>loadb800000
        
        把這個二進制映像從RAM拷貝到Flash。
        
        ==>cp.b800004000010000
        
        這樣,當通過標準的32位設置后,開發板重置,U-boot自動啟動。若用安全模式下啟動U-boot,輸入下列的GERMS命令:+g40000。
        
        結語
        
        U-bootbootloader是操作系統和硬件的樞紐,相對于操作系統內核來說,它是一個硬件抽象層。它負責初始化硬件,引導操作系統內核,檢測各種參數給操作系統內核使用。一個功能完備的大型bootloader的工作量,相當于一個小型的操作系統。嵌入式領域中,操作系統移植的關鍵在于:bootloader的移植和操作系統內核硬件相關部分移植。設計和實現一個好的U-boot將大大提高操作系統移植的穩定性,并大大加快操作系統移植的周期。
        
        
        
        
        
        

      【NIOS軟核處理器的Linux引導程序U-boot設計】相關文章:

      基于Nios軟核的嵌入式Internet系統設計08-06

      基于MicroBlaze軟核的FPGA片上系統設計08-06

      基于ARM7核處理器VxWorks系統BSP設計08-06

      嵌入式Linux系統CGI程序設計技術08-06

      基于Nios平臺的光信號采集片上系統設計08-06

      采用Nios定制指令的嵌入式系統優化設計08-06

      《核舟記》.設計.08-16

      《核舟記》 設計08-16

      32位ARM核微處理器芯片PUC2030A及其應用08-06

      主站蜘蛛池模板: 亚洲国产综合性亚洲综合性| 在线a级毛片无码免费真人| 国产成人8X人网站视频| 中文国产不卡一区二区| 亚洲国产精品毛片在线看| 国产首页一区二区不卡| 在线免费观看毛片av| 蜜臀av一区二区国产精品| 亚洲国产良家在线观看| 亚洲av永久无码天堂影院| 在线观看精品日本一区二| 2020国产激情视频在线观看| 成人自拍小视频免费观看| 日本不卡不二三区在线看| 久久精品亚洲日本波多野结衣| 国产91麻豆精品成人区| 精品国产高清中文字幕| 日本三级香港三级三级人妇久| 亚洲中文字幕一二三四区| 亚洲AV熟妇在线观看| 悠悠色成人综合在线观看| 116美女极品a级毛片 | 国内少妇偷人精品免费| 久久精品国产亚洲av忘忧草18| 国产精品一区二区性色av| 人妻日韩精品中文字幕| 97久久精品人人澡人人爽| 一本av高清一区二区三区| 国产精品亚洲二区在线播放| 日韩视频一区二区三区视频| 国产精品久久中文字幕| 国产喷水1区2区3区咪咪爱AV| 国产精品第一区亚洲精品| 亚洲男人的天堂在线观看| 亚洲综合一区二区三区在线| 亚洲色大成网站WWW尤物| 人人妻人人澡人人爽人人精品av | 亚洲欧美卡通另类丝袜美腿| 国产精品线在线精品| 美女黄18以下禁止观看| 蜜臀av黑人亚洲精品|