68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁 新聞資訊 >> 新聞?lì)^條 >> 嵌入式之UBOOT
新聞資訊
NEWS INFORMATION

嵌入式之UBOOT

發(fā)布時(shí)間:2019-05-22

嵌入式Linux系統(tǒng)的結(jié)構(gòu)分為四個(gè)區(qū),如圖所示:

1.Bootloader區(qū)存放的是Bootloader,Coidre972開發(fā)板上使用的uboot,它負(fù)責(zé)嵌入式系統(tǒng)最初的硬件初始化、驅(qū)動(dòng)和內(nèi)核加載。
2、參數(shù)區(qū)不是必須的,通常存放了一些系統(tǒng)參數(shù),并且通常這個(gè)區(qū)是沒有文件系統(tǒng),參數(shù)以原始數(shù)據(jù)的格式來存放。
3、內(nèi)核鏡像區(qū)存放的Linux內(nèi)核壓縮鏡像,它被解壓后運(yùn)行于內(nèi)存,作為嵌入式設(shè)備的Linux操作系統(tǒng)。
4、文件系統(tǒng)區(qū)存放經(jīng)過壓縮的文件系統(tǒng),它會被Linux內(nèi)核解壓并掛載,并作為各種應(yīng)用程序、文件的主要載體。
這4個(gè)區(qū)都以二進(jìn)制數(shù)據(jù)的形式存放于嵌入式設(shè)備的Flash芯片上。由于參數(shù)區(qū)不下載,在實(shí)際的操作中只下載3個(gè)區(qū)即可:uboot、內(nèi)核、和文件系統(tǒng)。

 

U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項(xiàng)目。U-Boot的作用是系統(tǒng)引導(dǎo)。U-Boot從FADSROM、8xxROM、PPCBOOT逐步發(fā)展演化而來。其源碼目錄、編譯形式與Linux內(nèi)核很相似,事實(shí)上,不少U-Boot源碼就是根據(jù)相應(yīng)的Linux內(nèi)核源程序進(jìn)行簡化而形成的,尤其是一些設(shè)備的驅(qū)動(dòng)程序,這從U-Boot源碼的注釋中能體現(xiàn)這一點(diǎn)。U-

Boot不僅僅支持嵌入式Linux系統(tǒng)的引導(dǎo),它還支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android嵌入式操作系統(tǒng)。其目前要支持的目標(biāo)操作系統(tǒng)是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS, android。這是U-Boot中Universal的一層含義,另外一層含義則是U-Boot除了支持PowerPC系列的處理器外,還能支持MIPS、 x86、ARM、NIOS、XScale等諸多常用系列的處理器。這兩個(gè)特點(diǎn)正是U-Boot項(xiàng)目的開發(fā)目標(biāo),即支持盡可能多的嵌入式處理器嵌入式操作系統(tǒng)。就目前來看,U-Boot對PowerPC系列處理器支持最為豐富,對Linux的支持最完善。其它系列的處理器和操作系統(tǒng)基本是在2002年11 月PPCBOOT改名為U-Boot后逐步擴(kuò)充的。從PPCBOOT向U-Boot的順利過渡,很大程度上歸功于U-Boot的維護(hù)人德國DENX軟件工程中心Wolfgang Denk[以下簡稱W.D]本人精湛專業(yè)水平和執(zhí)著不懈的努力。當(dāng)前,U-Boot項(xiàng)目正在他的領(lǐng)軍之下,眾多有志于開放源碼BOOT LOADER移植工作的嵌入式開發(fā)人員正如火如荼地將各個(gè)不同系列嵌入式處理器的移植工作不斷展開和深入,以支持更多的嵌入式操作系統(tǒng)的裝載與引導(dǎo)。

選擇U-Boot的理由:
① 開放源碼;
② 支持多種嵌入式操作系統(tǒng)內(nèi)核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android;
③ 支持多個(gè)處理器系列,如PowerPC、ARM、x86、MIPS;
④ 較高的可靠性和穩(wěn)定性;
⑤ 高度靈活的功能設(shè)置,適合U-Boot調(diào)試、操作系統(tǒng)不同引導(dǎo)要求、產(chǎn)品發(fā)布等;
⑥ 豐富的設(shè)備驅(qū)動(dòng)源碼,如串口、以太網(wǎng)、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;
⑦ 較為豐富的開發(fā)調(diào)試文檔與強(qiáng)大的網(wǎng)絡(luò)技術(shù)支持;

目錄結(jié)構(gòu)

* board 目標(biāo)板相關(guān)文件,主要包含SDRAM、FLASH驅(qū)動(dòng);
* common 獨(dú)立于處理器體系結(jié)構(gòu)的通用代碼,如內(nèi)存大小探測與故障檢測;
* cpu 與處理器相關(guān)的文件。如mpc8xx子目錄下含串口、網(wǎng)口、LCD驅(qū)動(dòng)及中斷初始化等文件;
* driver 通用設(shè)備驅(qū)動(dòng),如CFI FLASH驅(qū)動(dòng)(目前對INTEL FLASH支持較好)
* doc U-Boot的說明文檔;
* examples可在U-Boot下運(yùn)行的示例程序;如hello_world.c,timer.c;
* include U-Boot頭文件;尤其configs子目錄下與目標(biāo)板相關(guān)的配置頭文件是移植過程中經(jīng)常要修改的文件;
* lib_xxx 處理器體系相關(guān)的文件,如lib_ppc, lib_arm目錄分別包含與PowerPC、ARM體系結(jié)構(gòu)相關(guān)的文件;
* net 與網(wǎng)絡(luò)功能相關(guān)的文件目錄,如bootp,nfs,tftp;
* post 上電自檢文件目錄。尚有待于進(jìn)一步完善;
* rtc RTC驅(qū)動(dòng)程序;
* tools 用于創(chuàng)建U-Boot S-RECORD和BIN鏡像文件的工具;
(以上關(guān)于目錄結(jié)構(gòu)的說明只適應(yīng)u-boot-2010.06之前版本。u-boot-2010.06之后目錄結(jié)構(gòu)改變
1.cpu與lib_arch合二為一,命名arch
2.增加include folder
3.分離出通用庫文件夾lib
U-Boot可支持的主要功能列表:
*系統(tǒng)引導(dǎo)支持NFS掛載、RAMDISK(壓縮或非壓縮)形式的根文件系統(tǒng);支持NFS掛載、從FLASH中引導(dǎo)壓縮或非壓縮系統(tǒng)內(nèi)核;
* 基本輔助功能強(qiáng)大的操作系統(tǒng)接口功能;可靈活設(shè)置、傳遞多個(gè)關(guān)鍵參數(shù)給操作系統(tǒng),適合系統(tǒng)在不同開發(fā)階段的調(diào)試要求與產(chǎn)品發(fā)布,尤以Linux支持最為強(qiáng)勁;支持目標(biāo)板環(huán)境參數(shù)多種存儲方式,如FLASH、NVRAM、EEPROM;
* CRC32校驗(yàn)可校驗(yàn)FLASH中內(nèi)核、RAMDISK鏡像文件是否完好;
設(shè)備驅(qū)動(dòng)串口、SDRAM、FLASH、以太網(wǎng)、LCD、NVRAM、EEPROM、鍵盤、USB、PCMCIA、PCI、RTC等驅(qū)動(dòng)支持;
上電自檢功能SDRAM、FLASH大小自動(dòng)檢測;SDRAM故障檢測;CPU型號;
* 特殊功能XIP內(nèi)核引導(dǎo);

工作模式

U-Boot的工作模式有啟動(dòng)加載模式和下載模式。啟動(dòng)加載模式是Bootloader的正常工作模式,嵌入式產(chǎn)品發(fā)布時(shí),Bootloader必須工作在這種模式下,Bootloader將嵌入式操作系統(tǒng)從FLASH中加載到SDRAM中運(yùn)行,整個(gè)過程是自動(dòng)的。下載模式就是Bootloader通過某些通信手段將內(nèi)核映像或根文件系統(tǒng)映像等從PC機(jī)中下載到目標(biāo)板的FLASH中。用戶可以利用Bootloader提供的一些命令接口來完成自己想要的操作

啟動(dòng)流程

大多數(shù)BootLoader都分為stage1和stage2兩大部分,U-boot也不例外。依賴于cpu體系結(jié)構(gòu)的代碼(如設(shè)備初始化代碼等)通常都放在stage1且可以用匯編語言來實(shí)現(xiàn),而stage2則通常用C語言來實(shí)現(xiàn),這樣可以實(shí)現(xiàn)復(fù)雜的功能,而且有更好的可讀性和移植性。
1、 stage1(start.s代碼結(jié)構(gòu))
U-boot的stage1代碼通常放在start.s文件中,它用匯編語言寫成,其主要代碼部分如下:
(1) 定義入口。由于一個(gè)可執(zhí)行的image必須有一個(gè)入口點(diǎn),并且只能有一個(gè)全局入口,通常這個(gè)入口放在rom(Flash)的0x0地址,因此,必須通知編譯器以使其知道這個(gè)入口,該工作可通過修改連接器腳本來完成。
(2)設(shè)置異常向量(exception vector)。
(3)設(shè)置CPU的速度、時(shí)鐘頻率及中斷控制寄存器
(4)初始化內(nèi)存控制器 。
(5)將rom中的程序復(fù)制到ram中。
(6)初始化堆棧 。
(7)轉(zhuǎn)到ram中執(zhí)行,該工作可使用指令ldrpc來完成。
2、 stage2(C語言代碼部分)
lib_arm/board.c中的start armboot是C語言開始的函數(shù),也是整個(gè)啟動(dòng)代碼中C語言的主函數(shù),同時(shí)還是整個(gè)u-boot(armboot)的主函數(shù),該函數(shù)主要完成如下操作:
(1)調(diào)用一系列的初始化函數(shù)。
(2)初始化flash設(shè)備。
(3)初始化系統(tǒng)內(nèi)存分配函數(shù)。
(4)如果目標(biāo)系統(tǒng)擁有nand設(shè)備,則初始化nand設(shè)備。
(5)如果目標(biāo)系統(tǒng)有顯示設(shè)備,則初始化該類設(shè)備。
(6)初始化相關(guān)網(wǎng)絡(luò)設(shè)備,填寫ip,c地址等。
(7)進(jìn)入命令循環(huán)(即整個(gè)boot的工作循環(huán)),接受用戶從串口輸入的命令,然后進(jìn)行相應(yīng)的工作。
 
 
 
聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

固原市| 惠来县| 广河县| 玉林市| 桂平市| 嵊泗县| 偏关县| 永靖县| 临清市| 邢台县| 宁陵县| 玛纳斯县| 吉首市| 措美县| 老河口市| 碌曲县| 河东区| 肥城市| 阳新县| 山丹县| 南昌县| 镇沅| 融水| 东丽区| 句容市| 上饶市| 于都县| 全南县| 洪泽县| 肇东市| 尚志市| 墨玉县| 大方县| 东兰县| 永嘉县| 灵台县| 尉氏县| 乐都县| 大余县| 神木县| 赤壁市|