同大多數(shù)的Bootloader一樣,uboot的啟動過程也分為BL1、BL2兩個階段,分別對應(yīng)著SPL和Uboot。
同大多數(shù)的Bootloader一樣,uboot的啟動過程也分為BL1、BL2兩個階段,分別對應(yīng)著SPL和Uboot。
首先了解ARMer9開發(fā)系統(tǒng)硬件設(shè)計上和三星原裝SMDK2410之間的區(qū)別。讓uboot在ARMer9開發(fā)系統(tǒng)上跑起來,目前只需要關(guān)注如下的硬件區(qū)別,解決了下面這個問題。
為什么要有uboot?它能解決哪些問題?
一、為什么要有uboot 1.1、計算機系統(tǒng)的主要部件 (1)計算機系統(tǒng)就是以CPU為核心來運行的系統(tǒng)。典型的計算機系統(tǒng)有:PC機(臺式機+筆記本)、嵌入式設(shè)備(手機、平板電腦、游戲機)、單片機(家用電器像電飯鍋、空調(diào)) (2)計算機系統(tǒng)的組成部件非常多,不同的
本篇的重點是講解設(shè)備和驅(qū)動的啟動流程,設(shè)備和驅(qū)動的流程是整個內(nèi)核啟動的核心,也是工作中最常面對的問題。出于知識點的系統(tǒng)性考慮,在進入主題之前我們先看下整個 Linux 在 ARM 中的啟動流程如何。 Uboot 的啟動流程 ARM Linux 的啟動流程大致為:Uboot →
我們從u-boot啟動內(nèi)核可知道,uboot通過這條命令theKernel (0, bd->bi_arch_number, bd->bi_boot_params);來啟動內(nèi)核。那么我們可以
開始start.s分析,根據(jù)S3C2410來跟蹤代碼,參考了S3C2410的datasheet和網(wǎng)上各個帖子一般來說,大家都是從start.s來分析UBOOT,但是事實是流程是從makefile中來的,也就是說是在敲入make smdk2410_config和make all后
程序從start。S開始啟動start_code:?/*? * set the cpu to SVC32 mode? 設(shè)置管理模式? */?mrs?r0, cpsr??????? ?bic?r0, r
Ok6410的硬件相比mini6410強大許多(同樣的價錢),但是ok6410的uboot制作用起來不方便,需要輸入很多命令才可以燒寫完一個系統(tǒng)。我還是比較懷念在2440上方便、靈活的燒寫方式。 下面我們就來修改出一個簡單的uboot
在復(fù)雜的應(yīng)用系統(tǒng)中通常都需要嵌入式操作系統(tǒng)的支持,這樣嵌入式操作系統(tǒng)鏡像文件的尺寸往往就會變得比較大??梢赃x擇通過網(wǎng)絡(luò)將嵌入式操作系統(tǒng)加載到SDRAM中運行來解決這一問題。另外,通過網(wǎng)絡(luò)進行操作時,只要將需要升級的軟件系統(tǒng)在主機端更新,然后嵌入式系統(tǒng)就可以通過網(wǎng)絡(luò)來加載更新后的軟件系統(tǒng)了。
在u-boot的start.S中有這么一段relocate: /*relocate U-Boot to RAM */ adr r0, _start /*r0 800b4: e51f107cldr r1, [pc, #-124]字面意思是要取[pc, #-124]地址中的值,也就是要取_TEXT_BASE這個地址
一、介紹Nand flash K9GAG08U0D (2G Byte)在u-boot的shell里面執(zhí)行如下命令: 把 rootfs.yaffs從SD卡的第一個分區(qū)讀取出來,并寫到nand flash中去.SMDK6401>fatload mmc 0:1 50008000 rootfs.yaffsSMDK64
一、uboot中SD卡的初始化二、讀取扇區(qū)三、 寫變量到SD卡中四、一、uboot中SD卡的初始化1.1 硬件連線MMC0_CDN-->GPG6 -->SD卡檢測引腳MMC0_WPN-->GPGL13 -->SD卡寫保護引腳MMC0_DATA[0-3]--> GPG[2-5] -
TQ2440 + uboot1.1.61. uboot修改1.1common/main.c在函數(shù) main_loop大約513行:char cmd_buf[200];printf("Booting Linux ...\\n");//boot_zImage(0x200000,0x200000);//注釋boot_zImagestrcpy(cmd_buf,"
編譯u-boot時,在Makefile 的ALL變量最后加上$(obj)u-boot.dis,會編譯出u-boot.dis,u-boot.dis是通過arm-linux-objdum –d 生成u-boot的每一條指令的反匯編。33d80080: e59f13f4 ldr r1, [pc, #1012]
今天無竟中發(fā)現(xiàn)u-boot中還有一個examples目錄,編譯u-boot之后發(fā)現(xiàn)了好幾個測試程序,如hello_world 。同時tq2440的bootloader中有選項可以下載程序sdram中并運行,[7] Download Program (uCOS-II or T
1. 首先修改u-boot源碼的兩個文件 1.1 將u-boot根目錄下的config.mk, #DBGFLAGS= -g改成:DBGFLAGS=-gdwarf-2 1.2 將 u-boot/cpu/arm920t/config.mk 中的 PLATFORM_CPPFLAGS +=$(call cc-option,-mapc