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

正文內(nèi)容

系統(tǒng)引導(dǎo)程序的設(shè)計(jì)與實(shí)現(xiàn)-wenkub.com

2024-08-06 04:08 本頁(yè)面
   

【正文】 我不是您最出色的學(xué)生,而您卻是我最尊敬的老師。L inux嵌入式系統(tǒng)BootLoader的研究與設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, ~99[9] 齊欣,張家棟,[J].微型機(jī)與應(yīng)用, ~60[10] 馮進(jìn)文,[J].中國(guó)測(cè)試技術(shù),~103[11] amp。但是,一個(gè)真正的通用bootloader,應(yīng)該有更多的擴(kuò)展功能來(lái)適應(yīng)更多的應(yīng)用。一個(gè)嵌入式系統(tǒng)賦予bootloader的職能是引導(dǎo)與加載內(nèi)核鏡像,但是為了給更多的開(kāi)發(fā)者提供便利的開(kāi)發(fā)手段,bootloader越來(lái)越不局限于其基本功能,它不斷地增加對(duì)硬件電路板具體功能模塊的支持,甚至是支持一些簡(jiǎn)單的網(wǎng)絡(luò)協(xié)議。6 總結(jié)與展望 本文主要介紹的是基于ARM嵌入式系統(tǒng)通用bootloader的設(shè)計(jì)與實(shí)現(xiàn)。/* main_loop() can return to retry autoboot, if so just run it again. */ for (。e, 16) : 0。 s = (i 0) ? tmp : NULL。 ++reg) { gdbdbi_enetaddr[reg] = s ? simple_strtoul (s, amp。 i = getenv_r (ethaddr, tmp, sizeof (tmp))。 /* MAC Address */ { int i。 gdfb_base = addr。 /* go init the NAND */endif(4) 條件編譯初始化顯示設(shè)備。}(3) 條件編譯初始化NAND Flash設(shè)備。void mem_malloc_init (ulong dest_addr){ mem_malloc_start = dest_addr。t reloc during debug */ beq clear_bss ldr r2, _armboot_start ldr r3, _bss_start sub r2, r3, r2 /* r2 size of armboot */if 1 bl CopyCode2Ram /* r0: source, r1: dest, r2: size */else add r2, r0, r2 /* r2 source end address */ 階段2的代碼實(shí)現(xiàn) ,通過(guò)“l(fā)dr pc, _start_armboot ”這條語(yǔ)句進(jìn)入C文件中,即進(jìn)入階段2代碼中。(6)對(duì)SDRAM內(nèi)存初始化。mrs r0,cpsr bic r0,r0,0x1f orr r0,r0,0xd3 msr cpsr,r0 (2)通過(guò)宏定義方式定義各寄存器。模式的轉(zhuǎn)換設(shè)計(jì)主要在階段2中實(shí)現(xiàn)。本文所使用的內(nèi)核鏡像以及根文件系統(tǒng)鏡像都被加載到SDRAM中運(yùn)行,這樣做是因?yàn)榛谶\(yùn)行速度的考慮,盡管在嵌入式系統(tǒng)中內(nèi)核鏡像與根文件系統(tǒng)鏡像也可以直接在ROM或FLASH這樣的固態(tài)存儲(chǔ)設(shè)備中直接運(yùn)行。對(duì)于本課題的硬件系統(tǒng),外接2M的FLASH,映射到物理地址的0x00000000處;對(duì)于64M的SDRAM,則對(duì)應(yīng)S3C2440A的SDRAM BANK0,映射到0x3000000處。分為兩個(gè)階段的原因是因?yàn)椋海?)基于編程語(yǔ)言的考慮。一般地,GNU工具地開(kāi)發(fā)流程如下:(1)編寫(xiě)C、C++或者匯編源程序(2)用相關(guān)編譯器生成目標(biāo)文件(3)編寫(xiě)連接腳本(4)用連接器生成最終文件(elf格式)(5)用二進(jìn)制轉(zhuǎn)換工具生成可下載的二進(jìn)制代碼。 (2)編程語(yǔ)言由于論文與芯片底層關(guān)系密切,甚至還涉及到相關(guān)協(xié)處理器,因此在與硬件芯片底層相關(guān)的部分使用匯編,這樣可以大大提高性能以及移植性;而在很多系統(tǒng)板級(jí)的支持上,則使用C語(yǔ)言,以提高代碼的可讀性以及層次性?!? 采用高速指令I(lǐng)Cache,高速數(shù)據(jù)DCache,寫(xiě)緩沖器和物理地址TAG RAM 以減少主存帶寬和響應(yīng)速度帶來(lái)的影響。通過(guò)提供一套完整的通用系統(tǒng)外設(shè),S3C2440A減少整體系統(tǒng)成本和無(wú)需配置額外的組件。S3C2440A的最大特點(diǎn)是其核心處理器(CPU)是一個(gè)由Advanced RISC Machines有限公司設(shè)計(jì)的16/32位ARM920T的RISC處理器。 S3C2440A 模塊圖 S3C2440A是著名的半導(dǎo)體公司SAMSUNG推出的一款16/32位RISC微處理器,它為手持設(shè)備和一般類(lèi)型的應(yīng)用提供了低價(jià)格、低功耗、高性能微控制器的解決方案。Bootloader主要是裝載內(nèi)核鏡像,鏡像數(shù)據(jù)必須真實(shí)寫(xiě)回SDRAM中,所以數(shù)據(jù)cache必須關(guān)閉;而對(duì)于指令cache,不存在強(qiáng)制性的規(guī)定,但是一般情況下,推薦關(guān)閉指令cache。(3)創(chuàng)建內(nèi)核參數(shù)列表(針對(duì)linux操作系統(tǒng),推薦)。至于涉及到具體的設(shè)計(jì)與實(shí)現(xiàn),可以參看第5章的具體內(nèi)容,并根據(jù)自己的硬件系統(tǒng)進(jìn)行移植,也不是一件困難的事情。從這個(gè)層面上看,功能擴(kuò)展后的bootloader可以虛擬地看成是一個(gè)微小的系統(tǒng)級(jí)的代碼包。Bootloader的這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時(shí)使用;此外,以后的系統(tǒng)更新也會(huì)使用bootloader的這種工作模式。啟動(dòng)加載模式:這種模式也稱(chēng)為“自主”模式,即bootloader從目標(biāo)機(jī)上的某個(gè)固體存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過(guò)程沒(méi)有用戶(hù)的介入。通常多階段的bootloader能提供更為復(fù)雜的功能,以及更好的可移植性。bootloader是依賴(lài)于硬件而實(shí)現(xiàn)的,特別是在嵌入式系統(tǒng)中。然而在嵌入式系統(tǒng)中通常沒(méi)有像BIOS那樣的固件程序(有的嵌入式CPU有),因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由bootloader來(lái)完成。但是,這并不防礙對(duì)許多概念的解釋?zhuān)浔举|(zhì)在任何操作系統(tǒng)中都是一致的,所不同的僅僅是實(shí)現(xiàn)形式。 ARM最小系統(tǒng)描述對(duì)于任何一個(gè)系統(tǒng),都希望不是一個(gè)虛擬系統(tǒng),也就是說(shuō)系統(tǒng)都希望是特定系統(tǒng),即有具體的CPU,有具體的存儲(chǔ)芯片以及有各種具體的外圍控制模塊。這是通過(guò)將當(dāng)前程序狀態(tài)寄存器CPSR的內(nèi)容保存到將要執(zhí)行的異常中斷對(duì)應(yīng)的SPSR寄存器中實(shí)現(xiàn)的。異常中斷向量表的大小位32字節(jié),其中每個(gè)異常中斷占據(jù)4個(gè)字節(jié)大小,保留了4個(gè)字節(jié)空間?!? 當(dāng)異常中斷發(fā)生時(shí),系統(tǒng)執(zhí)行完當(dāng)前指令后,將跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。對(duì)于具體的指令集,可以參考相關(guān)文檔?!? Rn 位16-19,第一操作數(shù)的寄存器編碼。ARM指令字長(zhǎng)為固定的32位,一條典型的ARM指令編碼格式如下: 數(shù)據(jù)處理指令編碼其中:★ Cond 位28-31,執(zhí)行指令的條件編碼?!? Thumb指令 ARM在有的版本支持16位Thumb指令?!? 靈活的第二操作數(shù) ARM指令的另一個(gè)重要的特點(diǎn)是數(shù)據(jù)處理類(lèi)指令有靈活的第二操作數(shù)operand2(位與程序代碼的位0-11)。這種存儲(chǔ)器格式如下圖所示: littleendian格式的存儲(chǔ)系統(tǒng) ARM指令集介紹ARM指令系統(tǒng)屬于RISC指令系統(tǒng)。(2)ARM的存儲(chǔ)器格式在ARM體系中,每個(gè)字單元中包含4個(gè)字節(jié)單元或者兩個(gè)半字單元,其中1個(gè)半字單元中包含兩個(gè)字節(jié)單元。這些字節(jié)單元的地址是一個(gè)無(wú)符號(hào)的32位數(shù)值,其取值范圍為0到232-1。T:對(duì)于ARMv4以及更高的版本的T系列的ARM處理器 T=0表示執(zhí)行ARM指令T=1表示執(zhí)行Thumb指令 對(duì)于ARMv5以及更高版本的非T系列的ARM處理器★ T=0表示執(zhí)行ARM指令★ T=1表示強(qiáng)制下一條執(zhí)行的指令產(chǎn)生為定義指令中斷 Modes位控制處理器模式,在這不再贅述。各條件標(biāo)志位的具體含義如下:N:當(dāng)兩個(gè)補(bǔ)碼表示的有符號(hào)整數(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:對(duì)于加/減法運(yùn)算指令,當(dāng)操作數(shù)和運(yùn)算結(jié)果為二進(jìn)制的補(bǔ)碼表示的帶符號(hào)數(shù)時(shí),V=1表示符號(hào)位溢出。由于用戶(hù)模式和系統(tǒng)模式不是異常中斷模式,所以它們沒(méi)有SPSR。它包含了標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志以及其它的一些控制和狀態(tài)位。由于ARM采用了流水線(xiàn)機(jī)制,當(dāng)正確讀取了PC的值時(shí),該值為當(dāng)前指令地址加8個(gè)字節(jié)。R14寄存器又被稱(chēng)為連接寄存器(Link Register,LR),在ARM體系中有下面兩種特殊的作用:★ 每一種處理器模式自己的物理R14中存放當(dāng)前子程序的返回地址。任意時(shí)刻(也就是任意的處理器模式下),可見(jiàn)的寄存器包括15個(gè)通用寄存器(R0-R14)、一個(gè)或者兩個(gè)狀態(tài)寄存器以及程序計(jì)數(shù)器(PC)。系統(tǒng)模式并不是通過(guò)異常過(guò)程進(jìn)入的,它和用戶(hù)模式具有完全一樣的寄存器。當(dāng)需要進(jìn)行處理器模式的切換時(shí),應(yīng)用程序可以產(chǎn)生異常處理,在異常處理過(guò)程中進(jìn)行模式的切換。在這些模式下,程序可以訪(fǎng)問(wèn)所有的系統(tǒng)資源,也可以任意地進(jìn)行處理器模式的切換。 不同的ARM core可能還有所不同。4. 浮點(diǎn)部件:浮點(diǎn)部件是作為選件供ARM構(gòu)架使用。1. ALU:它由兩個(gè)操作數(shù)鎖存器、加法器、邏輯功能、結(jié)果以及零檢測(cè)邏輯構(gòu)成。為了更好的在后面篇幅中介紹實(shí)現(xiàn),先簡(jiǎn)單介紹相關(guān)的體系結(jié)構(gòu)以及相關(guān)指令集。 低功耗 由于ARM架構(gòu)的處理器主要用于手持式嵌入式系統(tǒng)之中,因此ARM構(gòu)架在設(shè)計(jì)中十分注意低電壓、低功耗這一點(diǎn),因而在手持式嵌入式系統(tǒng)得到廣泛的應(yīng)用。ARM主要使用32位的RISC指令,但是指令代碼利用率低,ARM為了彌補(bǔ)此不足,在新型ARM構(gòu)架(V4T版本以上)定義了16位的Thumb指令集。RISC結(jié)構(gòu)優(yōu)先選取使用頻率最高的簡(jiǎn)單指令,避免復(fù)雜指令;將指令長(zhǎng)度固定,指令格式和尋址方式種類(lèi)減少;以控制邏輯為主,不用或少用微碼控制等措施來(lái)達(dá)到上述目的。 ARM處理器的優(yōu)勢(shì)采用RISC結(jié)構(gòu)的ARM微處理器一般具有如下特點(diǎn):1. 體積小、低功耗、低成本、高性能;2. 支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8/16位器件;3. 大量使用寄存器,指令執(zhí)行速度更快;4. 大多數(shù)數(shù)據(jù)操作都在寄存器中完成;5. 尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;6. 指令長(zhǎng)度固定;ARM處理器之所以能夠廣泛應(yīng)用于各個(gè)領(lǐng)域,與以上所列的各個(gè)特點(diǎn)密切相關(guān),綜合起來(lái),主要包括以下幾點(diǎn)?! RM10E系列微處理器包含ARM1020E、ARM1022E和ARM1026EJS三種類(lèi)型,以適用于不同的應(yīng)用場(chǎng)合?!?全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統(tǒng)。★ 6級(jí)整數(shù)流水線(xiàn),指令執(zhí)行效率更高?! RM9系列微處理器主要應(yīng)用于下一代無(wú)線(xiàn)設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域?!?全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統(tǒng)。★ 5級(jí)整數(shù)流水線(xiàn),指令執(zhí)行效率更高?! RM9系列微處理器包含ARM920T、ARM922T和ARM940T三種類(lèi)型,以適用于不同的應(yīng)用場(chǎng)合?!?全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統(tǒng)。具有以下特點(diǎn):★ 5級(jí)整數(shù)流水線(xiàn),指令執(zhí)行效率更高?! RM7系列微處理器的主要應(yīng)用領(lǐng)域?yàn)椋汗I(yè)控制、Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備、移動(dòng)電話(huà)等多種多媒體和嵌入式應(yīng)用?!?代碼密度高并兼容16位的Thumb指令集。 (1)ARM7微處理器系列ARM7系列微處理器為低功耗的32位RISC處理器,最適合用于對(duì)價(jià)位和功耗要求較高的消費(fèi)類(lèi)應(yīng)用。世界各大半導(dǎo)體生產(chǎn)商從ARM公司購(gòu)買(mǎi)其設(shè)計(jì)的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成自己的ARM微處理器芯片進(jìn)入市場(chǎng)。 ARM處理器ARM(Advanc
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1