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

正文內(nèi)容

系統(tǒng)引導(dǎo)程序40boot-loader41的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(完整版)

  

【正文】 圖 littleendian 格式 地 存儲(chǔ)系統(tǒng) ARM 指令集介紹 ARM 指令系統(tǒng)屬于 RISC 指令系統(tǒng)標(biāo)準(zhǔn) 地 ARM 指令每條都是 32 位 ,有些 ARM核還可以執(zhí)行 16位 地 Thumb 指令集一般地 ,ARM 指令具有以下特點(diǎn): ★ 指令 地 條件執(zhí)行 ARM 指令都是條件執(zhí)行 ,條件標(biāo)志位位于程序代碼字節(jié) 地 cond 位(位 28 - 31,下文會(huì)介紹)根據(jù) cond 地 不同編碼 ,可以選擇根據(jù)條件碼標(biāo)志決定指令 地 執(zhí)行 ★ 靈活 地 第二操作數(shù) ARM 指令 地 另一個(gè)重要 地 特點(diǎn)是數(shù)據(jù)處理類指令有靈活 地 第二操作數(shù)operand2(位與程序代碼 地 位 0- 11)它既可以是立即數(shù) ,也可以是邏輯運(yùn)算數(shù) ,使得 ARM 指令可以在讀取數(shù)值 地 同時(shí)進(jìn)行算術(shù)和移位操作 ★ 協(xié)處理器 地 作用 ARM 內(nèi)核可提供協(xié)處理接口 ,通過(guò)擴(kuò)展協(xié)處理器完成更加復(fù)雜 地 功能因 此ARM 指令中還包括 l多條協(xié)處理器指令 ,使用多達(dá) 16 個(gè)協(xié)處理器 ,允許將其他處理器通過(guò)協(xié)處理器接口進(jìn)行緊耦合; ARM 還包括幾種內(nèi)存管理單元 地 變種 ,包括 17 簡(jiǎn)單 地 內(nèi)存保護(hù)到復(fù)雜 地 頁(yè)面層次 ★ Thumb 指令 ARM在有 地 版本支持 16位 Thumb指令 Thumb指令集 地 整體執(zhí)行速度比 ARM32位指令集快 ,而且提高 l代碼密度 ★ 具有 RISC 指令 地 特點(diǎn) 由于 ARM指令屬于 RISC指令 ,所以多具有 RISC指令 地 特點(diǎn) ,指令少 ,且等長(zhǎng) ,便于充分利用流水線技術(shù) ,使用多寄存器 ,且為簡(jiǎn)單 地 Load 和 Store 指令 ARM 指令按功能大致可以分為跳轉(zhuǎn)指令、數(shù)據(jù)處理指令、乘法類指令、數(shù)據(jù)傳送指令、協(xié)處理器類指令以及雜項(xiàng)指令(包括狀態(tài)寄存器傳送指令、乘法類指令、軟件中斷指令和斷點(diǎn)指令) ARM指令字長(zhǎng)為固定 地 32位 ,一條典型 地 ARM指令編碼格式如下: 圖 數(shù)據(jù)處理指令編碼 其中: ★ Cond 位 28- 31,執(zhí)行指令 地 條件編碼 ★ I 位 25,決定 operand2 地 格式 ★ opcode 位 21- 24,操作碼 ★ S 位 20,表示結(jié)果是否影響狀態(tài)寄存器標(biāo)志位: 1影響 ,0不影響 ★ Rn 位 16- 19,第一操作數(shù) 地 寄存器編碼 ★ Rd 位 12- 15,目標(biāo)寄存器編碼 ★ operand2 位 0- 11,表示第二操作數(shù)編碼 ARM 指令包括 60多個(gè)指令 ,并且支持多種尋址方式:寄存器尋址、立即數(shù)尋址、寄存器間接尋址、寄存器變址尋址、多寄存器尋址、堆棧尋址、塊拷貝尋址以及相對(duì)尋址等對(duì)于具體 地 指令集 ,可以參考相關(guān)文檔 ARM 體系 地 異常中斷 在 ARM 體系中通常有以下 3 種方式控制程序 地 執(zhí)行流程: ★ 在程序正常執(zhí)行過(guò)程種 ,每執(zhí)行一條 ARM指令 ,程序計(jì)數(shù)器寄存器( PC) 地 值加 4 個(gè)字節(jié);每執(zhí)行一條 Thumb 指令 ,程序計(jì)數(shù)器寄存器 地 值加 2 個(gè)字節(jié)整個(gè)過(guò)程是按順序執(zhí)行 ★ 通過(guò)跳轉(zhuǎn)指令 ,程序可以跳轉(zhuǎn)到特定 地 地址標(biāo)號(hào)處執(zhí)行 ,或者跳轉(zhuǎn)到特定 地子程序處執(zhí)行 18 ★ 當(dāng)異常中斷發(fā)生時(shí) ,系統(tǒng)執(zhí)行完當(dāng)前指令后 ,將跳轉(zhuǎn)到相應(yīng) 地 異常中斷處理程序處執(zhí)行在異常中斷處理程序執(zhí)行完成后 ,程序返回到發(fā)生中斷 地 指令 地 下一條指令處執(zhí)行 ARM 體系中中斷向量表中指定 l各異常中斷及處理程序 地 對(duì)應(yīng)關(guān)系它可以放在存儲(chǔ)地址 地 低端 ,也可以放在存儲(chǔ)地址 地 高端異常中斷向量表 地 大小位 32 字節(jié) ,其中每個(gè)異常中斷占據(jù) 4個(gè)字節(jié)大 小 ,保留 l4個(gè)字節(jié)空間 每個(gè)異常中斷對(duì)應(yīng) 地 中斷向量表中 地 4個(gè)字節(jié) 地 空間中放 l一個(gè)跳轉(zhuǎn)指令或者一個(gè)向 PC寄存器中賦值 地 數(shù)據(jù)訪問(wèn)指令通過(guò)這兩種指令 ,程序?qū)⑻D(zhuǎn)到相應(yīng)地 異常中斷處理程序處執(zhí)行 下面是 ARM 體系中各異常中斷向量 地 描述表: 表格 異常中斷向量表 ARM 處理器對(duì)異常中斷 地 響應(yīng)過(guò)程如下: ★ 保存處理器當(dāng)前狀態(tài)、中斷屏蔽位以及各條件標(biāo)志位這是通過(guò)將當(dāng)前程序狀態(tài)寄存器 CPSR地 內(nèi)容保存到將要執(zhí)行 地 異常中斷對(duì)應(yīng) 地 SPSR寄存器中實(shí)現(xiàn) 地 ★ 設(shè)置當(dāng)前 地 程序狀態(tài)寄存器 CPSR中相應(yīng) 地 位 ,包括設(shè)置 CPSR中 地 位 ,使處理器進(jìn)入相應(yīng) 地 執(zhí)行模式;設(shè)置 CPSR 中 地 位 ,禁止 IRQ 中斷 ,當(dāng)進(jìn)入 FIQ 模式時(shí) ,禁止 FIQ 模式 ★ 將寄存器 lr_mode 設(shè)置成返回地址 ★ 將程序計(jì)數(shù)器值 PC 設(shè)置成該異常中斷 地 中斷向量地址 ,從而跳轉(zhuǎn)到相應(yīng) 地異常中斷處理程序處執(zhí)行 ARM 最小系統(tǒng)描述 對(duì)于任何一個(gè)系統(tǒng) ,都希望不是一個(gè)虛擬系統(tǒng) ,也就是說(shuō)系統(tǒng)都希望是特定 19 系統(tǒng) ,即有具體 地 CPU,有具體 地 存儲(chǔ)芯片以及有各種具體 地 外圍控制模塊對(duì)于本課題來(lái)說(shuō) ,最終 地 bootloader 也必須在具體 地 系統(tǒng)上運(yùn)行起來(lái)但是 ,任何一個(gè)ARM 系統(tǒng) ,在沒(méi)有特定指定 地 條件下 ,仍然可以將通用特性(一些通用基本控制模塊)描述出來(lái) ,在此稱之為 ARM最小系統(tǒng) ,見(jiàn)下圖: 圖 ARM 最小系統(tǒng) 從上圖中 ,可以 l解一個(gè)基本 地 ARM最小系統(tǒng)通常包括以下幾個(gè)部分 : ★ ARM core ★ 存儲(chǔ)控制器:通過(guò)它系統(tǒng)可以接入各種 DRAM 以及 ROM ★ 總線橋接:系統(tǒng)總線與外圍總線 地 連接器 ★ 中斷控制器:供各種設(shè)備提供中斷服務(wù) ★ 串口 ★ GPIO 控制模塊:供各種外設(shè)以及系統(tǒng)擴(kuò)充使用 對(duì)于一些復(fù)雜系統(tǒng) ,還可以有更多 地 功能性模塊 ,特別是隨著網(wǎng)絡(luò)通信 地 發(fā)展 ,ARM 系統(tǒng)中包括 l更多 地 通訊控制模塊 20 4 Bootloader 地 概念 本文在實(shí)現(xiàn)以及驗(yàn)證上都以開(kāi)放源代碼 地 linux為操作系統(tǒng) ,因此 ,在眾多舉例以及圖表描述中 ,多以 linux 系統(tǒng)為例子但是 ,這并不防礙 對(duì)許多概念 地 解釋 ,其本質(zhì)在任何操作系統(tǒng)中都是一致 地 ,所不同 地 僅僅是實(shí)現(xiàn)形式 Bootloader 地 基本概念 一個(gè)嵌入式 Linux 系統(tǒng)從軟件 地 角度看通??梢苑譃樗膫€(gè)層次:引導(dǎo)加載序、 Linux 內(nèi)核、文件系統(tǒng)、用戶應(yīng)用程序 圖 嵌入式 Linux 系統(tǒng)組成 引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行 地 第一段代碼我們熟悉 地 PC 中 地 引導(dǎo)程序一般由 BIOS 和位于 MBR 地 OS bootloader(例如 LILO 或者 GRUB)一起組成然而在嵌入式系統(tǒng)中通常沒(méi)有像 BIOS 那樣 地 固件程序(有 地 嵌入式 CPU 有) ,因 此整個(gè)系統(tǒng) 地 加載啟動(dòng)任務(wù)就完全由 bootloader 來(lái)完成在嵌入式 Linux 中 , 圖 中 地 引導(dǎo)加載程序即等效為 bootloader 簡(jiǎn)單地說(shuō) ,bootloader就是在操作系統(tǒng)內(nèi)核運(yùn)行前運(yùn)行地一段小程序通過(guò)這段小程序 ,我們可以初始化必要 地 硬件設(shè)備 ,創(chuàng)建內(nèi)核需要 地 一些信息并將這些信息通過(guò)相關(guān)機(jī)制傳遞給內(nèi)核 ,從而將系統(tǒng) 地 軟硬件環(huán)境帶到一個(gè)合適 地 狀態(tài) ,最終調(diào)用操作系統(tǒng)內(nèi)核 ,真正起到引導(dǎo)和加載內(nèi)核 地 作用 bootloader是依賴于硬件而實(shí)現(xiàn) 地 ,特別是在嵌入式系統(tǒng)中不同 地 體系結(jié)構(gòu)需求 地 bootloader 是不同 地 ;除 l體系結(jié)構(gòu) ,bootloader 還依賴于具體 地 嵌入 21 式板級(jí)設(shè)備 地 配置也就是說(shuō) ,對(duì)于兩塊不同 地 嵌入式板而言 ,即使它們基于相同地 CPU 構(gòu)建 ,運(yùn)行在其中一塊電路板上 地 bootloader,未必能夠運(yùn)行在另一塊電路開(kāi)發(fā)板上 Bootloader 地 啟動(dòng)過(guò)程可以是單階段 地 ,也可以是多階段 地 通常多階段 地bootloader能提供更為復(fù)雜 地 功能 ,以及更好 地 可移植性從固態(tài)存儲(chǔ)設(shè)備上啟動(dòng)地 bootloader 大多數(shù)是二階段 地 啟動(dòng)過(guò)程 ,也即啟動(dòng)過(guò)程可以分為 stage 1 和stage 2 兩部分 Bootloader 地 操作模式 大多數(shù) bootloader 都包含兩種不同 地 操作模式: “ 啟動(dòng)加載 ” 模式和 “ 下載 ” 模式 ,這種區(qū)別對(duì)于開(kāi)發(fā)人員才有意義但從最終用戶 地 角度看 ,bootloader地 作用永遠(yuǎn)就是用來(lái)加載操作系統(tǒng) ,而并不存在所謂 地 啟動(dòng)加載模式與下載工作模式 地 區(qū)別 啟動(dòng)加載模式:這種模式也稱為 “ 自主 ” 模式 ,即 bootloader 從目標(biāo)機(jī)上地 某個(gè)固體存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到 RAM 中運(yùn)行 ,整個(gè)過(guò)程沒(méi)有用戶 地 介入這種模式是 bootloader 地 正常工作模式 ,因此當(dāng)以嵌入式產(chǎn)品發(fā)布 地 時(shí)候 ,bootloader 必須工作在這種模 式下 下載模式:在這種模式下 ,目標(biāo)機(jī)上 地 bootloader 將通過(guò)串口或者網(wǎng)絡(luò)連接或者其它通信手段從主機(jī)下載文件 ,比如:下載內(nèi)核鏡像和根文件系統(tǒng)鏡像等從主機(jī)下載 地 文件通常首先被 bootloader 保存到目標(biāo)機(jī) 地 RAM 中 ,然后被bootloader 寫(xiě)到目標(biāo)機(jī)上 地 FLASH 類固態(tài)存儲(chǔ)設(shè)備中 Bootloader 地 這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時(shí)使用;此外 ,以后 地 系統(tǒng)更新也會(huì)使用bootloader地 這種工作模式工作于這種模式下 地 bootloader通常都會(huì)向它 地 中斷用戶提供一個(gè)簡(jiǎn)單 地 命令行接口 Bootloader 地 概念擴(kuò)展 Bootloader 最主要 地 功能是引導(dǎo)加載內(nèi)核鏡像但是隨著嵌入式系統(tǒng) 地 發(fā)展 ,bootloader已經(jīng)逐漸在基本功能 地 基礎(chǔ)上 ,進(jìn)行 l擴(kuò)展 ,bootloader可以更多地增加對(duì)具體系統(tǒng) 地 板級(jí)支持 ,即增加一些硬件模塊功能上 地 使用支持 ,以方便開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)和調(diào)試從這個(gè)層面上看 ,功能擴(kuò)展后 地 bootloader 可以虛擬地看成是一個(gè)微小 地 系統(tǒng)級(jí) 地 代碼包 22 ARM Bootloader 地 共性 從上面 bootloader 地 基本概念可以看出 ,bootloader 地 設(shè) 計(jì)與實(shí)現(xiàn)是與具體 地 CPU 以及具體 地 硬件系統(tǒng)緊密相關(guān) 地 ,從上一章 地 實(shí)現(xiàn)就可以看出 ,要實(shí)現(xiàn)一個(gè)通用 地 ARM bootloader,即要適合所有 地 ARM處理器以及硬件系統(tǒng) ,是不太可能 地 事情另外 ,不同 地 操作系統(tǒng) ,可能對(duì)具體 地 bootloader 還會(huì)有另外額外 地要求但是 ,我們還是可以根據(jù) ARM 地 體系結(jié)構(gòu) ,從理論上總結(jié)出一些 ARM 系統(tǒng)bootloader 實(shí)現(xiàn) 地 共性 ,而這僅僅局限于理論上至于涉及到具體 地 設(shè)計(jì)與實(shí)現(xiàn) ,可以參看第 5 章 地 具體內(nèi)容 ,并根據(jù)自己 地 硬件系統(tǒng)進(jìn)行移植 ,也不是一件困難地 事情 對(duì)于 ARM bootloader 地 一些共同特性 ,理論上只局限于 bootloader 地 基本功能 ,因?yàn)閿U(kuò)展功能眾多 ,可以有串口、 USB、以太網(wǎng)接口、 IDE、 CF 等 ,無(wú)法進(jìn)行歸納與總結(jié) 對(duì)于一個(gè) ARM 系統(tǒng)來(lái)說(shuō) ,本質(zhì)上 ,bootloader 作為引導(dǎo)與加載內(nèi)核鏡像 地“ 工具 ” ,在實(shí)現(xiàn)上 ,必須提供以下幾個(gè)功能 ,更確切地說(shuō) ,必須做到以下幾點(diǎn): ( 1) 初始化 RAM(必需): bootloader 必須能夠初始化 RAM,因?yàn)閷?lái)系統(tǒng)要通過(guò)它保存一些 Volatile 數(shù)據(jù) ,但具體地實(shí)現(xiàn)要依賴與具體 地 CPU 以及硬件系統(tǒng) ( 2) 初始化串口(可選 ,推薦) : bootloader 應(yīng)該要初始化以及使能至少一個(gè)串口 ,通過(guò)它與控制臺(tái)聯(lián)系進(jìn)行一些 debug 地 工作;甚至與 PC 通信 ( 3) 創(chuàng)建內(nèi)核參數(shù)列表(針對(duì) linux 操作系統(tǒng) ,推薦) ( 4) 啟動(dòng)內(nèi)核鏡像(必需):根據(jù)內(nèi)核鏡像保存 地 存儲(chǔ)介質(zhì)不同 ,可以有兩種啟動(dòng)方式: FALSH 啟動(dòng)以及 RAM 啟動(dòng);但是無(wú)論是哪種啟動(dòng)方式 ,下面 地 系統(tǒng)狀態(tài)必須得到滿足: ★ CPU 寄存器
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1