女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于Intel PXA272的Bootloader的設(shè)計(jì)與實(shí)現(xiàn)

摘要:在嵌入式系統(tǒng)中,Bootloader在完成引導(dǎo)加載系統(tǒng)鏡像的同時(shí),擴(kuò)展和增加了具體硬件模塊上的功能支持,以方便開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)和調(diào)試。這篇文章在基于Intel PXA 272嵌入式處理器的一個(gè)硬件平臺(tái)上,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)支持從SD卡加載系統(tǒng)鏡像并啟動(dòng)系統(tǒng)的bootloader,并對(duì)其加載性能進(jìn)行測(cè)試和分析。
關(guān)鍵詞:Bootloader,嵌入式處理器,WinCE操作系統(tǒng),SD卡

1  前言

    PC機(jī)中的引導(dǎo)程序一般由BIOS和位于MBR的OS  Bootloader(例如LILO或者GRUB)一起組成。然而在嵌入式系統(tǒng)中通常沒(méi)有像BIOS那樣的固件程序(有的嵌入式CPU有),因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由Bootloader來(lái)完成。但是隨著嵌入式系統(tǒng)的發(fā)展,Bootloader已經(jīng)逐漸在基本功能的基礎(chǔ)上進(jìn)行了擴(kuò)展,Bootloader可以更多地增加對(duì)具體系統(tǒng)的板級(jí)支持,即增加一些硬件模塊功能上的使用支持,以方便開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)和調(diào)試。編寫B(tài)ootLoader是開(kāi)發(fā)WinCE系統(tǒng)第一步,也是關(guān)鍵的一步。只有得到一個(gè)穩(wěn)定工作的Loader程序,才能夠更進(jìn)一步開(kāi)發(fā)WinCE的BSP,直至最后整個(gè)系統(tǒng)的成功。【1】

2  硬件平臺(tái)結(jié)構(gòu)

    我們的硬件平臺(tái)采用PXA 272 作為處理器,工作頻率為512M HZ,內(nèi)部集成了64 M bytes NOR Flash。Intel PXA27X處理器是Intel公司推出的32位,基于Xscale架構(gòu)的高性能的嵌入式芯片。【2】硬件平臺(tái)結(jié)構(gòu)中主要還包括了如下的主要器件:128 M SDRAM、AC97 codec、 LCD 控制器、IrDa芯片、藍(lán)牙UART、USB控制器。另外還集成了3.5吋、240×320 QVGA的TFT-LCD 觸摸屏、PCMCIA、SD/MMC等外設(shè)接口,WLAN模塊。

    Intel的PXA 27X內(nèi)部支持SD Host的控制模塊,有SD Host控制寄存器和可以用于SD Host控制器的IO引腳,可用編程的方法對(duì)其功能進(jìn)行選擇;但對(duì)于SD卡的檢測(cè),寫保護(hù)和插槽的電源使能

    等功能沒(méi)有專門的引腳。在本文實(shí)現(xiàn)中,對(duì)于卡檢測(cè)、電源引腳,通過(guò)GPIO擴(kuò)展來(lái)實(shí)現(xiàn)。和SD卡硬件相關(guān)的部分引腳定義如表1所示:【3】【4】

                 表1 PXA 272部分GPIO引腳功能定義

信號(hào)

方向

Intel 272功能引腳

說(shuō)明

SD_nPWREN

輸入

SDPWEN/GPB2

SD插槽電源使能信號(hào)線

SD_DATA3

輸入/輸出

SDDATA0/GPF5

4bit模式:DATA3

SD_DATA2

輸入/輸出

SDDATA0/GPF4

4bit模式:DATA2

SD_DATA1

輸入/輸出

SDDATA0/GPE5

4bit模式:DATA1

SD_DATA0

輸入/輸出

SDDATA0/GPG2

4bit模式:DATA0

SD_CMD

輸入/輸出

SDCMD/GPG1

SD命令線

SD_CLK

輸入

SDCLK/GPF3

SDIO/SD卡時(shí)鐘線

SD_nCD

輸出

EINT23/GPF1

SD卡檢測(cè)引腳

SD_WP

輸出

GPC3

SD卡寫保護(hù)引腳

3  Bootloader的設(shè)計(jì)和實(shí)現(xiàn)

    一個(gè)嵌入式WinCE系統(tǒng)從軟件的角度看通??梢苑譃閮刹糠郑築ootloader 和 Wince嵌入式系統(tǒng)。從Bootloader和Wince嵌入式系統(tǒng)的關(guān)系看,Bootloader包含兩種不同的操作模式:“本地啟動(dòng)”模式和“下載啟動(dòng)”模式?!?】在本地啟動(dòng)模式下Bootloader從Flash上將Wince操作系統(tǒng)加載到RAM中運(yùn)行。在下載啟動(dòng)模式下,目標(biāo)機(jī)上的Bootloader將通過(guò)串口或者網(wǎng)絡(luò)連接或者USB等從主機(jī)下載操作系統(tǒng)文件,也可以直接從SD/MMC卡、CF卡上加載操作系統(tǒng)鏡像文件。在下載啟動(dòng)模式下,Bootloader通過(guò)串口給用戶提供簡(jiǎn)單的命令行接口。

3.1 Bootloader的流程

    當(dāng)系統(tǒng)上電后,ARM CPU會(huì)從物理地址零處開(kāi)始執(zhí)行第一條指令的執(zhí)行,通常會(huì)在該地址處放置一條跳轉(zhuǎn)指令。在我們的硬件平臺(tái)中物理地址零是64M Flash的物理起始地址。這里值得需要說(shuō)明的是64M Flash 是固化在Intel PXA 272中的。所以我們的Bootloader燒入也必須從Flash的物理地址零開(kāi)始。Bootloader二進(jìn)制文件的最前面的4個(gè)字節(jié)就是一條跳轉(zhuǎn)指令。

圖1  Bootloader 流程圖

    接著系統(tǒng)會(huì)跳轉(zhuǎn)到一段用ARM匯編編寫的代碼中去執(zhí)行。其作用是完成系統(tǒng)啟動(dòng)所必須的最小配置,例如配置cpu 的工作頻率,配置GPIO,配置時(shí)鐘等。然后為我們處理器的工作模式設(shè)置棧指針。

    接著把Bootloader 從Flash搬運(yùn)到SDRAM中,配置MMU,創(chuàng)建頁(yè)表,使能MMU,然后把自己后半部重定位到SDRAM中去執(zhí)行。在后半部的執(zhí)行中會(huì)根據(jù)用戶做的動(dòng)作(是否按住一個(gè)按鈕)來(lái)判斷是要本地啟動(dòng)還是下載啟動(dòng)。具體的流程圖如圖1所示。

    當(dāng)用戶選擇特定下載啟動(dòng)方式后,就進(jìn)入具體的下載流程。首先需要對(duì)用戶選定的介質(zhì)的硬件進(jìn)行必要的初始化。之前做的一些硬件的初始化是不夠的,因?yàn)闆](méi)必要在前面進(jìn)行全面的硬件初始化,現(xiàn)在要具體使用了就需要進(jìn)行具體的配置。

3.2 軟件實(shí)現(xiàn)的關(guān)鍵

    Bootloader是依賴于硬件而實(shí)現(xiàn)的,特別是在嵌入式系統(tǒng)中。不同的體系結(jié)構(gòu)需求的Bootloader是不同的;除了體系結(jié)構(gòu),Bootloader還依賴于具體的嵌入式板級(jí)設(shè)備的配置。所以根據(jù)不同的板級(jí)配置需要修改相應(yīng)的Bootloader?!?】我們使用的bootloader是Microsoft提供的和Wince配套的Eboot。下面幾點(diǎn)是在我們的硬件平臺(tái)上修改Eboot的關(guān)鍵。

3.2.1  配置內(nèi)存映射表

    WinCE嵌入式系統(tǒng)通過(guò)定義OEMAddressTable來(lái)定義虛擬內(nèi)存到物理內(nèi)存的映射表.這個(gè)表在我們的實(shí)現(xiàn)中是bootloader和WinCE系統(tǒng)公用的。【5】當(dāng)然這不是強(qiáng)制性的.我們需要根據(jù)硬件平臺(tái)的不同定制自己的映射表。在我們的設(shè)計(jì)中,這個(gè)表把4GB的物理空間映射到512M的內(nèi)核虛擬空間。

    表中的每一項(xiàng)由虛擬地址,物理地址,和映射的M數(shù)組成。其格式如下所示

OEMAddressTable

DCD SDRAM_BASE_C_VIRTUAL,      SDRAM_BASE_PHYSICAL,       64

DCD SDRAM1_BASE_C_VIRTUAL,     SDRAM1_BASE_PHYSICAL,      64   

DCD IM_STORAGE_BASE_C_VIRTUAL, IM_STORAGE_BASE_PHYSICAL,  1

.....

DCD 0x00000000,                     0x00000000,           0 

    第一項(xiàng)和第二項(xiàng)分別使64M的虛擬地址映射到64M物理地址,因?yàn)槲覀儾捎脙蓷l64M的SDRAM。第二項(xiàng)使1M的內(nèi)部?jī)?nèi)存的虛擬地址映射到物理地址,因?yàn)槲覀兪褂?M大小的內(nèi)部存儲(chǔ)。最后一項(xiàng)必須是零,因?yàn)榻㈨?yè)表的時(shí)候程序通過(guò)它來(lái)判斷是否結(jié)束映射過(guò)程。在配置MMU的時(shí)候會(huì)使用這個(gè)表來(lái)完成虛擬地址到物理地址的映射的頁(yè)表的建立。

3.2.2    為中斷模式設(shè)置分配堆棧

    我們知道ARM的堆棧是分模式的,在程序中要為每種要用到的模式分配堆棧。如果沒(méi)有為某種模式分配堆棧,那么在進(jìn)入這種模式之后系統(tǒng)不能繼續(xù)運(yùn)行了。系統(tǒng)首先運(yùn)行在SVC模式。在下載模式中,我們要通過(guò)USB ,網(wǎng)絡(luò),SD/MMC和CF接口等下載文件,而這些都要用到中斷。所以我們要為中斷模式分配堆棧,其代碼片段如下:

ldr      r2, =(Mode_IRQ :OR: NoIntsMask)                  ;中斷模式

msr      cpsr_c,r2

ldr sp,=(EBOOT_IRQ_STACK_TOP+SDRAM_VIR_C_EBOOT_PARTITION) ;分配堆棧

    在為中斷模式分配堆棧之后,還要進(jìn)行堆棧切換,使程序重新回到SVC模式運(yùn)行。

3.2.3    通過(guò)SD卡加載系統(tǒng)鏡像的實(shí)現(xiàn)

    當(dāng)用戶選取SD卡作為下載系統(tǒng)鏡像的目標(biāo)后,bootloader就進(jìn)入對(duì)SD處理的流程。首先通過(guò)SD卡檢測(cè)引腳判斷是否有SD卡插在插槽。如果有就要對(duì)SD控制的硬件進(jìn)行初始化,例如SD插槽電源使能,設(shè)置時(shí)鐘,設(shè)置功能GPIO等。

    其中需要說(shuō)明的是Intel PXA 272的時(shí)鐘管理比較復(fù)雜,它有兩個(gè)鎖相環(huán)路PLL:外圍設(shè)備鎖相環(huán)路,核心鎖相環(huán)路。其中外圍設(shè)備鎖相環(huán)路為外圍總線和USBC,I2S接口,SD接口等外圍設(shè)備提供時(shí)鐘。在時(shí)鐘控管理寄存器里,寄存器CKEN用來(lái)控制如USB,UART,SD等接口模塊的時(shí)鐘使能。【1】

    接著是對(duì)SD卡協(xié)議棧的軟件實(shí)現(xiàn).為了減少Bootloader中SD Host驅(qū)動(dòng)的復(fù)雜性,能夠易于調(diào)試,實(shí)現(xiàn)了總線驅(qū)動(dòng)模塊,客戶端驅(qū)動(dòng)模塊和FAT16文件系統(tǒng)模塊。所以在我們的實(shí)現(xiàn)中對(duì)SD卡上的文件系統(tǒng)要有一定的限制,必須是格式化成FAT16的文件系統(tǒng)才能被我們的bootloader識(shí)別。當(dāng)然在具體的實(shí)現(xiàn)中我們還可以使用另外的文件系統(tǒng)格式。其協(xié)議棧結(jié)構(gòu)如圖2所示:

圖2 SD卡協(xié)議棧結(jié)構(gòu)

3.3  實(shí)驗(yàn)結(jié)果

    我們使用一個(gè)22.7M的WinCE鏡像,在Bootloader中分別用USB,SD卡,TFTP,本地四種方式使用進(jìn)行加載啟動(dòng)測(cè)試,分別測(cè)試了50次。因?yàn)樵贐ootloader中SD Host的實(shí)現(xiàn)沒(méi)有使用DMA方式,為了進(jìn)行性能比較,我們又調(diào)用WinCE系統(tǒng)下使用DMA的SD Host驅(qū)動(dòng)加載同樣大小的文件進(jìn)行了50次測(cè)試。表2是我們測(cè)試的結(jié)果。表中數(shù)據(jù)為平均值。
                           表2  測(cè)試結(jié)果

 

SD卡

USB

TFTP

使用DMA的SD

本地啟動(dòng)

加載時(shí)間(秒)

51

96

53

28

3

    從表中數(shù)據(jù)可知,本地啟動(dòng)是最快的,這是不容置疑的。其次是通過(guò)SD卡啟動(dòng)。另外值得說(shuō)明的是,通過(guò)USB和TFTP下載啟動(dòng)在都需要的在通信的另一端軟件的支持和用戶的介入操作。而SD卡的數(shù)據(jù)通信傳輸完全由硬件實(shí)現(xiàn),這也是SD卡加載相對(duì)比較快的主要原因。而且使用TFTP下載還需要進(jìn)行相對(duì)復(fù)雜的配置。而在使用SD的加載中Bootloader會(huì)自動(dòng)去搜尋系統(tǒng)鏡像,自動(dòng)下載。這對(duì)用戶的使用來(lái)說(shuō)是方便快捷的。

    另外從使用DMA的SD 驅(qū)動(dòng)下載文件和Bootloader中的實(shí)現(xiàn)做比較,可以看出使用DMA后大大提高了使用SD下載的性能。當(dāng)然我們也可以在Bootloader中使用DMA方式來(lái)實(shí)現(xiàn)以提高性能。但這樣一來(lái)會(huì)大大增加Bootloader的復(fù)雜性。我們?cè)贐ootloader中實(shí)現(xiàn)使用SD做加載啟動(dòng)的主要目的是方便開(kāi)發(fā)和調(diào)試SD硬件模塊,而且實(shí)際使用中絕大部分會(huì)是本地啟動(dòng)。我們的實(shí)現(xiàn)中目的已經(jīng)達(dá)到,所以可以不考慮這些。

4  結(jié)束語(yǔ)

     Bootloader是操作系統(tǒng)和硬件的樞紐,相對(duì)于操作系統(tǒng)內(nèi)核來(lái)說(shuō)它是一個(gè)硬件抽象層。嵌入式領(lǐng)域中操作系統(tǒng)的移植關(guān)鍵在于Bootloader的移植和操作系統(tǒng)內(nèi)核硬件相關(guān)部分移植。所設(shè)計(jì)并實(shí)現(xiàn)的基于Intel PXA 272嵌入式處理器的從SD卡加載并啟動(dòng)WinCE系統(tǒng)的Bootloader能提高WinCE操作系統(tǒng)移植的穩(wěn)定性并加快WinCE操作系統(tǒng)移植的周期。

     本文作者創(chuàng)新點(diǎn): 在基于Intel PXA 272 處理器的bootloader中實(shí)現(xiàn)了SD卡的協(xié)議棧,并實(shí)現(xiàn)了從SD卡加載并啟動(dòng)WinCE嵌入式系統(tǒng)鏡像的功能.

參考文獻(xiàn):
【1】杜春雷.ARM體系結(jié)構(gòu)與編程.北京:清華大學(xué)出版社 ,2004-12
【2】Intel PXA 27X Processor Family Developer's Manual[M]. Intel, 2004-04
【3】Jörg Henkel, Xiaobo Sharon Hu, Shuvra S. Bhattacharyya. Taking on the Embedded System Design Challenge[J], IEEE Computer (4): 35-37 (2003)【4】SD-Memory Card Specifications /Part1 Physical Layer Specification Version 1.01[M]. SD Group, 2001
【5】陳向群王雷 馬洪兵.Windows.CE.NET 系統(tǒng)分析及實(shí)驗(yàn)教程.北京:機(jī)械工業(yè)出版社,2003
【6】萬(wàn)永波 張根寶 田澤 楊峰. 基于ARM的嵌入式系統(tǒng)Bootloader啟動(dòng)流程分析.微計(jì)算機(jī)信息. 2005年第11-2期.第一頁(yè)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營(yíng)業(yè)收入7.54億元至8.33億元,同比增長(zhǎng)60.24%至77.03%;歸母凈利潤(rùn)預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠(chéng)健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長(zhǎng)59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國(guó))在華深耕經(jīng)營(yíng)12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國(guó)進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開(kāi)幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過(guò)140,...

關(guān)鍵字: 中國(guó)智造 BSP 手機(jī) CAN

在桌面級(jí)處理器上,AMD多年來(lái)一直在多核上有優(yōu)勢(shì),不過(guò)12代酷睿開(kāi)始,Intel通過(guò)P、E核異構(gòu)實(shí)現(xiàn)了反超,13代酷睿做到了24核32線程,核心數(shù)已經(jīng)超過(guò)了銳龍7000的最大16核。在服務(wù)器處理器上,AMD優(yōu)勢(shì)更大,64...

關(guān)鍵字: AMD CPU Intel EUV

Intel Arc A7系列高端顯卡發(fā)布后,作為Intel顯卡首家核心合作伙伴,藍(lán)戟第一時(shí)間同步推出了非公版新品,Arc A770 Flux 8G OC、A750 Flux 8G OC、A750 Photon 8G OC...

關(guān)鍵字: Intel 顯卡 RC PHOTON

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉