Ответ: 1) Можно вместо загрузчика для отладки зашить в нулевой адрес простой трамплин типа "jump 0x08010000".
2) Можно сконфигурировать отладчик, чтобы он сам прыгал куда надо при старте.
3) У меня загрузчик сделан так, что переход на основное приложение происходит через сброс, именно чтобы не была инициализирована периферия. Т.e. загрузчик в самом начале делает так: "if (SOFTWARE_RESET && special_flag == RUN_FW) start_firmware(); else init_peripherals_run_bootloader()". Соответственно, чтобы запустить прошивку, он делает "special_flag = RUN_FW; soft_reset();".