Hello,
I'm reversing MicroFreak too, and initially I wasted a couple of weeks working with the wrong offset - so I'm certain that neither 0x8000 nor 0x14000 are correct.
Here's the summary of the addresses starting from the reset vector up to MIDI input processing (0x080480A8 = 0x080540A8 - 0xC000)
vector[reset] @ 0x0800C004
→ 0x0805F849 (Thumb)
→ reset_handler @ 0x0805F848
→ check_bootloader_dfu @ 0x0802EDAC
→ copy .data / clear .bss
→ init_fpu_and_clock @ 0x08025730
→ __libc_init_array @ 0x08061420
→ main @ 0x0802479C
...
→ main loop
...
→ midi_in_drain @ 0x08047C6C
→ USART1 ring pop
→ midi_in_process_byte @ 0x080480A8
Hello,
I'm reversing MicroFreak too, and initially I wasted a couple of weeks working with the wrong offset - so I'm certain that neither 0x8000 nor 0x14000 are correct.
Here's the summary of the addresses starting from the reset vector up to MIDI input processing (0x080480A8 = 0x080540A8 - 0xC000)