We rely on QubeMX to generate our boilerplate and initialization code as much as possible. Currently we configure a Software interrupt programatically viaHAL_EXTI_SetConfigLine(...);
HAL_NVIC_SetPriority(...);
HAL_EXTI_RegisterCallback(...);
HAL_NVIC...