Le timer SysTick du STM32

Le problème

Ce timer a un statut très particulier par rapport aux autres périphériques embarqués sur le STM32, ce qui crée le besoin d'un documentation particulière.
En effet ce timer est défini par ARM et livré avec le coeur et le contrôleur d'interruptions NVIC, alors que les autres périphériques sont conçus par le fabriquant de la puce, ST dans ce cas.

Comparaison

SysTickPériphériques STM32
DocumentationProg. Manual PMRef. Manual RM
#definescore_cmX.hstm32zzyyxx.h
clock enablebit ENABLE dans SysTick->CTRLRCC->APBxENR
interrupt numberSysTick_IRQn = -1
ppp_IRQn >= 0
interrupt enable
local
bit TICKINT dans SysTick->CTRLbit yyIE dans ppp->CR
interrupt enable
global
-NVIC->ISER[j]
interrupt prioritySCB->SHP[i]NVIC->IP[i]
interrupt flag-bit yyIF dans ppp->SR

N.B. la fonction NVIC_SetPriority() reconnait le signe négatif du numéro de l'interruption SysTick et assure la configuration de sa priorité comme pour les autres périphériques (cf core_cmX.h).