1.U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項目。U-Boot的作用是系統引導。U-Boot從FADSROM、8xxROM、PPCBOOT逐步發展演化而來。其源碼目錄、編譯形式與Linux內核很相似,事實上,不少U-Boot源碼就是根據相應的Linu ...
1.U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項目。U-Boot的作用是系統引導。U-Boot從FADSROM、8xxROM、PPCBOOT逐步發展演化而來。其源碼目錄、編譯形式與Linux內核很相似,事實上,不少U-Boot源碼就是根據相應的Linux內核源程式進行簡化而形成的,尤其是一些設備的驅動程式,這從U-Boot源碼的註釋中能體現這一點。
2.U-Boot不僅僅支持嵌入式Linux系統的引導,它還支持NetBS
D, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android嵌入式操作系統。其目前要支持的目標操作系統是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等諸多常用系列的處理器。這兩個特點正是U-Boot項目的開發目標,即支持儘可能多的嵌入式處理器和嵌入式操作系統。就目前來看,U-Boot對PowerPC系列處理器支持最為豐富,對Linux的支持最完善。
3.優勢:
選擇U-Boot的理由: ① 開放源碼; ② 支持多種嵌入式操作系統內核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android; ③ 支持多個處理器系列,如PowerPC、ARM、x86、MIPS; ④ 較高的可靠性和穩定性; ⑤ 高度靈活的功能設置,適合U-Boot調試、操作系統不同引導要求、產品發佈等; ⑥ 豐富的設備驅動源碼,如串口、乙太網、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等; ⑦ 較為豐富的開發調試文檔與強大的網路技術支持; 4.目錄結構: * board 目標板相關文件,主要包含SDRAM、FLASH驅動; * common 獨立於處理器體繫結構的通用代碼,如記憶體大小探測與故障檢測; * cpu 與處理器相關的文件。如mpc8xx子目錄下含串口、網口、LCD驅動及中斷初始化等文件; * driver 通用設備驅動,如CFI FLASH驅動(目前對INTEL FLASH支持較好) * doc U-Boot的說明文檔; * examples可在U-Boot下運行的示常式序;如hello_world.c,timer.c; * include U-Boot頭文件;尤其configs子目錄下與目標板相關的配置頭文件是移植過程中經常要修改的文件; * lib_xxx 處理器體系相關的文件,如lib_ppc, lib_arm目錄分別包含與PowerPC、ARM體繫結構相關的文件; * net 與網路功能相關的文件目錄,如bootp,nfs,tftp; * post 上電自檢文件目錄。尚有待於進一步完善; * rtc RTC驅動程式; * tools 用於創建U-Boot S-RECORD和BIN鏡像文件的工具; 5.工作模式 U-Boot的工作模式有啟動載入模式和下載模式。啟動載入模式是Bootloader的正常工作模式,嵌入式產品發佈時,Bootloader必須工作在這種模式下,Bootloader將嵌入式操作系統從FLASH中載入到SDRAM中運行,整個過程是自動的。下載模式就是Bootloader通過某些通信手段將內核映像或根文件系統映像等從PC機中下載到目標板的FLASH中。用戶可以利用Bootloader提供的一些命令介面來完成自己想要的操作。 下麵分析下makefile文件