Глядя на пример Blinky (установка Keil MDK5), особенно для ST32F769, я дважды заметил SysTick_Handler, за исключением третьего слабого определения в файле запуска ассемблера. Первый в irq_cm4f.s:
SysTick_Handler PROC
EXPORT SysTick_Handler
IMPORT osRtxTick_Handler
PUSH {R0,LR} ; Save EXC_RETURN
BL osRtxTick_Handler ; Call osRtxTick_Handler
POP {R0,LR} ; Restore EXC_RETURN
MRS R12,PSP
B SVC_Context
и другой в EventRecorder. c:
void SysTick_Handler (void) {
SysTickOverflowCounter++;
SysTickOverflowUpdated = 1U;
}
Меня смущает то, как получается, что две процедуры "переопределяют" слабую (упомянуто выше)?