導航:首頁 > 文件教程 > uboot配置文件

uboot配置文件

發布時間:2024-07-17 13:18:49

A. uboot是什麼

U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的開放源碼項目。U-Boot的作用是系統引導。U-Boot從FADSROM、8xxROM、PPCBOOT逐步發展演化而內來。其源碼目錄、編譯形式容與linux內核很相似,事實上,不少U-Boot源碼就是根據相應的Linux內核源程序進行簡化而形成的,尤其是一些設備的驅動程序,這從U-Boot源碼的注釋中能體現這一點。

拓展資料:

選擇U-Boot的理由:

① 開放源碼;

② 支持多種嵌入式操作系統內核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android;

③ 支持多個處理器系列,如PowerPC、ARM、x86、MIPS;

④ 較高的可靠性和穩定性;

⑤ 高度靈活的功能設置,適合U-Boot調試、操作系統不同引導要求、產品發布等;

⑥ 豐富的設備驅動源碼,如串口、乙太網、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;

⑦ 較為豐富的開發調試文檔與強大的網路技術支持。

B. uboot涓閰嶇疆64浣嶇墿鐞嗗湴鍧

璇烽棶浣犳槸鎯抽棶u-boot涓鎬庝箞閰嶇疆64浣嶇墿鐞嗗湴鍧鍚楋紵u-boot涓閰嶇疆64浣嶇墿鐞嗗湴鍧錛岄渶瑕佽繘琛屼互涓嬫ラわ細
1銆乽-boot涓鍚鐢64浣嶆敮鎸侊紝榪欏彲浠ラ氳繃鍦╱-boot鐨勯厤緗鏂囦歡涓璁劇疆CONFIG_SYS_SUPPORT_64BIT_DATA涓1鏉ュ疄鐜般
2銆佸湪u-boot鐨勯厤緗鏂囦歡涓瀹氫箟64浣嶇墿鐞嗗湴鍧鐨勫畯錛屼緥濡傦細#definePHYS_64BIT銆
3銆佸湪u-boot涓浣跨敤64浣嶇墿鐞嗗湴鍧鐨勮懼囬┍鍔ㄧ▼搴忥紝闇瑕佸皢64浣嶇墿鐞嗗湴鍧杞鎹涓32浣嶈櫄鎷熷湴鍧榪涜屾搷浣溿傝繖鍙浠ラ氳繃浣跨敤u-boot鎻愪緵鐨勫嚱鏁皃hys_to_virt()鍜寁irt_to_phys()鏉ュ疄鐜般
4銆佸湪u-boot涓浣跨敤64浣嶇墿鐞嗗湴鍧鐨勫簲鐢ㄧ▼搴忎腑錛岄渶瑕佷嬌鐢ㄦ棤絎﹀彿闀挎暣鍨嬶紙unsignedlonglong錛夌被鍨嬫潵琛ㄧず64浣嶇墿鐞嗗湴鍧銆

C. uboot怎麼查找ddr的配置文件

如果因為uboot或者內核有錯誤而導致啟動失敗,出現卡死狀態等,那麼需要判斷問題是出在uboot階段還是linux階段,這可以通過觀察啟動過程中的debug信息來判斷,

如果uboot出現問題是比較麻煩的,因為這需要有一個裝有正確的uboot/bootloader的flash晶元作為引導,

將系統重新引導至uboot界面中,之後再重新燒寫uboot到系統本身的flash中,進而燒寫內核(如有必要)。

一,重新燒寫uboot

首先需要一個特定的PCLL(flash晶元),這個PCLL上固化了一個正確的bootloader, 通過這個bootloader可以成功進入bootloader界面, 在此條件下重新燒寫uboot/bootloader。

使用此PLCC的步驟是:

在系統下電情況下, 使用跳線/撥碼開關等將此系統的啟動方式變從外部flash(即PLCC)引導,

之後將系統上電, 這時會從PLCC 啟動。

啟動成功後,進入uboot界面, 即命令行顯示Dream 5220# #(類似命令行提示符)

此時將版卡的啟動方式變為 從 nor flash 啟動。 之後重新燒寫uboot到此nor flash 上。

再用 kermit 來操作。

Kermit是一個串口服務工具,類似與minicom ,功能比minicom 多。

//kermit/usb0.cfg 是kermit 的配置文件, 在其中可以配置 /dev/ttyUSB0 等路徑
kermit -y kermit/usb0.cfg

-y kermit/usb0.cfg 指定配置文件。

該文件內容如下:
/*

set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set hardshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5

*/
將此文件保存在主目錄下, 命名為:kermit/usb0.cfg(可自定義)

執行後進入kermit 界面, 按 c

進入 串口界面(就是設備的界面)

切換回kermit 界面快捷鍵:Ctrl + \ , 之後再按 c 。

執行:
Dream 5220# # detect

顯示:
Checking for NOR flash...
Flash detect 33554432Mb

這說明flash狀態良好。

//讓串口進入接受狀態。
Dream 5220# # loadb

進入kermit 界面: ctrl + \ 按 c

執行:
send uboot.bin

就是將當前目錄下的uboot.bin 文件發送給串口。

完成後,進入串口界面。

執行:
Dream 5220# # upgrade 0x20000000 0x1dc00000 +0xe0000

0x20000000 是 kermit 執行 send 後 將文件send 到的默認地址。
再將文件寫到nor flash 的首地址:0x1dc00000 +0xe0000為寫的長度。

執行:reset。讓系統重啟。

/*

至此,新的uboot燒寫完成,reset後, 如果還是不成功的話,那麼問題肯定出在linux的的啟動階段或者新的uboot還是有問題,這可以通過啟動過程中的debug信息看出來

一,如果內核有問題,導致linux沒有進入shell界面,要重新進入Uboot環境,就是在reset 之後,一直按 ctrl + c ,這樣在uboot啟動完成後, 不會進入kernel的啟動階段,而是停留在uboot的命令行中,

在這個uboot 環境下,燒寫新內核, 配置ipaddr,serverip等,同最開始的例子中操作是一樣的。

//本機uboot 的ip地址
setenv ipaddr 10.10.167.10

//伺服器ip地址
setenv serverip 10.10.167.249

//下載linux內核vmlinux52
// 在伺服器的tftpboot目錄下存在相應文件,搭建到tftp服務環境
tftpboot 0 vmlinux52

// 燒寫到flash 上。
// 0x20000000 是vmlinux52的存貯位置。
// 0x1dd00000 是系統內核的起始位置(每個設備位置不同),
// +0x600000是文件長度
upgrade 0x20000000 0x1dd00000 +0x600000

在reset 之前,一般還要設置一下環境變數。

比如

setenv linux_args mtdparts=octeon_nor0:1m(BOOT),7m(LINUX),21m(CONFIG),3m(MD)

setenv bootcmd 'bootoctlinux 0x1dd00000 coremask=0x3 mem=700'

//保存
saveenv

bootoctliux

二 ,如果新燒寫的uboot本身有問題,那麼修改uboot代碼,編譯通過後, 使用PLCC重復上述燒寫過程。

D. uboot如何調用驅動介面

u-boot是一種普遍用於嵌入式系統中的Bootloader,Bootloader是在操作系統運行之前執行的一小段程序,通過它,我們可以初始化硬體設備、建立內存空間的映射表,從而建立適當的軟硬體環境,為最終調用操作系統內核做好准備。Boot Loader的主要運行任務就是將內核映象從硬碟上讀到RAM中,然後跳轉到內核的入口點去運行,即開始配孝啟動操作系統。系統在上電或復位時通常都從地址0x00000000處開始執行,而在這個地址處安排的通常就是系統的Boot Loader程序。u-boot目錄結構:1、board中存放於開發板相關的配置文件,每一個開發板都以子文件夾的形式出現;2、Commom文件夾實現u-boot行下支持的命令,每一個命令對應一個文件;3、cpu中存放特定cpu架構相關的目錄,每一款cpu架構都對應了一個子目錄;4、Doc是文檔目錄,有u-boot非常完善的文檔;5、Drivers中是u-boot支持的各種設備的驅動程序;6、Fs是支持的文件系統,其中最常用的是JFFS2文件系統;7、Include文件夾是u-boot使用的頭文件,還有各種硬體平台支持的匯編文件,系統配置文件和文件系統支持的文件;8、Net是與網路協議相關的代碼,bootp協議、TFTP協議、NFS文件系統得實現;9、Tooles是生成U-boot的工具。其中比較重要的目錄就是/board、/cpu、/drivers和 /include目錄,如果想實現u-boot在一個平台上的移植,就要對這些目錄進行深入的分析。u-boot的啟動過程:系統啟動的入口點。既然我們現在要分析u-boot的啟動過程,就必須先找到u-boot最先實現的是哪些代碼,最先完成的是哪些任務。另一方面一個可執行的image必須有一個入口點,並且只能有一個全局入口點,所以要通知編譯器這個入口在哪裡。由此我們可以找到程序的入口點是在/board /lpc2210/u-boot.lds中指定的,其中ENTRY(_start)說明程序從_start開始運行,而他指向的是cpu /arm7tdmi/start.o文件。因為如閉我們用的是ARM7TDMI的cpu架構,在復位後從地址0x00000000取它的第一條指令,所以我們將Flash映射到這個地址上,這樣培橡稿在系統加電後,cpu將首先執行u-boot程序。u-boot的啟動過程是多階段實現的,分了兩個階段:第一階段是用匯編寫的,主要任務是:1、CPU 自身初始化:包括MMU,Cache,時鍾系統,SDRAM 控制器等的初始化;2、重定位:把自己從非易失性存儲器搬移到 RAM 中;3、分配堆棧空間,設置堆棧指針;4、清零 BSS 數據段;5、跳轉到第二階段入口函數 start_armboot();第二階段是用C寫的,主要任務是:1、為 U-boot 內部私有數據分配存儲空間,並清零;2、依次調用函數指針數組 init_sequence 中定義的函數進行一系列的初始化;3、如果系統支持 NOR Flash,調用flash_init ()和display_flash_config ()初始化並顯示檢測到的器件信息;4、如果系統支持 LCD 或VFD,調用lcd_setmem()或vfd_setmem()計算幀緩(Framebuffer)大小,然後在BSS 數據段之後為Framebuffer 分配空間,初始化gd->fb_base 為Framebuffer 的起始地址;5、調用 mem_malloc_init()進行存儲分配系統(類似於C 語言中的堆)的初始化和空間分配;6、如果系統支持 NAND Flash,調用nand_init ()進行初始化;7、如果系統支持 DataFlash,調用AT91F_DataflashInit()和dataflash_print_info()進行初始化並顯示檢測到的器件信息;8、調用 env_relocate ()進行環境變數的重定位,即從Flash 中搬移到RAM 中;9、如果系統支持 VFD,調用drv_vfd_init()進行VFD 設備初始化;10、從 環 境 變 量 中 讀 取 IP 地址和MAC 地址, 初始化gd->bd-> bi_ip_addr 和gd->bd->bi_enetaddr;11、調用 jumptable_init ()進行跳轉表初始化,跳轉表在global_data 中,具體用途尚不清楚;12、調用 console_init_r()進行控制台初始化;13、如果需要,調用 misc_init_r ()進行雜項初始化;14、調用 enable_interrupts ()打開中斷;15、如果需要,調用board_late_init()進行單板後期初始化,對於AT91SAM9260EK,主要是乙太網初始化;16、進入主循環:根據用戶的選擇啟動 linux,或者進入命令循環執行用戶輸入的命令;這部分是一些相對變化不大的部分,我們針對不同的板子改變它調用的一些初始化函數,並且通過設置一些宏定義來改變初始化的流程,所以這些代碼在移植的過程中並不需要修改,也是錯誤相對較少出現的文件。在文件的開始先是定義了一個函數指針數組,通過這個數組,程序通過一個循環來按順序進行常規的初始化,並在其後通過一些宏定義來初始化一些特定的設備。在最後程序進入一個循環,main_loop。這個循環接收用戶輸入的命令,以設置參數或者進行啟動引導。

E. 怎樣在FPGA里嵌入linux操作系統

一、抄Preloader 和Uboot(新手不要作如何修改)。襲
二、可以是硬核(稱hps)先啟動然後配置FPGA,還有其它啟動方式;在這里我們以hps先啟動做例子。主要需要有3個文件,<1>Linux鏡像zImage,<2>設備樹文件dtb,<3>FPGA配置文件rbf。將上述3個文件(uboot啟動後可以通過tftp來傳輸)放到啟動分區中(一般會把磁碟分成不同的分區)。

閱讀全文

與uboot配置文件相關的資料

熱點內容
如何製作虛擬貨幣app 瀏覽:303
ug50能通過補丁升級到高版本嗎 瀏覽:766
dxf文件cad打不開的原因 瀏覽:525
2012怎麼改域用戶密碼 瀏覽:550
dtv網路電視手機版下載 瀏覽:954
mfc100u放在哪個文件夾 瀏覽:359
javaweb插件 瀏覽:58
pto密碼忘記 瀏覽:567
logo競賽教程 瀏覽:481
貴陽去哪裡學編程比較好 瀏覽:132
java將string轉為json 瀏覽:291
ppt2013製作exe文件 瀏覽:80
linux文件只讀不能復制 瀏覽:597
開關代碼 瀏覽:91
word繪圖板 瀏覽:359
蘋果minecraftpe注冊 瀏覽:775
ps怎麼存儲文件卡 瀏覽:728
微信清除緩存圖片恢復 瀏覽:305
安卓app會閃退怎麼解決 瀏覽:429
哪些app背單詞是免費的 瀏覽:889

友情鏈接