亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于BF531的數(shù)字存儲(chǔ)示波器BootLoader設(shè)計(jì)

        2010-07-14 07:56:56湯雅妃
        中國測(cè)試 2010年2期
        關(guān)鍵詞:示波器存儲(chǔ)器字節(jié)

        湯雅妃

        (電子科技大學(xué)自動(dòng)化工程學(xué)院,四川 成都 610054)

        1 引 言

        在一些脫機(jī)運(yùn)行的系統(tǒng)中,系統(tǒng)上電后必須先初始化某些硬件,然后從非易失性存儲(chǔ)器中將程序移植到系統(tǒng)內(nèi)部高速存儲(chǔ)器中執(zhí)行,實(shí)現(xiàn)這部分功能的程序塊叫BootLoader。它的作用是實(shí)現(xiàn)整個(gè)系統(tǒng)的啟動(dòng)任務(wù)裝載,包括初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便最終系統(tǒng)正常運(yùn)行[1]。大多數(shù) BootLoader都包含兩種不同的操作模式(Operation Mode),啟動(dòng)裝載模式和下載模式[2]。兩者的區(qū)別在于前者是BootLoader從目標(biāo)機(jī)上的固態(tài)存儲(chǔ)設(shè)備上將程序裝載到CPU內(nèi)部RAM中運(yùn)行,它屬于正常的工作模式,一般應(yīng)用于產(chǎn)品的發(fā)布,而后者是目標(biāo)機(jī)上的BootLoader從主機(jī)下載文件并寫入固態(tài)存儲(chǔ)設(shè)備,應(yīng)用于產(chǎn)品的升級(jí)[3]。

        一般的嵌入式操作系統(tǒng)都有自帶的啟動(dòng)裝載模塊如基于Linux的U-Boot,而在沒有操作系統(tǒng)的系統(tǒng)中就需要自己編寫B(tài)ootLoader程序。該設(shè)計(jì)用于無操作系統(tǒng)數(shù)字存儲(chǔ)示波器的啟動(dòng)裝載。BootLoader程序通過檢測(cè)系統(tǒng)特定標(biāo)志位來實(shí)現(xiàn)不同的裝載模式。正常模式下BootLoader初始化硬件,裝載Flash中的程序到SDRAM中并啟動(dòng)系統(tǒng)。當(dāng)用戶選擇在線升級(jí)時(shí)系統(tǒng)將更改特定標(biāo)志位的值,重啟系統(tǒng)后BootLoader即進(jìn)入下載模式,通過USB讀入正確的更新文件并寫入Flash,同時(shí)BootLoader更改程序指針,重啟系統(tǒng)后將從新地址啟動(dòng)裝載程序。該文提出了一種存儲(chǔ)BootLoader文件的新思路,減少了Flash的燒寫時(shí)間并節(jié)約了Flash的空間。

        2 BF531 BootLoader原理

        如圖1所示,系統(tǒng)程序在編譯之后會(huì)生成一個(gè)以.dxe為后綴的可執(zhí)行文件,然后由Elfloader.exe將Dxe文件擦除,按照Ldf規(guī)則生成以.ldr為后綴的可裝載文件。Ldr文件一般包括一個(gè)Init Block和N個(gè)其他的Block。需要Init Block的主要原因是為了初始化硬件。每個(gè)Block前面都有一個(gè)大小為10個(gè)字節(jié)的Header,包括32位的地址Address,32位的文件長度信息Count,還有16位的標(biāo)志信息Flag,啟動(dòng)裝載的第一階段需要用到這些信息。其中Address指定要裝載程序的目的地址,Count指定拷貝的文件長度(以字節(jié)為單位),F(xiàn)lag指定BootLoader的運(yùn)行方式。LDR文件存儲(chǔ)格式見圖1。

        圖1 LDR文件存儲(chǔ)格式

        BootLoader一般固化在系統(tǒng)CPU內(nèi)部非易失存儲(chǔ)器中,在此設(shè)計(jì)中它存放在BF531片內(nèi)ROM中,起始地址為0XEF000000。上電后BootLoader首先接管系統(tǒng),進(jìn)行一些最基本的上電自檢后,BootLoader將對(duì)系統(tǒng)的硬件如UART、GPIO、SDRAM進(jìn)行初始化;如果系統(tǒng)的程序不是存放在目標(biāo)機(jī)的ROM或者Flash中的,而是存放在磁盤、U盤、SD卡、CF卡中的,BootLoader還必須初始化好這些硬件設(shè)備。接下來,BootLoader需要將系統(tǒng)的程序拷貝到主存儲(chǔ)器的特定地址,最后BootLoader將控制權(quán)交給系統(tǒng),由系統(tǒng)完成接下來的工作。

        BF531 BootLoader步驟如下:第一階段,系統(tǒng)上電后片上引導(dǎo)存儲(chǔ)器從復(fù)位中斷復(fù)位程序返回并設(shè)置為管理員模式(Supervisor Mode)(在Bypass Mode下屏蔽此步驟),然后系統(tǒng)根據(jù)系統(tǒng)復(fù)位配置寄存器(SYSCR)第四位的值判斷是否為軟件復(fù)位,如果是軟件復(fù)位,系統(tǒng)會(huì)屏蔽掉所有啟動(dòng)裝載操作,程序指針跳轉(zhuǎn)到0XFFA08000(L1存儲(chǔ)器的起始地址)執(zhí)行,否則程序會(huì)繼續(xù)BootLoader的流程,根據(jù)BMODE狀態(tài)選擇用戶設(shè)置的一種BootLoader方式,從外部存儲(chǔ)器0x.0地址段讀取前4個(gè)字節(jié)(這4個(gè)字節(jié)包含有需要導(dǎo)入程序的字節(jié)長度信息N),然后導(dǎo)入這N字節(jié)程序到以0xF000 0000開始的L2存儲(chǔ)器,最后跳轉(zhuǎn)到L2存儲(chǔ)器開始執(zhí)行。如果程序分多段存放在L1存儲(chǔ)器或L2存儲(chǔ)器或者SDRAM中就必須有第二階段裝載,首先復(fù)位后片上引導(dǎo)ROM會(huì)下載N字節(jié)(第五階段裝載程序)程序到以0x F000 0000起始的外部L2存儲(chǔ)器中,然后第二階段裝載程序自我復(fù)制到L2存儲(chǔ)器的底部,第二階段的裝載程序引導(dǎo)應(yīng)用程序或數(shù)據(jù)到BF531的其他存儲(chǔ)器,最后,引導(dǎo)后第二階段裝載程序跳轉(zhuǎn)到L2存儲(chǔ)器的起始處開始執(zhí)行應(yīng)用程序。

        3 數(shù)字存儲(chǔ)示波器啟動(dòng)裝載及在線升級(jí)的實(shí)現(xiàn)原理

        設(shè)計(jì)采用兩個(gè)不同的工程來實(shí)現(xiàn)數(shù)字存儲(chǔ)示波器系統(tǒng)的BootLoader及基本測(cè)量功能。工程1為BootLoader程序,用來完成程序裝載及更新,存放在起始地址為0X20000000的存儲(chǔ)區(qū);工程2為示波器程序,用來實(shí)現(xiàn)示波器系統(tǒng)功能,存放在起始地址為0X20010000的存儲(chǔ)區(qū)。ROM里面的BootLoader程序是利用MDMA順序地讀取Flash中的數(shù)據(jù),然后根據(jù)Header文件,將數(shù)據(jù)搬移到指定的存取區(qū)域。由于兩個(gè)工程存放在不同的存儲(chǔ)區(qū),因此在讀完和調(diào)用了Init Block后,BootLoader需要跳轉(zhuǎn)到工程1或2的存儲(chǔ)地址去讀取余下的Block[4]。

        系統(tǒng)上電后BootLoader會(huì)檢測(cè)特定標(biāo)志位以選擇不同的裝載模式,這個(gè)標(biāo)志位根據(jù)用戶的操作設(shè)置不同的值。正常模式下BootLoader讀取BMODE選擇用戶設(shè)置的BootLoader方式(該系統(tǒng)中BMODE設(shè)置為從16位Flash裝載程序運(yùn)行),然后直接初始化,GPIO,SDRAM,把Flash中的程序移植到SDRAM中指定地址段,程序指針跳轉(zhuǎn)到此地址開始執(zhí)行。當(dāng)用戶選擇在線升級(jí)時(shí),特定標(biāo)志位的值會(huì)改變,用戶插入U(xiǎn)盤后重啟系統(tǒng),BootLoader檢測(cè)到該標(biāo)志位不是默認(rèn)值后就會(huì)轉(zhuǎn)入在線升級(jí)模式,對(duì)U盤里的文件進(jìn)行一系列檢測(cè)判斷[5],將合適的更新文件寫入Flash中同時(shí)更改BootLoader裝載模式標(biāo)志位,重新之后又回復(fù)到正常裝載模式。其程序流程見圖2。

        圖2 數(shù)字存儲(chǔ)示波器BootLoader程序流程圖

        Init Block程序前面省略了PLL、SDRAM的初始化程序,最后的一段代碼則是對(duì)Init Block程序的修改,讓它符合實(shí)現(xiàn)程序更新的要求。經(jīng)過詳細(xì)分析ROM里面BootLoader的匯編代碼,發(fā)現(xiàn)MDMA讀取數(shù)據(jù)的源地址是由R0寄存器來控制的,所以需要在Init Bloack中改變R0的值,調(diào)用完成返回后,R0便會(huì)修改MDMA的源地址,使它指向正確的地址。需要指出的是,在Init匯編代碼的開始和結(jié)尾需要保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng),否則無法在調(diào)用后正確修改R0的值。

        4 結(jié)束語

        BootLoader是嵌入式系統(tǒng)程序的重要組成部分,用以實(shí)現(xiàn)硬件初始化并引導(dǎo)系統(tǒng)程序。該文分析了嵌入式系統(tǒng)BootLoader兩種模式的區(qū)別和實(shí)現(xiàn)原理,介紹了ADI公司BF531的BootLoader流程,在此基礎(chǔ)上提出了基于BF531的無操作系統(tǒng)數(shù)字存儲(chǔ)示波器的BootLoader設(shè)計(jì)。該設(shè)計(jì)將系統(tǒng)程序分為兩部分,初始化部分放在BootLoader中,這樣更新時(shí)只需要更新數(shù)字示波器的程序,縮短了更新時(shí)間,節(jié)省了Flash空間。經(jīng)測(cè)試,此設(shè)計(jì)能實(shí)現(xiàn)數(shù)字示波器系統(tǒng)的正常啟動(dòng)裝載模式和在線升級(jí),且用戶界面友好,功能可靠。

        [1]李蘭英,劉 洋,姜秀麗.嵌入式系統(tǒng)Bootloader的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦學(xué)習(xí),2006(6):35-36.

        [2]聶俊航,邱 輝.Bootloader的分析和設(shè)計(jì)[J].微處理機(jī),2006,27(4):82-84.

        [3]邵新顏,蔡梅琳.在Bootloader中實(shí)現(xiàn)嵌入式系統(tǒng)自動(dòng)升級(jí)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006(11):33-34.

        [4]陳 峰.Blackfin系列DSP原理與系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004:120-255.

        [5]胡曉軍,張愛成.USB接口開發(fā)技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005:117-132.

        猜你喜歡
        示波器存儲(chǔ)器字節(jié)
        No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
        靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
        No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
        一款教學(xué)示波器的Y通道設(shè)計(jì)與實(shí)現(xiàn)
        電子制作(2017年13期)2017-12-15 09:00:08
        簡談MC7字節(jié)碼
        可攜帶式虛擬雙蹤示波器
        電子制作(2017年20期)2017-04-26 06:57:46
        存儲(chǔ)器——安格爾(墨西哥)▲
        基于Nand Flash的高速存儲(chǔ)器結(jié)構(gòu)設(shè)計(jì)
        人類進(jìn)入“澤它時(shí)代”
        高速光學(xué)示波器
        物理(2009年1期)2009-03-24 04:31:40
        亚洲国产中文字幕精品| AV无码一区二区三区国产| 国产偷2018在线观看午夜| 人妻少妇精品视频中文字幕国语| 亚洲av日韩精品一区二区| 一区二区三区日韩精品视频| 无码人妻久久一区二区三区蜜桃| 狠狠色狠狠色综合| 色综合自拍| 五月激情狠狠开心五月| 国产午夜福利在线观看中文字幕| 日韩av一区二区三区激情在线 | 日本精品一区二区三区在线观看| 18禁在线永久免费观看| 超薄丝袜足j好爽在线观看| 国产激情久久99久久| 少妇人妻字幕一区二区| av素人中文字幕在线观看| 中文字幕一区二区人妻性色| 日韩精品大片在线观看| 亚洲AV秘 无码一区二区在线| 国产在线一区二区三区不卡| 九九在线中文字幕无码| 欧美极品jizzhd欧美| 亚洲av鲁丝一区二区三区| 国产成人AⅤ| 亚洲av综合色区一区二区| 曰欧一片内射vα在线影院| 免费人成年小说在线观看| 精品国产爱在线观看| 亚洲av老熟女一区二区三区 | 一区二区精品国产亚洲| 亚洲成人色区| 久久国产成人亚洲精品影院老金| 国产人妖在线免费观看| 伊人久久大香线蕉av五月| 一品二品三品中文字幕| 久久国产精品不只是精品 | 二区三区亚洲精品国产| 色婷婷精品久久二区二区蜜臀av| 99久久精品免费观看国产|