请问如何对BLOB start.S(注意start.S 是大写的S)里边的注释格式进行修改?(里边的注释采用/*..... */)
谢谢! 我也正在编译blob,遇到的编译问题是一样的。这里说说的我的做法(使用环境RedHat 9):
1. 编辑文件 configure ,把所有arm-linux改为arm-elf; 在580行处(“ac_ext=c”之前)插入 LDFLAGS=-elf2flt ,保存文件。
2.运行命令./configure --with-board=mba-44b0 --with-linux-prefix=/usr/local/src/uClinux-dist/linux-2.4.x (这是我的uclinux目录) --host=arm-elf
结果:LDFLAGS = -elf2flt -static -nostdlib
3.运行make
4.编译到arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start出现错误(与你的一样):
arm-elf-objcopy:blob-start-elf32:File format not recognized
5.分析blob-start-elf32编译的命令
arm-elf-gcc-Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-pointer -fno-builtin -mapcs-32 -nostdinc
-elf2flt -static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
使用了-elf2flt 选项,把blob-start-elf32编译成flat格式。
6.到目录 blob/src/blob目录下直接执行编译命令(把-elf2flt去掉)
arm-elf-gcc-Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-ointer -fno-builtin -mapcs-32 -nostdinc
-static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
再执行一次
arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start
结果顺利编译通过
显然 arm-elf-objcopy 中 blob-start-elf32 必须为elf格式
其后的blob-rest-elf32 ,blob-chain-elf32编译也应该是elf格式。
7.结论:所以编译源文件要使用 -elf2flt 才能编译通过,但编译连接 blob-start-elf32 又不能使用-elf2flt开关
8.直接修改blob/src/blob的Makefile ,但运行make 后,此Makefile又回复原样,实在没有办法,不知道如何修改。
9.本人一直在windows下编写程序,对makefile 的编辑不是很熟悉,虽然知道错误的原因, 但不知怎样修改makefile ,此事很急,请各位大侠赐教! 问题终于解决了!换个编译器,到http://www.lomx.net/cn/lom_arm9_tooltrain.htm
下载一个编译器吧
页:
1
[2]