ISD94100 Series Technical Reference Manual
Sep 9, 2019
Page
98
of 928
Rev1.09
IS
D
9
410
0
S
ER
IE
S
T
E
C
HN
ICA
L
RE
F
E
RE
NCE
M
AN
U
AL
6.2.12 System Timer (SysTick)
The Cortex
®
-M4 integrates a system timer, SysTick, which provides a simple, 24-bit clear-on-write,
decrementing, wrap-on-zero counter with a flexible control mechanism. The counter can be used
as a Real Time Operating System (RTOS) tick timer or as a simple counter.
When system timer is enabled, it will count down from the value in the SysTick Current Value
Register (SYST_VAL) to zero, and reload (wrap) to the value in the SysTick Reload Value Register
(SYST_LOAD) on the next clock cycle, and then decrement on subsequent clocks. When the
counter decrements to zero, the COUNTFLAG status bit is set. A read or write on Current Value
Register clears the COUNTFLAG bit to 0.
The SYST_VAL value is UNKNOWN on reset. Software should write to the register to clear it to
zero before enabling the feature. This ensures the timer will count from the SYST_LOAD value
rather than an arbitrary value when it is enabled.
If the SYST_LOAD is zero, the timer will be maintained with a current value of zero after it is
reloaded with this value. This mechanism can be used to disable the feature independently from
the timer enable bit.
For more detailed information, please refer to the “
ARM
®
Cortex™-M4 Technical Reference Manual
”
and “
ARM
®
v6-M Architecture Reference Manual
”.
6.2.12.1 System Timer Control Register Map
R
: read only,
W
: write only,
R/W
: both read and write
Register
Offset
R/W Description
Reset Value
SYST Base Address:
SCS_BA = 0xE000_E000
SYST_CTRL
0x10
R/W SysTick Control and Status Register
0x0000_0000
SYST_LOAD
0x14
R/W SysTick Reload Value Register
0x0000_0000
SYST_VAL
0x18
R/W SysTick Current Value Register
0x0000_0000
Note:
1.
Any register not listed here is reserved and must not be written. The result of a read operation on these bits is undefined.
2.
The reserved register fields that listed in register description must be written to their reset value. Writing reserved fields with
other than reset values may produce undefined results.