嵌入式 u-boot裁剪备忘

原创 2013年12月02日 21:08:32
刚才小研究了下u-boot的裁剪,很简单的东西,记录备忘一下。

include/configs/smdk6410.h
include/cmd_confdefs.h
u-boot主要是通过对其上两个文件中的CONFIG_COMMANDS及CFG_CMD_NONSTD宏的内容进行增添来实现裁剪
比如cmd_confdefs.h中:
×××××××××××××××××××××××××××××××××××××××××××××××××××
#define CFG_CMD_ALL 0xFFFFFFFFFFFFFFFFULL

#define CFG_CMD_NONSTD (CFG_CMD_ASKENV | \
CFG_CMD_BEDBUG | \
CFG_CMD_BMP | \
CFG_CMD_BSP | \
CFG_CMD_CACHE | \
CFG_CMD_CDP | \
CFG_CMD_DATE | \
CFG_CMD_DHCP | \
CFG_CMD_DIAG | \
CFG_CMD_DISPLAY | \
CFG_CMD_DOC | \
CFG_CMD_DTT | \
CFG_CMD_EEPROM | \
CFG_CMD_ELF | \
CFG_CMD_EXT2 | \
CFG_CMD_FDC | \
CFG_CMD_FAT | \
CFG_CMD_FDOS | \
CFG_CMD_HWFLOW | \
CFG_CMD_I2C | \
CFG_CMD_IDE | \
CFG_CMD_IMMAP | \
CFG_CMD_IRQ | \
CFG_CMD_JFFS2 | \
CFG_CMD_KGDB | \
CFG_CMD_MII | \
CFG_CMD_MMC | \
CFG_CMD_NAND | \
CFG_CMD_MOVINAND| \
CFG_CMD_ONENAND | \
CFG_CMD_PCI | \
CFG_CMD_PCMCIA | \
CFG_CMD_PING | \
CFG_CMD_PORTIO | \
CFG_CMD_REGINFO | \
CFG_CMD_REISER | \
CFG_CMD_SAVES | \
CFG_CMD_SCSI | \
CFG_CMD_SDRAM | \
CFG_CMD_SNTP | \
CFG_CMD_SPI | \
CFG_CMD_UNIVERSE | \
CFG_CMD_USB | \
CFG_CMD_VFD )


#define CONFIG_CMD_DFL (CFG_CMD_ALL & ~CFG_CMD_NONSTD)

#ifndef CONFIG_COMMANDS
#define CONFIG_COMMANDS CONFIG_CMD_DFL
#endif
×××××××××××××××××××××××××××××××××××××××××××××××××××××
对于一般情况,cmd_confdefs.h中如果当前CONFIG_COMMANDS未定义,则CONFIG_COMMANDS等于CONFIG_CMD_DFL,而CONFIG_CMD_DFL等于CFG_CMD_ALL & ~CFG_CMD_NONSTD。从这里可以看出,比如我们将CFG_CMD_NAND添加到CFG_CMD_NONSTD,则nand部分将不会被编入u-boot。

而对于6410,则看smdk6410.h。类似的,有:
×××××××××××××××××××××××××××××××××××××××××××××××××××××

#define CONFIG_COMMANDS \
(CONFIG_CMD_DFL | \
CFG_CMD_CACHE | \
CFG_CMD_FAT | \
CFG_CMD_REGINFO | \
CFG_CMD_LOADS | \
CFG_CMD_LOADB | \
CFG_CMD_ENV | \
CFG_CMD_NAND | \
CFG_CMD_MOVINAND| \
CFG_CMD_ONENAND | \
CFG_CMD_DATE | \
CFG_CMD_PING | \
CFG_CMD_ELF) \
& ~(CFG_CMD_AUTOSCRIPT | \
CFG_CMD_DATE | \
CFG_CMD_PING | \
CFG_CMD_BOOTD | \
CFG_CMD_ONENAND | \
CFG_CMD_IMI | \
CFG_CMD_RUN | \
CFG_CMD_CONSOLE | \
CFG_CMD_DOCG3P3 | \
CFG_CMD_EEPROM | \
CFG_CMD_USB | \
CFG_CMD_REGINFO | \
CFG_CMD_LOADS | \
CFG_CMD_LOADB | \
CFG_CMD_I2C | \
CFG_CMD_MOVINAND| \
CFG_CMD_ELF | \
CFG_CMD_BDI | \
CFG_CMD_CACHE | \
CFG_CMD_IMLS | \
CFG_CMD_ITEST | \
CFG_CMD_MISC | \
CFG_CMD_NAND | CFG_CMD_NET | CFG_CMD_ECHO | \
0)


#include
×××××××××××××××××××××××××××××××××××××××××××××××××××××
这里直接对CONFIG_COMMANDS进行了定义,包括加入及~掉的部分,并且在定义后面直接跟了cmd_confdefs.h,所以在cmd_confdefs.h中的CONFIG_COMMANDS定义就不会被使用,起作用的是smdk6410中的CONFIG_COMMANDS定义

打开nand.c 最前面有这么一行:
#if (CONFIG_COMMANDS & CFG_CMD_NAND) && !defined(CFG_NAND_LEGACY)
很明显,以我们的定义,这部分(NAND)是不会被编进u-boot的。同样的 其他被包含在& ~操作中的一样。
参考文献:
http://www.eefocus.com/myspace/blog/show_77755.html
http://blog.mcuol.com/User/lvembededsys/Article/4355_1.htm

相关文章推荐

u-boot 嵌入式

  • 2012年11月01日 08:48
  • 9.01MB
  • 下载

嵌入式Minis3c2440开发板详解之Bootloader下的U-boot移植,内核移植,文件系统移植

嵌入式Minis3c2440开发板详解Minis3c2440接口布局以及跳线说明一、地址空间分配和片选信号的定义   S3c2440支持两种启动模式:一种是从Nand Flash启动(MINI2440...

【嵌入式】探究bootloader,分析u-boot源码

Preface    之前也发表过关于《Bootloader启动过程分析》的文章,但是内容表达得比较抽象,大多是文字叙述,所以这里从系统和代码的角度来深入分析bootloader的启动过程。    工...

初探嵌入式(arm9 2440)linux之一——加载u-boot

以arm9为例讲解嵌入式linux的u-boot基本概念及启动 方式
  • ds1231h
  • ds1231h
  • 2016年09月05日 11:50
  • 473

U-Boot1.3.1中JFFS2文件系统支持和U盘支持的使用备忘

U-Boot1.3.1中JFFS2文件系统支持和U盘支持的使用备忘   在U-Boot可能早就有了对JFFS2和U盘的支持,但是由于我没有移植是注意到,就没有使用。在这次的移植中,我通过往网上的资...
  • sydjm
  • sydjm
  • 2011年10月12日 14:56
  • 661

u-boot 使用 jffs2 文件系统加载内核 备忘

u-boot 使用 jffs2 文件系统加载内核 备忘 1. 修改kernel 中的 nand.c #define MV_NUM_OF_NAND_PARTS 7 static struct ...
  • dj5443
  • dj5443
  • 2013年05月09日 16:08
  • 532

u-boot命令介绍及烧写程序实例(备忘)

Printenv 打印环境变量。 Uboot> printenv baudrate=115200 ipaddr=192.168.1.1 ethaddr=12:34:56:78:9A:BC s...

DM368 UBL和u-boot的裁剪

转载:http://blog.csdn.net/olei_oleitao/article/details/7919307   一、DM36X的BOOT过程介绍 DM36x的BOOT过程和DM64...

06-S3C2440学习之移植2012u-boot到S3C2440(移植过程五--最终)裁剪+修改默认参数+分区设置+支持文件系统下载

(1)Uboot可以配置一些环境变量, Uboot执行的时候: 1读参数 2判断是否有效 3无效则用默认写死的值 (2)搜索下using defaultenvironment 网太...

u-boot 裁剪分析

评估结论: 通过下面内容的分析,u-boot.Bin在支持本公司A项目所必须的功能后,将无法保证缩减到128KB的情况下且保证能够正常启动。 u-boot使用版本说明: u-boot...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式 u-boot裁剪备忘
举报原因:
原因补充:

(最多只允许输入30个字)