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

正文內(nèi)容

嵌入式web服務(wù)器boa的移植及其應(yīng)用畢業(yè)論文-資料下載頁

2025-08-19 15:53本頁面

【導(dǎo)讀】而隨著網(wǎng)絡(luò)技術(shù)日新月異的發(fā)展,各種網(wǎng)絡(luò)器件成為嵌入式系統(tǒng)新的應(yīng)用。處理器產(chǎn)生后,價格低廉、結(jié)構(gòu)小巧的CPU和外設(shè)連接提供了穩(wěn)定可靠的硬件架構(gòu)。高性能的嵌入式系統(tǒng)應(yīng)用領(lǐng)域的領(lǐng)先地位。內(nèi)置網(wǎng)絡(luò)支持和高度模塊化等優(yōu)點,非常適合做嵌入式開發(fā)的操作系統(tǒng)。本論文主要研究了基于ARM的嵌入式Linux開發(fā)。及取得的研究成果。據(jù)我所知,除文中已經(jīng)注明引用的內(nèi)容外,本論文(設(shè)。計)不包含其他個人已經(jīng)發(fā)表或撰寫過的研究成果。研究做出重要貢獻的個人和集體,均已在文中作了明確說明并表示謝意。有權(quán)將論文(設(shè)計)用于非贏利目的的少量復(fù)制并允許論。文(設(shè)計)進入學(xué)校圖書館被查閱。保密的論文(設(shè)計)在解密后適用本規(guī)定。論文正文字?jǐn)?shù)不少于萬字。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準(zhǔn)用徒手畫

  

【正文】 $ make $make install 6)制作交叉調(diào)試器 $ tar –zxvf $ cd $ mkdir buildarmlinux $ cd buildarmlinux 24 $ ../configure target=armlinux prefix=/usr/local/arm/ $ make $ make install 7)編譯 gdbserver $ cd $ cd gdb/gdbserver $ chmod u+x configure $ CC=armlinuxgcc ./configure host=armlinux $ make (備注 : target 指定交叉工具的目標(biāo)板體系 結(jié)構(gòu)是 armlinux prefix 指定安裝路徑為 /usr/local/arm/ withheaders 指定內(nèi)核頭文件所在路徑為 /usr/local/arm disablethreads 選項指定不使用線程 ,也不使用線程庫 , enablelanguages 指定僅支持的語言 . enableaddons=linuxthread 選項支持線程庫 . enableshared 選項支持共享庫 . ) 4 U- boot 在 GEC2410 上的移植 BootLoader 的介紹 [6] 引導(dǎo)加載程序 BootLoader 是系統(tǒng)加電后運行的第一段代碼。我們熟悉的 PC 中的引導(dǎo)程序一般由 BIOS 和位于硬盤 MBR 中的 OS bootloader(例如 LILO 或者 GRUB)一嵌入式 Web 服務(wù)器 Boa 的移植及其應(yīng)用 25 起組成。然而在嵌入式系統(tǒng)中通常沒有像 BIOS 那樣的固件程序(有的嵌入式 CPU 有),因此整個系統(tǒng)的加載啟動任務(wù)就完全由 bootloader 來完成。比如在一個基于 ARM920T core 的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時都從地址 0x00000000 開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的 BootLoader 程序。簡單地說, BootLoader 就是在操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟 硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核或用戶應(yīng)用程序準(zhǔn)備好正確的環(huán)境。 bootloader 是依賴于硬件而實現(xiàn)的,特別是在嵌入式系統(tǒng)中。不同的體系結(jié)構(gòu)需求的 bootloader 是不同的;除了體系結(jié)構(gòu), bootloader 還依賴于具體的嵌入式板級設(shè)備的配置。也就是說,對于兩塊不同的嵌入式板而言,即使它們基于相同的 CPU 構(gòu)建,運行在其中一塊電路板上的 bootloader,未必能夠運行在另一塊電路開發(fā)板上。 BootLoader 啟動模式介紹 [7][6][10] 大多數(shù) Boot Loader 都包含兩種不同的操作模式: 啟動加載 模式和 下載 模式,這種區(qū)別僅對于開發(fā)人員才有意義。但從最終用戶的角度看, Boot Loader 的作用就是用來加載操作系統(tǒng) ,而并不存在所謂的啟動加載模式與下載工作模式的區(qū)別。 啟動加載( Boot loading)模式:這種模式也稱為 自主 ( Autonomous)模式。也即 BootLoader 從目標(biāo)機上的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到 RAM 中運行,整個過程并沒有用戶的介入。這種模式是 BootLoader 的正常工作模式,因此在嵌入式產(chǎn)品發(fā)布的時侯, BootLoader 顯然必須工作在這種模式下。下圖為 bootloader 在分區(qū)表中的位置 . 下載( Downloading)模式:在這種模式下,目標(biāo)機上的 Boot Loader 將通過串口連接 或網(wǎng)絡(luò)連接等通信手段從主機( Host)下載文件,比如:下載內(nèi)核映像和根文件系統(tǒng)映像等。 26 從主機下載的文件通常首先被 Boot Loader 保存到目標(biāo)機的 RAM 中,然后再被BootLoader 寫到目標(biāo)機上的 FLASH 類固態(tài)存儲設(shè)備中。 BootLoader 的這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時被使用;此外,以后的系統(tǒng)更新也會使用 Boot Loader 的這種 工作模式。工作于這種模式下的 Boot Loader 通常都會向它的終端用戶提供一個簡單的命 令行 接口。 uboot 介紹 [6] Uboot 是德國 DENX 小組的開發(fā)用于多種嵌入式 CPU 的 bootloader 程序 , UBoot 不僅僅支持嵌入式 Linux 系統(tǒng)的引導(dǎo),當(dāng)前,它還支持 NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS 嵌入式操作系統(tǒng)。 UBoot 除了支持 PowerPC 系列的處理器外,還能支持MIPS、 x8 ARM、 NIOS、 XScale 等諸多常用系列的處理器。 uboot 的源代碼的下載地址是: uboot 的源代碼是通過 GCC 和 Makefile 組織編譯的,頂層目錄下的 Makefile 首先可以設(shè)置開發(fā)板的定義,然后遞歸調(diào)用子目錄下的 Makefile,最后把編譯過的目標(biāo)文件鏈接成 uboot 映象。 uboot 目錄結(jié)構(gòu) Board :和一些已有開發(fā)板有關(guān)的文件 . 每一個開發(fā)板都以一個子目錄出現(xiàn)在當(dāng)前目錄中 ,比如說 :SMDK2410,子目錄中存放與開發(fā)板相關(guān)的配置文件 . Common:實現(xiàn) uboot 命令行下支持的命令,每一條命令都對應(yīng)一個文件。例如 go 命令 對應(yīng)就是 Cpu :與特定 CPU 架構(gòu)相關(guān)目錄,每一款 uboot 下支持的 CPU 在該目錄下對應(yīng)一個子目錄,比如有子目錄 arm920t 等 Disk :對磁盤的支持 Doc :文檔目錄。 uboot 有非常完善的文檔,推薦大家參考閱讀 . drivers:uboot 支持的設(shè)備驅(qū)動程序都放在該目錄,比如各種網(wǎng)卡、支持 CFI 的 Flash 串口和 USB 等 Fs :支持的文件系統(tǒng), uboot 現(xiàn)在支持 cramfs、 fat、 fdos、 jffs2 和 registerfs 嵌入式 Web 服務(wù)器 Boa 的移植及其應(yīng)用 27 Include:uboot 使用的頭文件,還有對各種硬件平臺支持的匯編文件,系統(tǒng)的配置文件和對文件系統(tǒng)支持的文件。該目錄下 configs 目錄有與開發(fā)板相關(guān)的配置頭文件,如 。該目錄下的 asm 目錄有與 CPU 體系結(jié)構(gòu)相關(guān)的頭文件 asm 對應(yīng)的是 asmarm. lib_xxxx: 與體系結(jié)構(gòu)相關(guān)的庫文件。如與 ARM 相關(guān)的庫放在 lib_arm 中。 Net : 與網(wǎng)絡(luò)協(xié)議棧相關(guān)的代碼, BOOTP 協(xié)議、 TFTP 協(xié)議、 RARP 協(xié)議和 NFS 文件系統(tǒng) 的 實現(xiàn)。 Tools :Uboot 的工具,如: mkimage, crc 等 等 uboot 的啟動過程及工作原理 [6] 大多數(shù) bootloader 都分為階段 1(stage1)和階段 2(stage2)兩大部分, uboot 也不例外。依賴于 CPU 體系結(jié)構(gòu)的代碼(如 CPU初始化代碼等)通常都放在階段 1 中且通常用匯編語言實現(xiàn),而階段 2則通常用 C語言來實現(xiàn),這樣可以實現(xiàn)復(fù)雜的功能,而且有更好的可讀性和移植性。 階段 1 介紹 uboot 的 stage1 代碼通常放在 文件中,它用匯編語言寫成,其主要代碼部分如下: 由于一個可執(zhí)行的 Image 必須有一個入口 點,并且只能有一個全局入口,通常這個入口放在 ROM(Flash)的 0x0 地址,因此,必須通知編譯器以使其知道這個入口,該工作可通過修改連接器腳本來完成 . 1. board/gec2410/: ENTRY(_start) cpu/arm920t/: .globl _start 2. uboot 代碼區(qū)( TEXT_BASE = 0x33F80000)定義在 board/gec2410/ _start: b reset @ 0x00000000 ldr pc, _undefined_instruction @ 0x00000004 ldr pc, _software_interrupt @ 0x00000008 28 ldr pc, _prefetch_abort @ 0x0000000c ldr pc, _data_abort @ 0x00000010 ldr pc, _not_used @ 0x00000014 ldr pc, _irq @ 0x00000018 ldr pc, _fiq @ 0x0000001c 當(dāng)發(fā)生異常時,執(zhí)行 cpu/arm920t/ 中定義的中斷處理函數(shù)。 CPU 的模式為 SVC 模式 mrs r0,cpsr bic r0,r0,0x1f orr r0,r0,0xd3 msr cpsr,r0 if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) ldr r0, =pWTCON mov r1, 0x0 str r1, [r0] mov r1, 0xffffffff ldr r0, =INTMSK str r1, [r0] if defined(CONFIG_S3C2410) ldr r1, =0x3ff ldr r0, =INTSUBMSK str r1, [r0] 嵌入式 Web 服務(wù)器 Boa 的移植及其應(yīng)用 29 CPU 的頻率 ldr r0, =CLKDIVN mov r1, 3 str r1, [r0] CP15 設(shè)置 CP15, 失效指令 (I)Cache 和數(shù)據(jù) (D)Cache 后 , 禁止 MMU 與 Cache。 cpu_init_crit: mov r0, 0 mcr p15, 0, r0, c7, c7, 0 /* 失效 I/D cache, 見 S3C2410 手冊附錄的 216 */ mcr p15, 0, r0, c8, c7, 0 /* 失效 TLB, 見 S3C2410 手冊附錄的 218 */ /* * 禁止 MMU 和 caches, 詳見 S3C2410 手冊附錄 211 */ mrc p15, 0, r0, c1, c0, 0 bic r0, r0, 0x00002300 /* 清除 bits 13, 9:8 (V RS) * Bit 8: Disable System Protection * Bit 7: Disable ROM Protection * Bit 13: 異常向量表基地址 : 0x0000 0000 */ bic r0, r0, 0x00000087 /* 清除 bits 7, 2:0 (B CAM) * Bit 0: MMU disabled * Bit 1: Alignment Fault checking disabled * Bit 2: Data cache disabled * Bit 7: 0 = Littleendian operation */ 30 orr r0, r0, 0x00000002 /* set bit 2 (A) Align, 1 = Fault checking enabled */ orr r0, r0, 0x00001000 /* set bit 12 (I) ICache, 1 = Instruction cache enabled*/ mcr p15, 0, r0, c1, c0, 0 配置內(nèi)存區(qū)控制寄存器,寄存器的具體值通常由開發(fā)板廠商或硬件工程師提供 . 如果您對總線周期及外圍芯片非常熟悉 , 也可以自己確定 ,在 UBOOT 中的設(shè)置文件是 board/gec2410/, 該文件包含 lowleve_init 程序段 . mov ip, lr bl lowlevel_init mov lr, ip UBOOT 使的??臻g 下面這段代碼只對不是
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1