risc的loader.bin

risc v除了支持各种压缩格式的Image外,还支持一个loader.bin
我们看看loader.bin是如何生成的
arch/risc/boot/Makefile


$(obj)/loader.o: $(src)/loader.S $(obj)/Image

$(obj)/loader: $(obj)/loader.o $(obj)/Image $(obj)/loader.lds FORCE
	$(Q)$(LD) -T $(obj)/loader.lds -o $@ $(obj)/loader.o

$(obj)/loader.bin: $(obj)/loader FORCE
	$(call if_changed,objcopy)

从这里看loader.bin是有loader通过objcopy生成的,而loader是由loader.lsd和loader.o
链接生成,而loader.o 又是有loaderS生成的,我们看看loader.S

/* SPDX-License-Identifier: GPL-2.0 */

	.align 4
	.section .payload, "ax", %progbits
	.globl _start
_start:
	.incbin "arch/riscv/boot/Image"
loader.S 中只包含了一行语句.incbin "arch/riscv/boot/Image",就是把通过incbin讲Image 包含尽量放在
payload这个段中。这里的incbin的全称是include binary.
这里就明白了,loader.bin 就是将Image放在payload这个段中.

猜你喜欢

转载自blog.csdn.net/tiantao2012/article/details/109442437