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程序。

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

    关注

    4981

    文章

    18265

    浏览量

    288216
  • Uboot
    +关注

    关注

    4

    文章

    123

    浏览量

    27860

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

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

收藏 人收藏

    评论

    相关推荐

    嵌入式机器视觉系统有什么特性?怎么优化?

    介绍了基于ARM+DSP架构的嵌入式机器视觉系统的特性,分析了制约嵌入式机器视觉系统性能的因素。从操作系统和应用程序方面,讨论了嵌入式机器视觉系统的优化方案。通过对
    发表于 03-11 06:47

    嵌入式系统有哪些特性

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

    嵌入式 HarmonyOS 的学习思路

    嵌入式 HarmonyOS 的学习思路,的学习思路在我拿到小熊派鸿蒙开发板后,首先按照教程,搭建了开发环境,体验了一下程序是如何进行编译和下载,以及初步了解了一下资料的架构。关于小熊派
    发表于 07-14 08:06

    嵌入式Flash的特性及其读取

    目录1:Flash简介2:嵌入式Flash特性3:Flash 闪存的读取4:闪存擦除5:代码实现1:Flash简介FLASH存储器是闪速存储器,它的主要特点是在不加电的情况下能长期保持
    发表于 08-02 08:43

    嵌入式系统简介

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

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

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

    嵌入式操作系统的特点和应用

    文章目录第一章嵌入式系统简介嵌入式操作系统(Embedded Operating System,EOS)是指用于嵌入式系统的操作系统。嵌入式
    发表于 11-08 06:50

    掌握嵌入式系统软件设计方法

    实验目的(1)掌握嵌入式系统软件设计方法,培养分析问题、解决问题、应用知识的能力和创新精神,全面提高综合素质。(2)熟悉嵌入式Linux开发环境,学会基于UP-CUP6410-II型平台的Linux
    发表于 11-09 09:05

    嵌入式Linux开发简介

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

    Netdata嵌入式测试的相关资料推荐

    Netdata 嵌入式测试背景在 Netdata嵌入式配置 为了使 Netdata 更加适应于嵌入式设备,对其进行部分功能的裁剪。在将裁剪
    发表于 12-21 08:18

    嵌入式UBOOT是什么意思呢

    嵌入式技术 系统移植1》之 UBOOT 2008年毕业于沈阳航空航天大学电...
    发表于 12-23 06:13

    ALPHA V2.2 Uboot简介

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

    嵌入式,为啥要有uboot

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

    嵌入式linux学习 Day1 uboot基础

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

    记录一下uboot编译的问题

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