999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于BF531的數字存儲示波器BootLoader設計

2010-07-14 07:56:56湯雅妃
中國測試 2010年2期
關鍵詞:程序系統

湯雅妃

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

1 引 言

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

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

2 BF531 BootLoader原理

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

圖1 LDR文件存儲格式

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

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

3 數字存儲示波器啟動裝載及在線升級的實現原理

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

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

圖2 數字存儲示波器BootLoader程序流程圖

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

4 結束語

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

[1]李蘭英,劉 洋,姜秀麗.嵌入式系統Bootloader的設計與實現[J].電腦學習,2006(6):35-36.

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

[3]邵新顏,蔡梅琳.在Bootloader中實現嵌入式系統自動升級[J].單片機與嵌入式系統應用,2006(11):33-34.

[4]陳 峰.Blackfin系列DSP原理與系統設計[M].北京:電子工業出版社,2004:120-255.

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

猜你喜歡
程序系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
半沸制皂系統(下)
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
主站蜘蛛池模板: 欧美在线天堂| 亚洲伊人久久精品影院| 人妻无码中文字幕第一区| 亚洲无线国产观看| 久久综合亚洲色一区二区三区| 中文字幕亚洲精品2页| 沈阳少妇高潮在线| 日韩精品一区二区三区大桥未久| 国产亚洲欧美日韩在线观看一区二区 | 精品無碼一區在線觀看 | 亚洲,国产,日韩,综合一区 | a毛片免费在线观看| 欧美在线观看不卡| 91免费国产在线观看尤物| 国产精品视频a| a欧美在线| 99久久精品免费视频| 992Tv视频国产精品| 国产精品毛片一区视频播| 婷婷午夜影院| 久青草免费在线视频| 成人年鲁鲁在线观看视频| 欧美亚洲综合免费精品高清在线观看 | 国产精品高清国产三级囯产AV | 无码日韩精品91超碰| 91九色最新地址| 久久五月视频| 国产人成乱码视频免费观看| 亚洲av无码人妻| 十八禁美女裸体网站| 真实国产乱子伦视频| 国产黄网站在线观看| 青青草国产一区二区三区| 亚洲视频免费播放| 国产日韩丝袜一二三区| 午夜综合网| 老司机精品一区在线视频| 精品国产中文一级毛片在线看 | 蜜臀AV在线播放| 国产白丝av| 欧美另类视频一区二区三区| 久久综合五月婷婷| 四虎精品国产永久在线观看| 伊人色天堂| 国产亚洲精久久久久久久91| 91精品福利自产拍在线观看| 亚洲AV无码乱码在线观看代蜜桃| 高清无码不卡视频| 国产精品毛片一区| 91最新精品视频发布页| 97精品国产高清久久久久蜜芽 | 在线观看亚洲精品福利片| 欧美日本在线观看| 99re这里只有国产中文精品国产精品| 黄色不卡视频| 动漫精品啪啪一区二区三区| 亚洲精品国产成人7777| www成人国产在线观看网站| 国内精品免费| 激情综合网激情综合| 免费女人18毛片a级毛片视频| 欧美一级色视频| 最新国产你懂的在线网址| 热九九精品| 久久久久亚洲av成人网人人软件| 久热中文字幕在线| 国产导航在线| 欧美中文字幕在线视频| a毛片在线播放| 国产91熟女高潮一区二区| 国产在线视频导航| 亚洲视频四区| 青草91视频免费观看| 人妻精品全国免费视频| 国产69精品久久久久妇女| 亚洲av无码人妻| 亚洲第一成年网| 欧美成人在线免费| 国产福利大秀91| 99精品视频九九精品| 久久精品嫩草研究院| 国外欧美一区另类中文字幕|