Посмотрел сейчас в дизассемблере (симулятор)... Скаттер примерно такой же - начало ro-региона 0x200000.
Код
0x00000000 E59FF018 LDR PC,[PC,#0x0018]]
Т.е. адрес прыжка - 0x00000018, а не 0x00200018. Поэтому ремап делать необходимо, судя по тому что я знаю. Причем, делать его надо до go 0x200000.
Ресетовая инструкция (в моих файлах) лежит в третьей строке, первая по счету. Она не изменяется, даже если поставить начало 0x900000. Изменения начинаются (с стартап-файлом кейла для рвст) с адресов перехода на обработчики исключений - андеф, сви, и т.д., которые я не переписывал. Там стоят тоже абсолютные адреса, ибо:
тут отличий в хекс-файле нет
Код
Vectors LDR PC,Reset_Addr
LDR PC,Undef_Addr
LDR PC,SWI_Addr
LDR PC,PAbt_Addr
LDR PC,DAbt_Addr
NOP ; Reserved Vector
; LDR PC,IRQ_Addr
LDR PC,[PC,#-0xF20] ; Vector From AIC_IVR
; LDR PC,FIQ_Addr
LDR PC,[PC,#-0xF20] ; Vector From AIC_FVR
а тут есть
Код
Undef_Handler B Undef_Handler
SWI_Handler B SWI_Handler
PAbt_Handler B PAbt_Handler
DAbt_Handler B DAbt_Handler
IRQ_Handler B IRQ_Handler
FIQ_Handler B FIQ_Handler