继续分析编译过程
boot编译的方式是将各个目录下的源码编译成.o,然后通过mips-linux-uclibc-ar
命令创建成静态库,
./lib_bootstrap/libbootstrap.a
./cpu/mips/libmips.a
./board/atheros/board955x/libboard955x.a
./lib_mips/libmips.a
./lib_generic/libgeneric.a
./common/libcommon.a
./drivers/libdrivers.a
./rtc/librtc.a
./net/libnet.a
./post/libpost.a
./post/cpu/libcpu.a
到最后通过连接脚本将这些静态库链接成u-boot
u-boot通过调用lzma压缩,再调用mkimage制作镜像。
mkimage主要是给压缩后的镜像添加一个头,这个头的结构如下
typedef struct image_header {
uint32_t ih_magic; /* Image Header Magic Number*/
uint32_t ih_hcrc; /* Image Header CRC Checksum*/
uint32_t ih_time; /* Image Creation Timestamp*/
uint32_t ih_s