0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式uboot的簡(jiǎn)介、特性以及裁剪的方法和思路

電子工程師 ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-01-23 09:03 ? 次閱讀

一、uboot簡(jiǎn)介

U-Boot,全稱 Universal Boot Loader,是遵循GPL條款的從FADSROM、8xxROM、PPCBOOT逐步發(fā)展演化而來(lái)的開放源碼項(xiàng)目。

操作系統(tǒng)方面,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。

CPU架構(gòu)方面,U-Boot除了支持PowerPC系列的處理器外,還能支持MIPS、x86、ARM、NIOS、XScale等諸多常用系列的處理器。

U-Boot項(xiàng)目的開發(fā)目標(biāo)是支持盡可能多的嵌入式處理器和嵌入式操作系統(tǒng)。
嵌入式 uboot的簡(jiǎn)介、特性以及裁剪的方法和思路

二、uboot的特性

Uboot的特性:

1、開放源碼;

2、支持多種嵌入式操作系統(tǒng)內(nèi)核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android;

3、支持多個(gè)處理器系列,如PowerPC、ARM、x86、MIPS;

4、較高的可靠性和穩(wěn)定性;

5、高度靈活的功能設(shè)置,適合U-Boot調(diào)試、操作系統(tǒng)不同引導(dǎo)要求、產(chǎn)品發(fā)布等;

6、豐富的設(shè)備驅(qū)動(dòng)源碼,如串口、以太網(wǎng)、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;

7、較為豐富的開發(fā)調(diào)試文檔與強(qiáng)大的網(wǎng)絡(luò)技術(shù)支持;

三、嵌入式 uboot裁剪

u-boot裁減的主要方法是通過(guò)刪除不需要的命令來(lái)減小可執(zhí)行代碼體積。比如說(shuō),如果不需要網(wǎng)絡(luò)相關(guān)的功能,則可以將網(wǎng)絡(luò)相關(guān)的所有命令全部刪除,可以節(jié)約可觀的flash空間。一般u-boot的大小為100k左右,通過(guò)刪除命令(如果刪除網(wǎng)絡(luò)相關(guān)的命令),可以裁減到64k以內(nèi),只保留一些經(jīng)常使用的命令。

另外,如果需要?jiǎng)討B(tài)修改環(huán)境變量,環(huán)境變量還需要單獨(dú)分配一個(gè)flash扇區(qū)用于保存。這樣大約就需要64k+64k的flash空間。如果我們不需要?jiǎng)討B(tài)修改環(huán)境變量,可以省去一個(gè)扇區(qū)的Flash開銷。

以下是本人裁減u-boot的基本步驟:

1,刪除除默認(rèn)命令以外的命令:

刪除include/configs/naribf533.h中CONFIG_COMMANDS的定義,直接采樣默認(rèn)的命令??梢詫-boot從108k裁減到79k。2,刪除其他不需要的命令,只保留常用命令:

通過(guò)修改include/cmd_confdefs.h中的CFG_CMD_NONSTD常量,進(jìn)一步裁減u-boot命令。CFG_CMD_NONSTD為“non-standard”命令,除了這個(gè)常量定義的命令外,其余都是常用命令。我們可以通過(guò)在這個(gè)常量中添加不需要的命令來(lái)減少默認(rèn)命令的數(shù)量。我們這里只保留以下命令,其余全部裁減掉:

- alias for 'help'autoscr - run script from memorybase- print or set address offsetbdinfo- print Board Info structurebootm- boot application image from memorycmp- memory compareconinfo - print console devices and informationcp- memory copycrc32- checksum calculationecho- echo args to consoleerase- erase FLASH memoryfl- flush a file to FLASH memoryflinfo- print FLASH memory informationgo- start application at address 'addr'help- print online helploadb- load binary file over serial line (kermit mode)loads- load S-Record file over serial lineloop- infinite loop on address rangemd- memory displaymm- memory modify (auto-incrementing)mtest- simple RAM testmw- memory write (fill)nm- memory modify (constant address)oc- over clockingprintenv- print environment variablesprotect - enable or disable FLASH write protectionreset- Perform RESET of the CPUrun- run commands in an environment variablesaveenv - save environment variables to persistent storagesetenv- set environment variablessleep- delay execution for some timeversion - print monitor version

最終可以將uboot裁減到63k。

3,修改控制臺(tái)返回信息和環(huán)境變量:修改環(huán)境變量的存儲(chǔ)扇區(qū)地址,并刪除無(wú)用的環(huán)境變量或相應(yīng)修改成對(duì)應(yīng)于我們開發(fā)板的環(huán)境變量。相應(yīng)修改一些控制臺(tái)返回信息。

4,如果不動(dòng)態(tài)修改環(huán)境變量,建議刪除saveenv命令,以免誤擦除u-boot程序。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18975

    瀏覽量

    302087
  • Uboot
    +關(guān)注

    關(guān)注

    4

    文章

    125

    瀏覽量

    28127

原文標(biāo)題:嵌入式 uboot裁剪的方法及思路

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式系統(tǒng)有哪些特性

    系統(tǒng)是個(gè)專用系統(tǒng),結(jié)構(gòu)精簡(jiǎn),在硬件和軟件上都只保留需要的部分,而將不需要的部分裁去(可裁剪)。所以嵌入式系統(tǒng)一般都具有便攜、低功耗、性能單一等特性。然后,MCU、DSP、FPGA這些都屬于嵌入
    發(fā)表于 07-13 09:22

    嵌入式系統(tǒng)簡(jiǎn)介

    1. 嵌入式系統(tǒng)簡(jiǎn)介嵌入式系統(tǒng)一般定義: 以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗和應(yīng)用環(huán)境有特殊要求的專用計(jì)算機(jī)系統(tǒng)。
    發(fā)表于 09-09 06:05

    嵌入式之Linux系統(tǒng)裁剪和定制

    嵌入式之Linux系統(tǒng)裁剪和定制:—(kernel+busyboxy+dropbear+nginx)topNginx在嵌入式系統(tǒng)中的應(yīng)用
    發(fā)表于 11-04 06:00

    嵌入式Linux開發(fā)簡(jiǎn)介

    目錄1、嵌入式Linux開發(fā)簡(jiǎn)介1.1嵌入式系統(tǒng)1.2嵌入式操作系統(tǒng)簡(jiǎn)介1.2.1嵌入式操作系統(tǒng)
    發(fā)表于 12-14 08:24

    ALPHA V2.2 Uboot簡(jiǎn)介

    使用的開發(fā)板:正點(diǎn)原子ALPHA V2.2Uboot簡(jiǎn)介在學(xué)習(xí)STM32的過(guò)程中使用過(guò)IAP在線升級(jí)就會(huì)知道,有引導(dǎo)程序+APP程序,即bootloader程序+APP。在學(xué)習(xí)嵌入式Linux的時(shí)候
    發(fā)表于 02-17 07:04

    嵌入式操作系統(tǒng)裁剪技術(shù)研究

    本文以提高繪圖機(jī)數(shù)據(jù)傳輸率為目的,通過(guò)裁剪普通ⅡnIlx操作系統(tǒng),最終獲得繪圖機(jī)需要的嵌入式UnIl】【操作系統(tǒng)。本文首先介紹了嵌入式操作系統(tǒng)和嵌入式Ijnux,然后詳細(xì)
    發(fā)表于 10-30 16:28 ?18次下載

    關(guān)于嵌入式Linux操作系統(tǒng)開發(fā)簡(jiǎn)介

    關(guān)于嵌入式Linux操作系統(tǒng)開發(fā)簡(jiǎn)介   嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟硬件均可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積
    發(fā)表于 04-17 18:08 ?912次閱讀

    嵌入式系統(tǒng)原理簡(jiǎn)介與入門

    嵌入式系統(tǒng)原理簡(jiǎn)介與入門
    發(fā)表于 10-30 16:02 ?3次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)原理<b class='flag-5'>簡(jiǎn)介</b>與入門

    嵌入式,為啥要有uboot

    嵌入式的,為啥要有uboot?
    的頭像 發(fā)表于 02-05 12:00 ?2906次閱讀

    基于arm的嵌入式linux內(nèi)核的裁剪移植

    基于arm的嵌入式linux內(nèi)核的裁剪移植(嵌入式開發(fā)與實(shí)踐張勇答案)-隨著計(jì)算機(jī)技術(shù)和微電子的迅速發(fā)展,嵌入式系統(tǒng)已經(jīng)被廣泛應(yīng)用到許多領(lǐng)域,如科學(xué)研究,工程計(jì)算,軍事技術(shù),
    發(fā)表于 07-30 13:01 ?2次下載
    基于arm的<b class='flag-5'>嵌入式</b>linux內(nèi)核的<b class='flag-5'>裁剪</b>移植

    嵌入式】構(gòu)建嵌入式Linux系統(tǒng)(uboot、內(nèi)核、文件系統(tǒng))

    嵌入式Linux系統(tǒng)知識(shí)架構(gòu)及層次嵌入式Linux系統(tǒng)構(gòu)成及啟動(dòng)略析嵌入式Linux三劍客之uboot技術(shù)嵌入式Linux三劍客之內(nèi)核技術(shù)
    發(fā)表于 10-20 18:20 ?42次下載
    【<b class='flag-5'>嵌入式</b>】構(gòu)建<b class='flag-5'>嵌入式</b>Linux系統(tǒng)(<b class='flag-5'>uboot</b>、內(nèi)核、文件系統(tǒng))

    嵌入式復(fù)習(xí)

    文章目錄第一章嵌入式系統(tǒng)簡(jiǎn)介嵌入式操作系統(tǒng)(Embedded Operating System,EOS)是指用于嵌入式系統(tǒng)的操作系統(tǒng)。嵌入式
    發(fā)表于 11-03 10:51 ?11次下載
    <b class='flag-5'>嵌入式</b>復(fù)習(xí)

    嵌入式linux學(xué)習(xí) Day1 uboot基礎(chǔ)

    嵌入式linux學(xué)習(xí) Day1 uboot基礎(chǔ)
    發(fā)表于 12-05 20:51 ?7次下載
    <b class='flag-5'>嵌入式</b>linux學(xué)習(xí) Day1 <b class='flag-5'>uboot</b>基礎(chǔ)

    嵌入式Python簡(jiǎn)介

    嵌入式Python簡(jiǎn)介
    的頭像 發(fā)表于 12-28 09:51 ?2791次閱讀

    記錄一下uboot編譯的問(wèn)題

    前幾天編譯uboot時(shí)遇到一些問(wèn)題,先記錄一下,linux嵌入式開發(fā)還是蠻意思的,要想玩的溜,就必須掌握最基本的uboot、kernel移植、適配、裁剪。
    的頭像 發(fā)表于 07-21 16:05 ?803次閱讀
    記錄一下<b class='flag-5'>uboot</b>編譯的問(wèn)題