Das hängt entscheidend von deiner IDE/Toolchain ab. Bzw. davon, was der
Startup-Code treibt. Wenn der Linker modern genug ist, um weak symbols
zu unterstützen, dann ist das erwartbare Verhalten, daß die Vektor-
tabellen mit Symbolen mit "magischen" Namen gefüllt werden. Also z.B.
"sys_tick_handler" oder "tim2_isr". Gleichzeitig wird eine dummy-ISR
implementiert und weak symbol aliases für alle diese magischen Namen
registriert.
Wenn dein Programm nun eine Funktion mit einem derartigen Namen
implementiert, dann findet der Linker das Symbol und ersetzt das
gleichnamige weak symbol damit. Alle anderen Vektoren verweisen
entsprechend auf die Dummy-Implementierung des Frameworks.
Langer Rede kurzer Sinn: du mußt die magischen Funktionsnamen heraus-
finden und einfach passende C-Funktionen schreiben.