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

正文內(nèi)容

基于arm嵌入式系統(tǒng)的通用bootloader的設(shè)計(jì)與實(shí)現(xiàn)(完整版)

2025-07-30 15:38上一頁面

下一頁面
  

【正文】 處理器的特點(diǎn)。  ?。?主頻最高可達(dá)130MIPS,高速的運(yùn)算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用?! 。?支持32位的高速AMBA總線接口?! RM9E系列微處理器的主要特點(diǎn)如下: ?。?支持DSP指令集,適合于需要高速數(shù)字信號處理的場合?! 。?主頻最高可達(dá)300MIPS?! 。?支持VFP10浮點(diǎn)處理協(xié)處理器?! ntel StrongARM處理器是便攜式通訊產(chǎn)品和消費(fèi)類電子產(chǎn)品的理想選擇,已成功應(yīng)用于多家公司的掌上電腦系列產(chǎn)品(6)Intel Xscale微處理器系列有關(guān)Intel Xscale微處理器系列,會(huì)在后面相關(guān)篇幅中進(jìn)行介紹。- 大量使用寄存器,數(shù)據(jù)處理指令只對寄存器進(jìn)行操作,只有加載/ 存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率。 ARM體系結(jié)構(gòu)介紹 第二章 ARM體系結(jié)構(gòu)介紹在介紹具體的ARM Bootloader的實(shí)現(xiàn)之前,首先介紹一下ARM的體系結(jié)構(gòu),因?yàn)锽ootloader是與處理器芯片緊密相連的。ARM為了提高運(yùn)算速度,則采用兩位乘法的方法,根據(jù)乘數(shù)的2位來實(shí)現(xiàn)“加一移位”運(yùn)算 ;ARM高速乘法器采用328位的結(jié)構(gòu),這樣,可以降低集成度(其相應(yīng)芯片面積不到并行乘法器的1/3)。在這些模式下,程序可以訪問所有的系統(tǒng)資源,也可以任意地進(jìn)行處理器模式的切換。系統(tǒng)模式并不是通過異常過程進(jìn)入的,它和用戶模式具有完全一樣的寄存器。而對于R8-R12寄存器組,除了在快速中斷模式下有自己專有的物理寄存器,其它模式下也共有統(tǒng)一物理寄存器。CPSR(當(dāng)前程序狀態(tài)寄存器)可以在任何處理器模式下被訪問。[6]所示: 31 30 29 28 27 8 7 6 5 4 0NZCQUnused IFTModes N(Negative)、Z(Zero)、C(Carry)、V(Overflow)統(tǒng)稱為標(biāo)志位。該地址空間的大小232個(gè)8位字節(jié)。這種存儲器格式如下圖所示: 31 24 23 16 15 8 7 0字單元A半字單元A半字單元A+2字節(jié)單元A字節(jié)單元A+1字節(jié)單元A+2字節(jié)單元A+3 bigendian格式的存儲系統(tǒng)在littleendian格式中,地址為A的字單元包括字節(jié)單元A、A+A+A+3,其中字節(jié)單元由高位到低位字節(jié)順序?yàn)锳+A+A+A;地址為A的字單元包括半字單元A、A+2,其中半字單元由高位到地位字節(jié)順序?yàn)锳+A;地址為A的半字單元包括字節(jié)單元A、A+1,其中字節(jié)單元由高位到低位字節(jié)順序?yàn)锳+A。因此ARM指令中還包括了多條協(xié)處理器指令,使用多達(dá)16個(gè)協(xié)處理器,允許將其他處理器通過協(xié)處理器接口進(jìn)行緊耦合;ARM還包括幾種內(nèi)存管理單元的變種,包括簡單的內(nèi)存保護(hù)到復(fù)雜的頁面層次。l S 位20,表示結(jié)果是否影響狀態(tài)寄存器標(biāo)志位:1影響,0不影響。l 通過跳轉(zhuǎn)指令,程序可以跳轉(zhuǎn)到特定的地址標(biāo)號處執(zhí)行,或者跳轉(zhuǎn)到特定的子程序處執(zhí)行。下面是ARM體系中各異常中斷向量的描述表:中斷向量偏移地址 異常中斷類型 異常中斷模式 優(yōu)先級(6最低) 0x00 復(fù)位 監(jiān)管模式 10x04 未定義的指令 未定義指令中止模式 60x08 軟件中斷 監(jiān)管模式 60x0c 指令預(yù)取中止 中止模式 50x10 數(shù)據(jù)訪問中止 中止模式 20x14 保留 未使用 未使用0x18 普通中斷請求 外部中斷模式 40x1c 快速中斷請求 快速中斷模式 3ARM處理器對異常中斷的響應(yīng)過程如下:l 保存處理器當(dāng)前狀態(tài)、中斷屏蔽位以及各條件標(biāo)志位。 Intel Xscale系統(tǒng)構(gòu)架本文最終實(shí)現(xiàn)以及驗(yàn)證平臺是基于Intel Xscale構(gòu)架的,因此在本節(jié)中主要介紹一下Intel Xscale的系統(tǒng)結(jié)構(gòu)并簡要介紹一下基于Xscale微架構(gòu)的處理器PXA255。 PXA255作為本課題的整個(gè)硬件平臺核心,具有很強(qiáng)的處理能力,同時(shí)兼具低功耗和高集成度的特性。在嵌入式Linux中, 。從固態(tài)存儲設(shè)備上啟動(dòng)的bootloader大多數(shù)是二階段的啟動(dòng)過程,也即啟動(dòng)過程可以分為stage 1和stage 2兩部分。工作于這種模式下的bootloader通常都會(huì)向它的中斷用戶提供一個(gè)簡單的命令行接口。對于ARM bootloader的一些共同特性,理論上只局限于bootloader的基本功能,因?yàn)閿U(kuò)展功能眾多,可以有串口、USB、以太網(wǎng)接口、IDE、CF等,無法進(jìn)行歸納與總結(jié)。l Bootloader啟動(dòng)內(nèi)核鏡像的方法是通過跳轉(zhuǎn)語句直接跳轉(zhuǎn)至內(nèi)核鏡像的第一句指令語句。對其研究,既有一定的典型性,又有一定的前瞻性。在以后篇幅介紹具體bootloader的實(shí)現(xiàn)時(shí),基本就根據(jù)以上流程進(jìn)行開發(fā)。PXA255系統(tǒng)復(fù)位后,從物理地址的0x00000000開始執(zhí)行第一段代碼,這個(gè)地址是由 CPU制造商預(yù)先安排的。為了在兩者之間做到兼顧,本課題既支持啟動(dòng)加載模式,也支持下載模式,具體思路為:在bootloader做完一些硬件初始化工作后,而在加載內(nèi)核鏡像之前,先在一定的時(shí)間內(nèi)等待有沒有用戶有鍵盤輸入,如果沒有,則為啟動(dòng)加載模式,直接加載內(nèi)核鏡像進(jìn)行啟動(dòng);如果有,則進(jìn)入命令行格式,這時(shí)開發(fā)者就可以根據(jù)自己的需要以及bootloader的支持情況,做一些其他的工作。.m MonStack, MonStackSz .m FiqStack, FiqStackSz .m IrqStack, IrqStackSz .m AbtStack, AbtStackSz .m UndStack, UndStackSz .m SysStack, SysStackSz (4)接著就是申明一些標(biāo)號量(代碼略)。以reset標(biāo)號標(biāo)識,一開始處設(shè)置異常中斷向量表,當(dāng)是冷啟動(dòng)時(shí),直接跳轉(zhuǎn)至對應(yīng)處進(jìn)行啟動(dòng):reset: b coldstart b undefined_instruction b software_interrupt b abort_prefetch b abort_data b not_used b interrupt_request b fast_interrupt_request系統(tǒng)正常啟動(dòng),都屬于冷啟動(dòng),程序直接跳轉(zhuǎn)至coldstart標(biāo)號處執(zhí)行。綜合起來,整個(gè)bootloader的實(shí)現(xiàn)流程可以如下圖所示: 基本硬件初始化 階段1 拷貝階段2鏡像至RAM 進(jìn)入階段2開始執(zhí)行 擴(kuò)展功能所需硬件初始化 拷貝內(nèi)核鏡像至RAM中 階段2 等待50ms 看是否串口有 輸入 是 否 進(jìn)入下載模式 跳轉(zhuǎn)至內(nèi)核鏡像 接收命令 Bootloader的具體實(shí)現(xiàn) 從本節(jié)開始介紹本課題的bootloader的具體代碼實(shí)現(xiàn)。當(dāng)Bootloader放到FLASH的起始處后,系統(tǒng)加電或者復(fù)位后,CPU將首先執(zhí)行bootloader程序。在設(shè)計(jì)時(shí),我們將bootloader分為兩個(gè)階段:階段1和階段2。 軟件環(huán)境以及軟件開發(fā)工具 操作系統(tǒng)本文操作系統(tǒng)使用的是開放源碼的Linux操作系統(tǒng),因此最終bootloader的實(shí)現(xiàn)是針對Linux操作系統(tǒng)的,加載的kernel鏡像也是Linux kernel生成。 課題研究的平臺環(huán)境在本章開始,首先介紹本文研究的硬件平臺和軟件開發(fā)平臺。(2) 初始化串口(可選,推薦):bootloader應(yīng)該要初始化以及使能至少一個(gè)串口,通過它與控制臺聯(lián)系進(jìn)行一些debug的工作;甚至與PC通信。但是隨著嵌入式系統(tǒng)的發(fā)展,bootloader已經(jīng)逐漸在基本功能的基礎(chǔ)上,進(jìn)行了擴(kuò)展,bootloader可以更多地增加對具體系統(tǒng)的板級支持,即增加一些硬件模塊功能上的使用支持,以方便開發(fā)人員進(jìn)行開發(fā)和調(diào)試。但從最終用戶的角度看,bootloader的作用永遠(yuǎn)就是用來加載操作系統(tǒng),而并不存在所謂的啟動(dòng)加載模式與下載工作模式的區(qū)別。通過這段小程序,我們可以初始化必要的硬件設(shè)備,創(chuàng)建內(nèi)核需要的一些信息并將這些信息通過相關(guān)機(jī)制傳遞給內(nèi)核,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),最終調(diào)用操作系統(tǒng)內(nèi)核,真正起到引導(dǎo)和加載內(nèi)核的作用。 Bootloader的概念第三章 Bootloader的概念本文在實(shí)現(xiàn)以及驗(yàn)證上都以開放源代碼的linux為操作系統(tǒng),因此,在眾多舉例以及圖表描述中,多以linux系統(tǒng)為例子。[7]所示為Xscale系統(tǒng)結(jié)構(gòu)圖。l 設(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模式。在異常中斷處理程序執(zhí)行完成后,程序返回到發(fā)生中斷的指令的下一條指令處執(zhí)行。l Rd 位12-15,目標(biāo)寄存器編碼。Thumb指令集的整體執(zhí)行速度比ARM32位指令集快,而且提高了代碼密度。標(biāo)準(zhǔn)的ARM指令每條都是32位,有些ARM核還可以執(zhí)行16位的Thumb指令集。ARM的地址空間也可以看作是230個(gè)32位的字單元。各條件標(biāo)志位的具體含義如下:N:當(dāng)兩個(gè)補(bǔ)碼表示的有符號整數(shù)運(yùn)算時(shí),N=1表示運(yùn)算的結(jié)果為負(fù)數(shù);N=0表示運(yùn)算結(jié)果為正數(shù)或零;Z:Z=1表示運(yùn)算結(jié)果為零;Z=0表示運(yùn)算的結(jié)果不為零;C:在加法指令中,當(dāng)結(jié)果產(chǎn)生了進(jìn)位,則C=1;其他情況下C=0; 在減法指令中,當(dāng)運(yùn)算中發(fā)生借位,則C=0;其他情況下C=0;V:對于加/減法運(yùn)算指令,當(dāng)操作數(shù)和運(yùn)算結(jié)果為二進(jìn)制的補(bǔ)碼表示的帶符號數(shù)時(shí),V=1表示符號位溢出CPSR的低8位稱為控制位,當(dāng)異常中斷發(fā)生時(shí)這些位發(fā)生改變。每一種處理器異常模式下都有一個(gè)專用的物理狀態(tài)寄存器,稱為SPSR(備份程序狀態(tài)寄存器)。R14寄存器又被稱為連接寄存器(Link Register,LR),在ARM體系中有下面兩種特殊的作用[6]:l 每一種處理器模式自己的物理R14中存放當(dāng)前子程序的返回地址。它主要供操作系統(tǒng)任務(wù)使用。處理器模式可以通過軟件控制進(jìn)行切換,也可以通過外部中斷或異常處理過程進(jìn)行切換。FPA10浮點(diǎn)加速器是作為協(xié)處理方式與ARM相連,并通過協(xié)處理指令的解釋來執(zhí)行。 ARM core描述盡管本本文實(shí)現(xiàn)主要涉及軟件上的開發(fā),但是軟件上代碼的實(shí)現(xiàn)更多的都涉及芯片構(gòu)架,因此在這里簡要介紹一下一般ARM core構(gòu)架。Thumb指令集比通常的8位和16位RISC/CISC處理器具有更好的代碼密度,而芯片面積只增加6%,可使程序存儲器更小。 RISC指令集 傳統(tǒng)的CISC(Complex Instruction Set Computer,復(fù)雜指令集計(jì)算機(jī))結(jié)構(gòu)有其固有的缺點(diǎn),即隨著計(jì)算機(jī)技術(shù)的發(fā)展而不斷引入新的復(fù)雜的指令集,為支持這些新增的指令,計(jì)算機(jī)的體系結(jié)構(gòu)會(huì)越來越復(fù)雜,然而,在CISC指令集的各種指令中,其使用頻率卻相差懸殊,大約有20%的指令會(huì)被反復(fù)使用,占整個(gè)程序代碼的80%?! 。?支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力 ?。?主頻最高可達(dá)400MIPS?! RM9E系列微處理器包含ARM926EJS、ARM946ES和ARM966ES三種類型,以適用于不同的應(yīng)用場合?! 。?支持32位ARM指令集和16位Thumb指令集?! 。?MPU支持實(shí)時(shí)操作系統(tǒng)?! RM7系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMIS、ARM720T、ARM7EJ。ARM7微處理器系列具有如下特點(diǎn): ?。?具有嵌入式ICE-RT邏輯,調(diào)試開發(fā)方便。1991年ARM公司成立于英國劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。第五章, 實(shí)驗(yàn)結(jié)果的一些分析與
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1