1. 程式人生 > >u-boot引導kernel如何提速

u-boot引導kernel如何提速

1. 移除u-boot啟動過程中不必要的模組,如net;

2. 減少不必要的串列埠列印資訊(改善明顯);

3. 優化emmc讀取時序,縮短讀取emmc延時的時間間隔(改善明顯);

4. u-boot從emmc載入uramdisk和uImage的映象檔案到記憶體,從映象頭部動態讀取映象檔案大小,既可以縮短載入時間,又不會因後續uramdisk和kernel升級映象檔案大小變化而受影響;

5. 將u-boot中使用較頻繁的用C語言實現的memcpy和memset函式改為高效的組合語言實現;

6. 當kernel載入的地址=kernel在記憶體中的實際地址(去掉前面64位元組的頭部)時,memmove部分不執行,可以節省40ms的時間;

7. 將環境變數environment區大小從128k調整為16k,縮短環境變數區初始化時間;

8. 裁減核心大小,進一步縮短映象載入時間;

注意:統計u-boot載入時間的時候,可以用示波器記錄兩個訊號的波形變化,一個是電源上電的波形,一個是跳轉到核心之前的GPIO的波形變化。u-boot中檔案lib_arm/bootm.c,do_bootm_linux函式中,theKernel (0, machid, bd->bi_boot_params)之前作個GPIO標記;

相關推薦

u-boot引導kernel如何提速

1. 移除u-boot啟動過程中不必要的模組,如net; 2. 減少不必要的串列埠列印資訊(改善明顯); 3. 優化emmc讀取時序,縮短讀取emmc延時的時間間隔(改善明顯); 4. u-boot從emmc載入uramdisk和uImage的映象檔案到記憶體,從映象頭部動

使用u-boot引導smart210提供的核心,卡在了“Starting kernel ...”

大家好,我問個問題,使用u-boot引導友善smart210提供的核心,卡在了“Starting kernel ...”。 我百度了很久都沒能解決。。。不知道大家有沒有處理過這個問題的經驗?謝謝! 直接go zImage也不行。 gcc:4.9.2 u-boot:2014.07 linux核心:3.0.8(c

qemu模擬vexpress-a9及u-boot引導 linux

brctl data ket netd pre dong busybox 網絡 vsftpd 前言 本文講述使用 qemu 來模擬 vexpress-a9 開發板 ,同時介紹使用 u-boot 引導 linux 的流程。整個坐下來對 qemu 和 u-boot 以及嵌入式

u-bootkernel和filesystem 執行過程分析

標題:   Uboot -kerne-root 啟動流程 內容:   ※uboot啟動流程   ※Kernel啟動流程   ※Root啟動流程   ※構建根檔案系統   /********************************* *u-boot

移植u-boot-2011.03到S3C2440(utu2440)的方法與步驟###8. u-boot引導啟動nand flash中核心和根檔案系統cramfs和使用者檔案系統yaffs2支援

rivers/rtc/hctosys.c: unable to open rtc device (rtc0)uncorrectable error : <3>uncorrectable error : <3>end_request: I/O error, dev mtdblock2, 

u-bootkernel命令列引數設定及傳遞

軟體配置env的情況(CONFIG_ENV_IS_NO_WHERE=y) 1, 在u-boot/include/configs/xxx_config.h配置檔案中我們可以找到CONFIG_BOOTARGS配置項,在這裡我們可以設定要傳遞的到核心的命令列引數 u-boot/i

u-bootkernel傳遞裝置樹、環境變數解析

u-boot向kernel傳遞裝置樹、環境變數解析 【 do_bootm_states---wzf test states:0x1 continue ...... need_boot_fn:0x0 states:0x1 ## Flattened Device

第0課第5節 剛接觸開發板之u-bootkernel打補丁編譯

一. uboot打補丁、建source insight工程、編譯、燒寫 1. 解壓 u-boot-1.1.6.tar.gz2 tar xjf u-boot-1.1.6.tar.gz2 2. 打patch patch -p1 < ../u-boot-1.1.6_jz24

qemu 模擬-arm-mini2440開發板-啟動u-bootkernel和nfs檔案系統

qemu 本文介紹瞭如何編譯u-boot、linux kernel,然後用qemu啟動u-boot和linux kernel,達到與開發板上一樣的學習效果! 雖然已經買了2440開發板,但是在實際學習開發過程中,還是覺得不方便,既然這樣,那就用qemu模擬2440開發板,

u-boot 引導linux核心

./mkimage -n 'Cortex-A9' -A arm -O linux -T kernel -C none -a 0x60003000 -e 0x60003000 -d ../../extra_folder/zImage uImage

一步一步學zedboard之十三利用u-boot引導核心

u-boot起來後,可以利用u-boot對核心進行引導啟動。把以前編譯生成的uImage檔案下載到SD中。設定u-boot的環境變數 設定bootcmd環境變數,使板卡每次上電自動引導載入核心檔案。 復位板卡,觀察啟動現象。 我們看到啟動核心過程中有報錯,報錯的

U-boot引導流程分析一

大多數BootLoader都分為stage1和stage2兩大部分,U-boot也不例外。依賴於cpu體系結構的程式碼(如裝置初始化程式碼等)通常都放在stage1且可以用匯編語言來實現,而stage2則通常用C語言來實現,這樣可以實現複雜的功能,而且有更好的可讀性和移植性。 1、 stage1(sta

u-boot-2015.04 在tq2440上的移植(使用spl引導u-boot

ENTRY(relocate_vectors) /* * Copy the relocated exception vectors to the * correct address * CP15 c1 V bit gives us the lo

u-boot 的machine id 定義和kernel 中的 machine id 不同

u-boot 的中machine id 可能和kernel 中的 machine id不同 可以從  include/asm-arm/mach-types.h 中看到machine id 的定義,這個檔案是自動生成的 通過 arch/arm/tool 下面的awk 腳

《轉》u-boot移植燒寫步驟、u-boot命令和kernel燒寫步驟

轉自:《http://blog.sina.com.cn/s/blog_726c4bd20100unjn.html》 移植燒寫步驟 1. 解壓u-boot原始檔 2. 從u-boot/include/configs裡找相近的配置,複製成自已的名字 3. 改make

U-Boot-2009.8引導Linux的2.6.32.2核心

最近一直在做U-boot-2009.08和Linux-2.6.32.2的核心的移植,今天終於可以使用自己移植的U-Boot-2009.08引導自 己修改的Linux-2.6.33.2核心了,還有移植的Yaffs2檔案系統,真是太高興的,現在在把這近兩個月內,斷斷續續的移植

win7 + 傳統/boot 引導 + Ubuntu16.04.02 + U盤啟動盤

一、本文目的: 兩個月前,由於科研需要,在win7下安裝Ubuntu雙系統,挺費勁的成功安裝了。之後由於很少去用了,再加上之前磁碟分配的儲存區域不夠大,於是今晚把相關的磁碟分割槽格式化掉,想重新安裝一次。但是,事情好像並不是那麼順利,遇到一些問題,愈發的覺得學習是一件久遠的

記錄u-boot不能引導核心的解決過程

問題還沒有解決,記錄一下吧。 一網友發來郵件求助,說是移植的u-boot啟動不了核心,是2013.7版本的,移植到s5pv210上的。我之前移植的2013.1版本的沒有問題的。 一開始覺得不是什麼事,

Qemu下u-Boot + Kernel + rootfs完整啟動移植

對於Ubuntu12.04系統,首先要安裝如下的庫檔案,不然在後續的移植過程中會出錯 1、zlib庫 sudo apt-get install zlib1g-dev 2、glib庫的安裝 1)在Ubu

分析u-boot的Makefile

選項 lin 編譯平臺 create cpp port n) ati inux   這裏分析三星s5pv210芯片官方u-boot 先看u-boot 版本號 VERSION = 1    #主版本號PATCHLEVEL = 3   #次版本號SUBLEVEL