So after further investigation, it seems that the problem is from core/main.elf to core/main.bin.
Explanation:core/main.elf is created with the following command:
arm-elf-gcc -fno-inline -Os -fno-strict-aliasing -mthumb-interwork -I../include -DMEMBASEADDR=0x1900 -DMEMISOSTART=0xBEF70 -DMEMISOSIZE=0x40000 -DRESTARTSTART=0x50000 -DPLATFORM=\"ixus70_sd1000\" -DPLATFORMSUB=\"102a\" -DHDK_VERSION=\"allbest\" -DBUILD_NUMBER=\"51\" -DCAMERA_ixus70_sd1000=1 -Wall -Wno-unused -Wno-format -mthumb -o main.elf --start-group entry.o nothumb.o main.o gui_draw.o gui_menu.o gui_palette.o gui_mbox.o gui_reversi.o gui_debug.o gui_fselect.o gui_read.o gui.o kbd.o conf.o histogram.o gui_batt.o gui_space.o gui_osd.o script.o raw.o gui_sokoban.o gui_calendar.o gui_lang.o gui_bench.o gui_mpopup.o gui_grid.o motion_detector.o raw_merge.o ../platform/ixus70_sd1000/libplatform.a ../platform/ixus70_sd1000/sub/102a/libplatformsub.a ../lib/font/libfont.a ../lib/math/libmath.a ../lib/ubasic/libubasic.a ../lib/lang/liblang.a -lgcc --end-group -L../lib/math -L../lib/font -L../lib/libc -L../lib/ubasic -L../platform/ixus70_sd1000 -L../platform/ixus70_sd1000/sub/102a -nostdlib -Wl,--allow-shlib-undefined -Wl,-T,../tools/link-boot.ld -Wl,-N,-Ttext,0xBEF70
Then main.elf is 232KB, and the analysis of its size is:
text data bss dec hex filename
136903 8412 56728 202043 3153b main.elf
which is coherent with what the guy
here got. So core/main.elf is probably correct. However, after the command:
arm-elf-objcopy -O binary main.elf main.bin
the file core/main.bin obtained is 881KB... with the 700KB at zero in the middle. Then it is included in loader/ixus70_sd1000/blob.o, loader/ixus70_sd1000/main.bin which becomes bin/DISKBOOT.BIN.
The verbose command says:
# arm-elf-objcopy -O binary -v main.elf main.bin
copy from main.elf(elf32-littlearm) to main.bin(binary)
Info about my arm-elf-objcopy exe:
# arm-elf-objcopy --version
GNU objcopy 2.15
Copyright 2004 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
# arm-elf-objcopy --info
BFD header file version 2.15
elf32-littlearm
(header little endian, data little endian)
arm
elf32-bigarm
(header big endian, data big endian)
arm
elf32-little
(header little endian, data little endian)
arm
elf32-big
(header big endian, data big endian)
arm
srec
(header endianness unknown, data endianness unknown)
arm
symbolsrec
(header endianness unknown, data endianness unknown)
arm
tekhex
(header endianness unknown, data endianness unknown)
arm
binary
(header endianness unknown, data endianness unknown)
arm
ihex
(header endianness unknown, data endianness unknown)
arm
elf32-littlearm elf32-bigarm elf32-little elf32-big srec
arm elf32-littlearm elf32-bigarm elf32-little elf32-big srec
symbolsrec tekhex binary ihex
arm symbolsrec tekhex binary ihex
Here is the full verbose log of the compilation, if it can help:
http://crteknologies.free.fr/publish/compil_CHDK_2008-06-08.logDoes someone know what could be the problem with arm-elf-objcopy ? Wrong binutils version ? (I tried with 2.15 and 2.18)