由于存储限制,需要将u-boot.bin控制在128K以下,并能正常引导系统,花了点时间研究了u-boot的结构组织,得出结论。
评估结论:
通过下面内容的分析,u-boot.Bin在支持本公司A项目所必须的功能后,将无法保证缩减到128KB的情况下且保证能够正常启动。u-boot使用版本说明:
u-boot用于评估的版本为合作公司发布的第一个u-boot版本,目录结构位于bootable\bootloader\uboot\Y1810下,编译的配置文件为comip_Y1810_config. 编译出来的u-boot.bin的大小81460Bytes。此版本针对源码已经做了大量的精简和裁剪,导致该u-boot并不适合我公司的开发需要。
u-boot用于对比的完整版本为android4.0.3 sdmmc启动版本,最终编译出来的u-boot.bin大小为175764Bytes.
u-boot评估标准:
通过在精简u-boot版本上加入我司此项目必须的功能后,是否uboot.bin的大小控制在128KB以下,且能够正常启动加载系统。
精简u-boot版本源码中强制去掉的编译文件:
通过比较源码,下面列出,本是源码中默认编译的文件,而联芯裁剪时在Makefile中强制去掉编译的C文件列表。
|-arch
||-arm
|||-lib ---_ashldi3.c
---_ashrdi3.c
---bootm.c
u-boot |-common ---s_record.c
---xyzModem.c
---cmd_boot.c //config_cmd_defaults.h有定义开关宏,这里强制去掉。
---ddr_spd.c
---flash.c
---cmd_bootm.c
|-lib ---net_utils.c
对比完整版本,相比精简u-boot版本多出的功能: