分类: 嵌入式
2016-05-27 17:16:58
1. uboot编译完成后生产的uboot,uboot.bin,uboot.map,uboot.srec分别是什么?
U-BOOT
elf格式的image
|
2.u-boot.map是如何生成的
LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) |
所以可以看出u-boot.map是ld链接的时候加-Map生成的
2. 为什么uboot所运行在的目标机可以ping通PC机,但PC机是ping不通uboot所在的目标机?
原因是uboot是单线程运行,只有在运行ping命令时才会启动报文接受的机制。
|
4.关于uboot引导的内核是为什么是uImage镜像,而不能是zImge镜像
在开发中,需要使用uboot的mkimage工具把zImage转换成uImae(转换的过程就是在zImage头部添加64字节的头部) ,转换的原因是uboot在调用函数do_bootm引导内核的时候会首先解析这个64字节内容。所以换个角度,如果修改函数do_bootm,跳过64字节头部解析,uboot也是可以启动zImage的。
|
5.关于使用mkimage 制作uImage时的–a –e 参数问题
(1)-a参数后是内核的运行地址,-e参数后是入口地址 (2)
|
6.关于uboot的链接地址和位置无关代码
因为-Ttext $(TEXT_BASE)命令的使用,链接器把UBOOT从地址0x3ff80000开始连接,在第一阶段中,所有使用的目标地址寻址都是使用当前PC值加减偏移量的方法,所以把UBOOT烧写到0地址开始的FLASH中,不影响第一阶段的正确执行。