freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于嵌入式armlinux的電子相冊設(shè)計學(xué)士學(xué)位畢業(yè)設(shè)計論文-資料下載頁

2025-06-27 20:13本頁面
  

【正文】 ,除了體系結(jié)構(gòu), BootLoader還依賴于具體的嵌入式板級大學(xué)畢業(yè)設(shè)計(論文)—16—設(shè)備的配置。也就是說,對于兩塊不同的嵌入式板而言,即使它們基于相同的CPU構(gòu)建,運行在其中一塊電路板上的BootLoader未必能夠運行在另一塊電路開發(fā)板上,要使之后的軟件系統(tǒng)能正常地運行起來,就必須確保BootLoader能正確地從ROM中被讀取運行,并且具備引導(dǎo)操作系統(tǒng)的能力,所以要對BootLoader進(jìn)行正確移植和修改。由上所述可知,BootLoader 是嵌入式系統(tǒng)中重要的一部分,目前流行的BootLoader主要有:(1)UBOOT。UBOOT是德國DENX 小組開發(fā)的用于多種嵌入式CPU的BootLoader程序,它可以運行在基于 PowerPC、ARM、MIPS等多種嵌入式開發(fā)板上。從://。//下載UBOOT 的源代碼。(2)VIVI 。 VIVI是由韓國 MIZI公司開發(fā)的專門用于ARM產(chǎn)品線的一種BootLoader。因為VIVI目前只支持使用串口和主機通信,所以必須使用一條串口電纜來連接目標(biāo)板和主機。VIVI的源代碼下載地址為。//。(3)Blob 。Blob 是Boot Loader Object的縮寫,是一款功能強大的BootLoader。其源碼在。//。Blob最初是由JanDerk Bakker和Erik Mouw兩人為一塊名為 LART(Linux Advanced Radio Terminal)的開發(fā)板所寫,該板使用的處理器是StrongARM SA1100,現(xiàn)在Blob已經(jīng)被成功地移植到許多基于ARM的CPU 上。(4)RedBoot。RedBoot是一個專門為嵌入式系統(tǒng)定制的引導(dǎo)啟動工具,最初由Redhat開發(fā),它是基于eCos(Embedded Configurable Operating System)的硬件抽象層,同時它繼承了eCos的高可靠性、簡潔性、可配置性和可移植性等特點。RedBoot集BootLoader、調(diào)試、 Flash燒寫于一體,支持串口、網(wǎng)絡(luò)下載,執(zhí)行嵌入式應(yīng)用程序。既可以用在產(chǎn)品的開發(fā)階段(調(diào)試功能),也可以用在最終的產(chǎn)品上(Flash 更新、網(wǎng)絡(luò)啟動)。RedBoot支持下載和調(diào)試應(yīng)用程序,開發(fā)板可以通過BOOTP/DHCP協(xié)議動態(tài)配置 IP地址,支持跨網(wǎng)段訪問。用戶可以通過tftp協(xié)議下載應(yīng)用程序和image,或者通過串口用xmodem/ymodem下載,在嵌入式系統(tǒng)應(yīng)用中非常廣泛。(5)ARMboot 。ARMboot是一個以ARM或StrongARM為內(nèi)核CPU的嵌入式系統(tǒng)的BootLoader固件程序,該軟件的主要目標(biāo)是使新的平臺更容易被移植并且盡可能地發(fā)揮其強大性能。它只基于ARM固件,但是它支持多種類型的啟動,比如Flash ,網(wǎng)絡(luò)下載通過bootp、dhcp、tftp等。它也是開源項目,可以從。//料,它在ARM 處理器方面應(yīng)用非常廣泛。大學(xué)畢業(yè)設(shè)計(論文)—17—(6)DIY。DIY(Do It Youself),即自己制作。以上UBOOT、VIVI、Blob 、RedBoot和ARMboot等成熟工具移植起來簡單快捷,但它們都存在著一定的局限性。首先,它們是面向大部分硬件的工具,在功能上要滿足大部分硬件的需求。一般情況下,我們只需要與特定的開發(fā)板相關(guān)的實現(xiàn)代碼,其他型號開發(fā)板的實現(xiàn)代碼對它來說是沒有用的,所以通常它們的代碼量較大。其次,它們在使用上不夠靈活。比如,在這些工具上添加自己的特有功能相對比較困難,必須熟悉該代碼的組織關(guān)系,以及了解它的配置編譯等文件。用DIY的方式自己編寫針對目標(biāo)板的BootLoader 不但代碼量短小,同時靈活性很大,最重要的是將來容易維護。因此,在實際嵌入式產(chǎn)品開發(fā)時大都選擇DIY的方式編寫B(tài)ootLoader。 UBOOT 的簡介UBOOT的全稱為Universal Boot Loader,是遵循 GPL(GNU General Public License)協(xié)議的開放源碼項目。該條款規(guī)定開發(fā)者必須開放源代碼,確保用戶可以自由地共享和修改軟件,目的是促進(jìn)軟件知識的自由傳播。不少UBOOT源代碼就是相應(yīng)的Linux內(nèi)核源程序的簡化,尤其是一些設(shè)備的驅(qū)動程序。UBOOT不僅支持嵌入式Linux系統(tǒng)的引導(dǎo),還支持NetBSD,VxWorks,QNX,RTEMS,ARTOS,LynxOS等操作系統(tǒng),所以本設(shè)計打算選用此Boot Loader。UBOOT源代碼是由多個目錄組成的GNU項目,在不同的目錄中按功能分類存放了C 語言的代碼文件,其主要目錄結(jié)構(gòu)如下:Board:UBOOT所支持目標(biāo)開發(fā)板相關(guān)文件。主要包含SDRAM 和Flash的驅(qū)動程序;Common與處理器體系結(jié)構(gòu)無關(guān)的通用代碼,如內(nèi)存大小探測與故障檢測, ;Cpu:與處理器相關(guān)的文件,如ARM920t子目錄下含 S3C2410的串口、IIC接口和中斷初始化等文件。 就包含在此目錄;Drivers:各種外設(shè)驅(qū)動程序;Doc:UBOOT的說明文檔;Include:頭文件目錄;Lib_XXX:處理器體系相關(guān)的文件,如lib_ppc,lib_arm目錄分別包含與PowerPC、體系結(jié)構(gòu)相關(guān)的文件;Net:與網(wǎng)絡(luò)功能相關(guān)的文件目錄,如bootp,nfs,tftp等網(wǎng)絡(luò)協(xié)議。UBOOT支持多種CPU 體系結(jié)構(gòu),但對于不同的CPU來說,整個啟動流程是大學(xué)畢業(yè)設(shè)計(論文)—18—類似的。下面介紹以ARM920T為架構(gòu)的CPU 啟動過程。UBOOT的啟動可以分為兩個階段:第一階段用匯編語言實現(xiàn),負(fù)責(zé)初始化低層次的硬件,如CPU底層的寄存器和RAM等;第二階段用C語言實現(xiàn),負(fù)責(zé)初始化較高級的外圍硬件接口,如串口、USB、網(wǎng)卡等,另外,通過C語言可實現(xiàn)更高級的應(yīng)用,如命令行調(diào)試、網(wǎng)絡(luò)傳輸?shù)?。UBOOT整個程序的入口點位于cpu/ARM920T/,它用ARM匯編語言編寫,它是ARM 上電啟動后執(zhí)行的第一段代碼,實現(xiàn)UBOOT的第一階段啟動。: BootLoader啟動步驟 UBOOT 的移植和修改步驟 UBOOT 由 Nand Flash 啟動概述UBOOT支持從NOR Flash啟動,本設(shè)計用的是Nand Flash因為Nand Flash的價格相對便宜。為了解決Nand Flash不能直接本地讀取數(shù)據(jù)的問題,本系統(tǒng)需要對UBOOT進(jìn)行修改,使得啟動代碼能被存儲在Nand Flash 中也能正常運行。S3C2410本身也針對從Nand Flash啟動的方案采取了相應(yīng)的措施。它在Nand Flash控制器端采用了4KB的內(nèi)部緩沖區(qū),CPU 上電后會把Nand Flash的前4KB代碼自動轉(zhuǎn)移到內(nèi)部緩沖中執(zhí)行。通過OM【1:0】信號跳線可以選擇是否啟用該啟動定義程序入口設(shè)置異常向量初始化 CPU 底層部件搬移 ROM 的程序到 RAM程序轉(zhuǎn)移到 RAM 上執(zhí)行大學(xué)畢業(yè)設(shè)計(論文)—19—方式:OM【1:0】=00時處理器從Nand Flash啟動;OM【1:0】=01時處理器從16位寬的rom啟動;OM【1:0】=10時處理器從32位寬的rom啟動;OM【1:0】=11時測試模式的rom啟動;當(dāng)使用Nand Flash啟動時,4KB的內(nèi)部緩沖區(qū)會被映射到0x0地址,此地址存放了CPU 上電后的第一條指令。,要跳過之前介紹的“搬移ROM中的程序到RAM”那一步,然后插入自己修改的NAND啟動代碼。本設(shè)計中,UBOOT調(diào)試用到的硬件和功能主要有一個串口,DM9000E 網(wǎng)卡支持tftp 下載,工作頻率為200M的S3C2410處理器,JTAG口燒寫UBOOT映像文件,1片4M*16位數(shù)據(jù)寬度的Nand Flash地址范圍為0x01000000~0x01800000和1片32MB16位SDRAM 位數(shù)據(jù)寬度的SDRAM地址范圍為0x30000000~0x32022000。 Flash使用了2410處理器的BANK0單元。 UBOOT 基本配置移植步驟本設(shè)計采用UBOOT ,UBOOT已經(jīng)支持的開發(fā)板中選擇一種和目標(biāo)板接近的并在其基礎(chǔ)上進(jìn)行修改,代碼修改的步驟如下:(1) 在UBOOT Makefile中加入my2410_config:unconfig,其中的參數(shù)意思arm:CPU的架構(gòu)。ARM920t:CPU 的類型;(2) 建立自己開發(fā)板所需目錄、文件配置文件。1. 建立board/my2410目錄,拷貝 board/smdk2410下的文件到board/my2410目錄,2. 修改my2410目錄下的Makefile文件,將OBJS= 修改為OBJS= include/configs/ include/configs/(3)排除編譯器問趔。修改cpu/ARM920t/PLATFORM_CPPFLAGS+=$(call ccoption,mapcs32,mabi=apcsgnu)改為: cpu/ARM920t/ PLATFORM_CPPFLAGS+=$(call ccoption,mapcs32,$(call ccoption,mabi=apcsgnu))(4)修改include/configs/define CFG_PROMPT “my2410” /*我自己UBOOT的調(diào)試平臺名字*/define CONFIG_BOOTDELAY /*自動啟動時間為3秒*/define CONFIG_BOOTARGS “noinitrd root=/dev/mtdblock/3 init=linuxrc 大學(xué)畢業(yè)設(shè)計(論文)—20—console=ttyS0” /*Nand Flash 第三分區(qū),串口0,Linux ,也可以不設(shè),在移植后用Nand Flash的命令再設(shè)置*/ UBOOT 對 Nand Flash 命令的支持由于UBOOT調(diào)試要用到一些Nand Flash命令,如對設(shè)置一些參數(shù)保存要用到nand write對參數(shù)的保存到Nand Flash中要用nand save命令等,所以要在UBOOT中加入一些命令。步驟如下:(1)在include/configs/ 文件將CFG_CMD_NAND宏打開。(2) 在 include/linux/mtd/。(3)加入對Samsung K9F1208U0B Nand Flash的基本宏定義。(4)在lib_arm/ Flash初始化函數(shù) extern ulong nand_probe(ulong physadr)。 啟動代碼的移植S3C2410被配置成從NAND 閃存啟動,上電后,S3C2410的NAND閃存控制器會自動把NAND閃存中的前4K數(shù)據(jù)搬移到內(nèi)部RAM 中,并把0X00000000設(shè)置為內(nèi)部RAM的起始地址,CPU從內(nèi)部 RAM的0X00000000位置開始啟動。因此要把最核心的啟動程序放在NAND閃存的前4K中。由于NAND 閃存控制器從NAND閃存中搬移到內(nèi)部RAM 的代碼是有限的,所以,在啟動代碼的前4K 里,必須完成S3C2410 的核心配置,并把啟動代碼的剩余部分搬到RAM中運行。在UBOOT中,前4K 完成的主要工作就是U0BOOT啟動的第一個階段(stage1)。根據(jù)UBOOT的執(zhí)行流程圖,可知要實現(xiàn)從NAND閃存中啟動UBOOT首先需要初始化NAND閃存,并從NAND閃存中把UBOOT搬移到RAM中,最后需要讓UBOOT支持,NAND閃存的命令操作。 Nand Flash 環(huán)境參數(shù)的設(shè)置UBOOT默認(rèn)從NOR FLASH啟動,此時環(huán)境參數(shù)可以存放在NOR FLASH 中,也可以存放在NAND FLASH中。在NOR FLASH中時,參數(shù)的存儲位置由CFG_ENV_ADDR決定。此外必須有CFG_ENV_IS_IN_FLASH 、CFG_ENV_SIZE這兩個宏定義。如果UBOOT從NAND FLASH啟動,由于從NAND FLASH啟動時S3C2410內(nèi)部的4K SRAM被影射到Ngcso,故此時NOR FLASH是無效,也不能對NOR FLASH進(jìn)行操作。因此環(huán)境變量是不能存儲在NOR FLASH上,此時只能將環(huán)境變量存儲到NAND FLASH中。/*define CFG_ENV_IS_IN_FLASH 1 */ /*注釋掉此行,添加下面三行*/define CFG_ENV_IS_IN_NAND 1define CFG_ENV_OFFSET 0xf0000大學(xué)畢業(yè)設(shè)計(論文)—21—define CFG_ENV_SIZE 0x10000由于uBOOT默認(rèn)條件下是不傳遞環(huán)境參數(shù)到LINUX內(nèi)核的TAG 區(qū)(默認(rèn)從0X30000100開始),為了能夠用UBOOT引導(dǎo)LINUX 內(nèi)核,必須定義以下配置,把信息傳入LINUX核心。define CONFIG_SETUP_MEMORY_TAGSdefine CONFIG_INITRD_TAGdefine CONFIG_CMDLINE_TAG Linux 內(nèi)核移植? 結(jié)合系統(tǒng)的硬件要求,需要對內(nèi)核的適當(dāng)配置,主要的修改包括了根目錄和arch/arm/boot等目錄下的Makefile分別針對Nand Flash、LCD驅(qū)動、USB主機驅(qū)動、啟動掛載devfs支持文件系統(tǒng)、Cramfs ,Yaffs 文件系統(tǒng)的支持以及聲音系統(tǒng)的支持進(jìn)行源代碼的修改。對內(nèi)核進(jìn)行配置就是對其硬件進(jìn)行裁剪,通過導(dǎo)入與S3C2410接近SMDK2410的默認(rèn)配置可以
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1