Загрузчик и приложение работают нормально.
Загрузчик загружает приложение, а затем переходит в него.
Проблема: мне нужно использовать другой скрипт компоновщика, чтобы обеспечить автономность приложения или совместимость с загрузчиком.
Я полагаю, это потому, что сегмент памяти неправильно определен для kseg0_program_mem, kseg0_boot_mem & kseg1_boot_mem.
//_RESET_ADDR = 0xBFC00000; <- work without bootloader
_RESET_ADDR = 0x9D000480; <- work with bootloader
[....]
MEMORY
{
kseg0_program_mem (rx) : ORIGIN = 0x9D000000 + 0x800, LENGTH = 0x100000 - 0x800
kseg0_boot_mem : ORIGIN = 0x9D000000, LENGTH = 0x0
debug_exec_mem : ORIGIN = 0x9FC20490, LENGTH = 0x3B20
kseg0_boot_mem : ORIGIN = 0x9FC20490, LENGTH = 0x0
kseg1_boot_mem : ORIGIN = 0x9D000000, LENGTH = 0x480
kseg1_boot_mem_4B0 : ORIGIN = 0xBFC004B0, LENGTH = 0x3B00
config_BFC03FC0 : ORIGIN = 0xBFC03FC0, LENGTH = 0x4