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.