音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

基于S3C2410A的U-Boot移植研究

出處:現(xiàn)代電子技術(shù) 發(fā)布于:2011-09-05 08:11:41

  BootLoader是嵌入式系統(tǒng)軟件開發(fā)的個環(huán)節(jié),它緊密地將軟硬件銜接在一起,對于一個嵌入式設(shè)備后續(xù)的軟件開發(fā)至關(guān)重要。BootLoader還涉及到許多硬件相關(guān)的知識,對于普通的嵌入式開發(fā)板,它又是不可跳過的步驟,所以做好它的移植工作是必須的,對于后續(xù)的開發(fā)工作也是有益的。U-Boot是當前比較流行、功能強大的BootLoader,它操作簡便,可以支持多種體系結(jié)構(gòu)的處理器,同時提供了完備的命令體系。S3C2410是三星公司一款基ARM920T的嵌入式通用處理器。

  1 嵌入式系統(tǒng)的軟件組成

  1.1 系統(tǒng)的軟件組成

  嵌入式的軟件系統(tǒng)主要由Bootloader、操作系統(tǒng)、文件系統(tǒng)、應(yīng)用程序等組成。其中,Bootloader是介于硬件和操作系統(tǒng)之間的一層,其作用就好像PC機中的BIOS。對于一個嵌入式系統(tǒng),通常BootLoader是依賴于硬件而實現(xiàn)的。對于不同類型的嵌入式芯片、不同的操作系統(tǒng)和外圍接口都需要重新移植、修改和編譯Bootloader。

  1.2 U-Boot分析

  嵌入式Linux系統(tǒng)中常用的Bootloader引導(dǎo)程序有U-Boot,redboot,blob和vivi等,其中U-Boot遵循GPL條款的開放源碼項目,功能為強大;U-Boot對PowerPC系列處理器支持豐富,同時還支持MIPS,x86,ARM,Nios,XScale等諸多常用系列的處理器。

  2 U-Boot的啟動分析

  Stage 1的代碼在CPU/arm920t/start.s中定義,它包括從系統(tǒng)上電后在0x00000000地址開始執(zhí)行的部分。Stage 2的起始地址是在Stage1代碼中指定的。被復(fù)制到SDRAM后,就從階段跳到這個入口地址,開始執(zhí)行剩余部分代碼。第二階段主要是對內(nèi)存的分配,對NAND FLASH以及對外圍設(shè)備的初始化,其代碼在lib-arm/board.C中。啟動的流程分析如圖1所示。

  (1)跳轉(zhuǎn)到C語言程序后,先定義初始化函數(shù)表,程序在lib-arm/board.e中,如下所示:

  (2)初始化FLASH設(shè)備和顯示FLASH設(shè)備信息;

  (3)初始化系統(tǒng)內(nèi)存分配函數(shù);

  (4)如果目標系統(tǒng)擁有NAND設(shè)備,則初始化NAND設(shè)備;

  (5)初始化顯示設(shè)備;

  (6)初始化網(wǎng)絡(luò)設(shè)備,填寫IP地址、MAC地址等信息;

  (7)開啟中斷處理;

  (8)進入命令循環(huán),接收用戶從串口的命令輸入。

  3 U-Boot的移植方法

  本文選用交叉編譯環(huán)境arm-linux-gcc-2.95.3,選用U-Boot-1.1.4版本作為移植平臺,選用的是smdk2410的配置。

  3.1 修改cpu/arm920t/start.S文件

  Start.s是采用匯編語言編寫的U-Boot程序入口代碼,完成對底層硬件的初始化,其中有一個很重要的功能是從NAND FLASH中把Stage 2階段的代碼復(fù)制到SDRAM中。在此階段,涉及到對NANDFLASH的讀操作,在U-Boot中,沒有對NANDFLASH讀操作的驅(qū)動,采用以下方法實現(xiàn):

程序

  通過調(diào)用board/smdk2410/nand_read.C中的nand_read_11函數(shù)將Stage 2階段的代碼復(fù)制到ram中。

  3.2 修改board/smdk2410目錄下文件

  (1)增加對NANDFLASH的讀驅(qū)動nand_read.c

程序

  (2)在smdk2410.C文件中添加對NANDFLASH初始化的程序

  在此主要是對主板的GPIO的一些設(shè)置,并加上對NANDFLASH初始化程序。

程序

程序

  (3)在Makefile文件中添加nand_read.C文件的編譯

  OBJS:=smdk24 10.o FLASH.o nand_read.o

  3.3 在include文件中設(shè)置NAND FLASH硬件參數(shù)

  在/linux/mtd/nand_ids.h中設(shè)置參數(shù):


程序

  3.4 編譯與運行

  進入U-Boot主目錄,重新編譯U-Boot代碼,運行命令:

  (1)查看交叉編譯器版本號

  ARM-linux-gcc-v

  (2)清除生成的連接

  Make distclean

  (3)編譯make smdk2410_config

  (4)make CROSS-COMPILE=arm-linux-編譯成功后,生成三個文件:

  u-boot:ELF格式的文件,可被大多數(shù)Debug程序識別。

  u-boot.bin:二進制bin文件,純碎的U-Boot二進制執(zhí)行代碼,不保存ELF格式與調(diào)試信息。

  u-boot.srec:Motorola S-Record格式,可以通過串口到開發(fā)板中。

  將會得到的u-boot.bin文件借助于FLASH芯片燒寫工具,通過JTAG口到目標板以后,檢查U-Boot能否正常工作。若能從串口輸出正確的啟動信息,則表明移植基本成功。

  4 結(jié) 語

  通過分析U-Boot的代碼結(jié)構(gòu)和啟動過程,并針對開發(fā)板系統(tǒng)的硬件資源,實現(xiàn)了U-Boot的移植,并且能夠引導(dǎo)嵌入式Linux內(nèi)核和文件系統(tǒng),為今后進一步開發(fā)奠定了堅實的基礎(chǔ)。


  

參考文獻:

[1]. ARM920T datasheet http://m.58mhw.cn/datasheet/ARM920T_139814.html.


版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!