0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式uboot的简介、特性以及裁剪的方法和思路

电子工程师 来源:互联网 作者:佚名 2018-01-23 09:03 次阅读

一、uboot简介

U-Boot,全称 Universal Boot Loader,是遵循GPL条款的从FADSROM、8xxROM、PPCBOOT逐步发展演化而来的开放源码项目。

操作系统方面,U-Boot不仅支持嵌入式Linux系统的引导,它还支持NetBSD, 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。

CPU架构方面,U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。

U-Boot项目的开发目标是支持尽可能多的嵌入式处理器和嵌入式操作系统。
嵌入式 uboot的简介、特性以及裁剪的方法和思路

二、uboot的特性

Uboot的特性:

1、开放源码;

2、支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android;

3、支持多个处理器系列,如PowerPC、ARM、x86、MIPS;

4、较高的可靠性和稳定性;

5、高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等;

6、丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;

7、较为丰富的开发调试文档与强大的网络技术支持;

三、嵌入式 uboot裁剪

u-boot裁减的主要方法是通过删除不需要的命令来减小可执行代码体积。比如说,如果不需要网络相关的功能,则可以将网络相关的所有命令全部删除,可以节约可观的flash空间。一般u-boot的大小为100k左右,通过删除命令(如果删除网络相关的命令),可以裁减到64k以内,只保留一些经常使用的命令。

另外,如果需要动态修改环境变量,环境变量还需要单独分配一个flash扇区用于保存。这样大约就需要64k+64k的flash空间。如果我们不需要动态修改环境变量,可以省去一个扇区的Flash开销。

以下是本人裁减u-boot的基本步骤:

1,删除除默认命令以外的命令:

删除include/configs/naribf533.h中CONFIG_COMMANDS的定义,直接采样默认的命令。可以将u-boot从108k裁减到79k。2,删除其他不需要的命令,只保留常用命令:

通过修改include/cmd_confdefs.h中的CFG_CMD_NONSTD常量,进一步裁减u-boot命令。CFG_CMD_NONSTD为“non-standard”命令,除了这个常量定义的命令外,其余都是常用命令。我们可以通过在这个常量中添加不需要的命令来减少默认命令的数量。我们这里只保留以下命令,其余全部裁减掉:

- 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,修改控制台返回信息和环境变量:修改环境变量的存储扇区地址,并删除无用的环境变量或相应修改成对应于我们开发板的环境变量。相应修改一些控制台返回信息。

4,如果不动态修改环境变量,建议删除saveenv命令,以免误擦除u-boot程序。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5082

    文章

    19114

    浏览量

    304889
  • Uboot
    +关注

    关注

    4

    文章

    125

    浏览量

    28219

原文标题:嵌入式 uboot裁剪的方法及思路

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式系统有哪些特性

    系统是个专用系统,结构精简,在硬件和软件上都只保留需要的部分,而将不需要的部分裁去(可裁剪)。所以嵌入式系统一般都具有便携、低功耗、性能单一等特性。然后,MCU、DSP、FPGA这些都属于嵌入
    发表于 07-13 09:22

    嵌入式系统简介

    1. 嵌入式系统简介嵌入式系统一般定义: 以应用为中心、以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统。
    发表于 09-09 06:05

    嵌入式之Linux系统裁剪和定制

    嵌入式之Linux系统裁剪和定制:—(kernel+busyboxy+dropbear+nginx)topNginx在嵌入式系统中的应用
    发表于 11-04 06:00

    嵌入式Linux开发简介

    目录1、嵌入式Linux开发简介1.1嵌入式系统1.2嵌入式操作系统简介1.2.1嵌入式操作系统
    发表于 12-14 08:24

    ALPHA V2.2 Uboot简介

    使用的开发板:正点原子ALPHA V2.2Uboot简介在学习STM32的过程中使用过IAP在线升级就会知道,有引导程序+APP程序,即bootloader程序+APP。在学习嵌入式Linux的时候
    发表于 02-17 07:04

    嵌入式操作系统裁剪技术研究

    本文以提高绘图机数据传输率为目的,通过裁剪普通ⅡnIlx操作系统,最终获得绘图机需要的嵌入式UnIl】【操作系统。本文首先介绍了嵌入式操作系统和嵌入式Ijnux,然后详细
    发表于 10-30 16:28 18次下载

    关于嵌入式Linux操作系统开发简介

    关于嵌入式Linux操作系统开发简介   嵌入式系统是以应用为中心,以计算机技术为基础、软硬件均可裁剪、适应应用系统对功能、可靠性、成本、体积
    发表于 04-17 18:08 918次阅读

    嵌入式系统原理简介与入门

    嵌入式系统原理简介与入门
    发表于 10-30 16:02 3次下载
    <b class='flag-5'>嵌入式</b>系统原理<b class='flag-5'>简介</b>与入门

    嵌入式,为啥要有uboot

    嵌入式的,为啥要有uboot
    的头像 发表于 02-05 12:00 2963次阅读

    基于arm的嵌入式linux内核的裁剪移植

    基于arm的嵌入式linux内核的裁剪移植(嵌入式开发与实践张勇答案)-随着计算机技术和微电子的迅速发展,嵌入式系统已经被广泛应用到许多领域,如科学研究,工程计算,军事技术,
    发表于 07-30 13:01 2次下载
    基于arm的<b class='flag-5'>嵌入式</b>linux内核的<b class='flag-5'>裁剪</b>移植

    嵌入式】构建嵌入式Linux系统(uboot、内核、文件系统)

    嵌入式Linux系统知识架构及层次嵌入式Linux系统构成及启动略析嵌入式Linux三剑客之uboot技术嵌入式Linux三剑客之内核技术
    发表于 10-20 18:20 42次下载
    【<b class='flag-5'>嵌入式</b>】构建<b class='flag-5'>嵌入式</b>Linux系统(<b class='flag-5'>uboot</b>、内核、文件系统)

    嵌入式复习

    文章目录第一章嵌入式系统简介嵌入式操作系统(Embedded Operating System,EOS)是指用于嵌入式系统的操作系统。嵌入式
    发表于 11-03 10:51 11次下载
    <b class='flag-5'>嵌入式</b>复习

    嵌入式linux学习 Day1 uboot基础

    嵌入式linux学习 Day1 uboot基础
    发表于 12-05 20:51 7次下载
    <b class='flag-5'>嵌入式</b>linux学习 Day1 <b class='flag-5'>uboot</b>基础

    嵌入式Python简介

    嵌入式Python简介
    的头像 发表于 12-28 09:51 2871次阅读

    记录一下uboot编译的问题

    前几天编译uboot时遇到一些问题,先记录一下,linux嵌入式开发还是蛮意思的,要想玩的溜,就必须掌握最基本的uboot、kernel移植、适配、裁剪
    的头像 发表于 07-21 16:05 861次阅读
    记录一下<b class='flag-5'>uboot</b>编译的问题