国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > Bootloader在AT91RM9200系統中的實現

Bootloader在AT91RM9200系統中的實現

作者: 時間:2012-05-21 來源:網絡 收藏

基于ARM920T核的芯片以其豐富的內部外設,高達200MIPS的處理速度,以及它溫度范圍寬的特點,在工業(yè)控制領域嵌入式開發(fā)中大有應用的空間。Bootloader是用來引導操作系統的引導裝載程序,用來初始化硬件設備、確立內存空間的映射,為最終引導操作系統內核提供一個合適的軟硬件環(huán)境。它嚴重地依賴硬件環(huán)境,往往因使用的芯片、外部設備、操作系統的內核配置而不同,它的實現是嵌入式開發(fā)中必不可少的環(huán)節(jié)。

實現適合本系統的引導程序方法有兩種:一是自行開發(fā)的,其特點是可以使這個程序在滿足要求的基礎上占用盡量的小的空間,但是工作量較大,開發(fā)周期延長,除了一些特殊要求的情況,工程開發(fā)中一般不會自行編寫;二是使用已有的代碼進行移植,特點是工作量小,有vivi、U- boot、Blob等很多開源的可用,這些程序支持的PowerPC,ARM,MIPS等多種平臺,開發(fā)者只需做相對較少的移植工作就可以,出于工程開發(fā)角度,往往采取這種方式。

筆者開發(fā)了基于的雷達監(jiān)控分機測試板,本文將以此嵌入式板為例,介紹用GNU工具開發(fā)ARM程序的方法,探討如何利用這種方法編寫自己的,并詳細地介紹了的移植步驟和要點。

1硬件特點

1.1處理器啟動特點

AT91系列處理器有片內和片外兩種啟動模式[1],支持地址的重映射,在ARM芯片中具有代表性。

AT91RM9200內部集成有16K字節(jié)的SRAM和128K字節(jié)的ROM。若是BMS引腳為低電平則從NCS0所接的外部的Flash芯片啟動。若BMS引腳為高電平則從內部ROM啟動,ROM中固化了FirmWare,這段固化的程序先后自動檢測SPI連接的DataFlash,TWI連接的EEPROM的,EBI連接的8位的并行Flash芯片是否有合法的程序,如果有則放入SRAM中執(zhí)行,如果沒有檢測到,便初始化調試串口和USB的設備端口,分別支持Xmodem和DFU協議的文件下載,可以將用戶傳送的文件放入內部SRAM中[2]。

由于本芯片支持地址Remap(地址重映射),在下載完后將SRAM的地址由0x0020_0000重新映射到0x0000_0000,將內部ROM地址由0x0000_0000映射到0x0010_0000,然后從地址0x0000_0000的內部SRAM開始執(zhí)行。

1.2 Bootloader的下載和燒寫

很多ARM芯片同AT91系列芯片一樣,支持Remap,這就為使用串口下載程序和對Flash的燒寫提供了方便。這種芯片在使用 bootloader之前一般需要兩個前期的引導程序。本系統中使用了loader.bin和boot.bin兩個程序:其中l(wèi)oader.bin運行于內部RAM,用來向SDRAM下載程序并運行;boot.bin固化在flash的起始地址下(如圖1所示)用來解壓引導Flash中的程序。

設置跳線,使系統上電后從內部啟動,通過串口下載loader.bin程序,該程序的大小一定要小于16K字節(jié),即內部SRAM的容量。如上文所述,下載后會運行它,由這個程序負責通過Xmodem協議將u-boot.bin程序下載到SDRAM中并運行,開發(fā)者再通過的cp命令將 boot.bin和u-boot.bin的壓縮文件u-boot.gz燒寫入Flash,下次從外部啟動時就可以直接啟動U-boot了。其中 boot.bin,實現將u-boot.gz的解壓裝入SDRAM并且執(zhí)行。

ATMEL公司提供了針對他們出的該款芯片開發(fā)板的boot和loader的代碼,可以從網上下載到,開發(fā)者可以對比一下參數設置,如果必要的話要對一些參數進行修改。

下面是這兩個程序中比較關鍵的參數。loader當中的關鍵參數是AT91C_UBOOT_BASE_ADDRESS,用Xmodem協議接收的文件將存放在這個地址下。它的宏定義在main.h中:

#define AT91C_UBOOT_BASE_ADDRESS 0x21F00000 。

Boot中的關鍵的參數是:

#define SRC 0x10010000

/*在flash中的u-boot.gz的地址*/

#define DST 0x21F00000

/*uboot.gz解壓后要copy到SDRAM中的地址*/

#define LEN 0x020000

/*解壓后的大小(字節(jié))*/

這些參數根據具體情況可能需要修改,特別是SRC要和U-boot中的相關設置一致,具體參數將在3中介紹。圖1是Flash存儲器的空間分配情況,分別列出了各個地址段的用途。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉