其实uboot启动映像主要是在原来的zImage前加上一个他要0x40的tag,告诉uboot一些关于Linux内核启动的信息。 在arch/arm/boot/Makefile 62行开始有命令和规则: quiet_cmd_uimage = UIMAGE $@ cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel -C none -a $(ZRELADDR) -e $(ZRELADDR) -n "Linux-$(KERNELRELEASE)" -d $ $(obj)/uImage: $(obj)/zImage FORCE $(call if_changed,uimage) @echo " Image $@ is ready" 其实uboot启动映像主要是在原来的zImage前加上一个他要0x40的tag,告诉uboot一些关于内核启动的信息。这个规则的命令就是63行到65行的定义 -A指定cpu体系结构 -O指定是什么操作系统 -T指定映像类型,如standalone、kernel、ramdisk、multi、firmware、script、filesystem等 -C指定映像压缩方式,如none(不压缩)、gzip、bzip2。这里不对uImage进行压缩 -a指定映象在内存中的加载地址,映象下载到内存中时,要按照用MKIMAGE制作映象时,这个参数所指定的地址值来下载 -e 指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个MKIMAGE添加的0x40个字节的头) -n 指定映象名 -d 指定制作映象的源文件 上面命令中ZRELADDR在24行定义 ZRELADDR := $(zreladdr-y)在第17行有 include $(srctree)/$(MACHINE)/Makefile.boot 而这个Makefile.boot的中有 zreladdr-y := 0x30008000 所以ZRELADDR := 0x30008000红旗Linux桌面版6.0感觉很不错[图文]谈谈Ubuntu相关资讯 Linux教程 uboot
- 详解Linux平台芯片烧写流程 (05/26/2015 14:21:44)
- Linux教程:如何在命令行中查看目 (07/28/2014 12:22:23)
- Linux进程间通信:消息队列 (01/28/2013 09:43:00)
| - Uboot 如何运行脚本 (09/10/2014 21:49:36)
- 在线升级uboot,内核和文件系统 (06/06/2013 06:51:19)
- Linux 修改root密码 (11/03/2012 07:53:38)
|
本文评论 查看全部评论 (0)