если компилируете из исходников то для подмены по имени нужна
"слабая функция". примеры можете посмотреть, например, в том же HAL
(в исходниках). а удовольствие от недокументированного говнокодинга с неопределенными объектами ещё то
https://caxapa.ru/1435567.html
__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
/* Prevent unused argument(s) compilation warning */
UNUSED(GPIO_Pin);
/* NOTE: This function Should not be modified, when the callback is needed,
the HAL_GPIO_EXTI_Callback could be implemented in the user file
*/
}