Yamon的编译
作者:makethyme
这两天由于需要构建居于MIPS processor的startup程序,参看了一下bootloader Yamon.
编译前,需要根据自己使用的cross tool chain的情况,修改bin/Makefile。由于使用的cross tool chain是CodeSourcery ELF lite toolchain, 故也不需要修改Makefile了。保持TOOLCHAIN ?= cs即可。
下面是Yamon的编译过程: cd yamon/bin make install make all 输出如下:… mips-sde-elf-ld -T ./../link/link_eb.xn -o ./yamon-02.19_eb.elf -Map ./yamon-02.19_eb.map --oformat elf32-tradbigmips main.o pci.o excep.o io.o loader.o 。。。 mips-sde-elf-objcopy -O srec ./yamon-02.19_eb.elf ./yamon-02.19_eb.rec make[1]: Leaving directory `/cygdrive/d/document/yamon-src-02.19/yamon/bin/EB' echo "!L" > ./tmp_little echo "!B" > ./tmp_big cat ./tmp_big ./reset-02.19.rec/ ./tmp_little ./EL/yamon-02.19_el.rec/ ./tmp_big ./EB/yamon-02.19_eb.rec/ > ./yamon-02.19.rec rm ./tmp_little rm ./tmp_big perl ./tools/srecconv.pl -ES B -EB B -A 29 ./yamon-02.19 可见,在bin目录下,生成reset部分reset-02.19.rec,而bin/EL, bin/EB则分别是little endian和big endian部分。然后,通过S-record格式文件将其组合在一起。最后,通过tools/srecconv.pl将S-record格式文件转换为ram binary image.