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
| SysTick | Périphériques STM32 |
Documentation | Prog. Manual PM | Ref. Manual RM |
#defines | core_cmX.h | stm32zzyyxx.h |
clock enable | bit ENABLE dans SysTick->CTRL | RCC->APBxENR |
interrupt number | SysTick_IRQn = -1
| ppp_IRQn >= 0
|
interrupt enable local | bit TICKINT dans SysTick->CTRL | bit yyIE dans ppp->CR |
interrupt enable global | - | NVIC->ISER[j] |
interrupt priority | SCB->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).