Во! Столкнулся с аналогичной проблемой, у меня проц другой - AT91SAM7A3, написал
бутлоадер, добавил код по совету из того топика ниже.
с адреса 0x00100000 бутлоадер,
с адреса 0x00102800 пользовательская прошивка должна быть.
По логике надо делать вот так:
Тогда после компиляции в карте памяти имеем:
Код
....
FLASH_BASE 0x00100000 Number 0 sam7.o ABSOLUTE
RESET 0x00102800 Section 324 sam7.o(RESET)
Vectors 0x00102800 ARM Code 4 sam7.o(RESET)
Reset_Addr 0x00102820 Data 4 sam7.o(RESET)
Undef_Addr 0x00102824 Data 4 sam7.o(RESET)
SWI_Addr 0x00102828 Data 4 sam7.o(RESET)
PAbt_Addr 0x0010282c Data 4 sam7.o(RESET)
DAbt_Addr 0x00102830 Data 4 sam7.o(RESET)
Reserved_Addr 0x00102834 Data 4 sam7.o(RESET)
IRQ_Addr 0x00102838 Data 4 sam7.o(RESET)
FIQ_Addr 0x0010283c Data 4 sam7.o(RESET)
SWI_Handler 0x00102844 ARM Code 4 sam7.o(RESET)
MOSCS_Loop 0x00102884 ARM Code 4 sam7.o(RESET)
PLL_Loop 0x00102898 ARM Code 4 sam7.o(RESET)
WAIT_Rdy1 0x001028b0 ARM Code 4 sam7.o(RESET)
WAIT_Rdy2 0x001028c4 ARM Code 4 sam7.o(RESET)
!!!main 0x00102a00 Section 8 __main.o(!!!main)
!!!scatter 0x00102a08 Section 56 __scatter.o(!!!scatter)
!!handler_copy 0x00102a40 Section 40 __scatter_copy.o(!!handler_copy)
!!handler_zi 0x00102a68 Section 44 __scatter_zi.o(!!handler_zi)
.emb_text 0x00102a98 Section 16 lib_init.o(.emb_text)
.text 0x00102aa8 Section 36 sam7.o(.text)
.text 0x00102acc Section 4616 main.o(.text)
....
Затык у меня на следующем шаге после компиляции

Keil генерирует *.axf и *.hex файлы, для создания *.bin файла прошивки использовал всегда батник вида:
Цитата
C:\Keil\ARM\BIN30\fromelf.exe --bin --output "e:\project\compile\binary.bin" "e:\project\compile\binary.axf"
Однако при выставлении смещения старт-адреса при запуске батника вместо бинарника получаю папку binary.bin и в ней два бинарных файла без расширений ER_IROM1 и STARTUP, по размерам соответствующие коду и RESET секции.
Что делать с этим, ума не приложу. Попробовал кейловский axf подсунуть gcc objcopy - ругается на формат, естественно. Есть ещё старая утилитка у меня HEX2BIN.EXE - она тоже ругается на неверный формат hex файлов, вроде потому что она для C51 рассчитана

По-любому у кого-то здесь должен быть опыт подобного рода, прошу поделиться решением проблемы!