Ich komme von 8-Bit-MCUs und habe einen Systemtimer verwendet, um einen periodischen Interrupt zu generieren, der die Motivation hinter dem Cortex M SysTick-Timer zu sein scheint.
Gibt es eine architektonische Bedeutung für die Verwendung des SysTick-Timers im Vergleich zu anderen Timern auf den Cortex-M-MCUs?
Ist es nur eine Frage der Codierungspräferenz, dass Programmierer den SysTick-Timer als primären alle paar ms-Timer verwendet haben?
Das 800-seitige Referenzhandbuch ist ziemlich still zu SysTick, abgesehen davon, wie Sie Post-/Preskalare anwenden.
Ich sehe, dass es sich um einen Standard-Interrupt mit hoher Priorität handelt, also ist es der Weg des geringsten Widerstands für den System-Tick. Aber die Unterbrechungspriorität ist einstellbar.
(Der Ursprung dieser Frage ist, dass ich den STM32CubeMX verwende, um eine Projektvorlage zu generieren, und wenn Sie FreeRTOS hinzufügen, generiert der Cube eine Warnung, dass FreeRTOS einen separaten Timer von SysTick verwenden sollte ... was mich wundert, wenn es spielt hier noch etwas anderes eine Rolle? Ich habe nur angenommen, Sie würden den SysTick verwenden, weil das "wie die Dinge gemacht werden" ...).
Wie in den Kommentaren beantwortet.
Der SysTick, falls vorhanden, ist Teil des ARM-Kerns, die anderen Timer stammen vom Chiphersteller. SysTick hat ein direkteres Ereignis (denken Sie an Interrupt) zum Kern, wo die anderen Zeiten durch Interrupts eingehen, nicht dass das wichtig wäre. Und andere Timer haben tendenziell mehr Funktionen.
Sie haben Cortex-M markiert, also ist dies wahrscheinlich ein Mikrocontroller, was bedeutet, dass Sie möglicherweise Baremetal verwenden, was bedeutet, dass Sie tun können, was Sie wollen, Sie entscheiden, welche Timer was tun. Wenn Sie einige bereits erstellte RTOS oder OS für diesen Chip nehmen, haben sie entschieden, welche Ressourcen sie verbrauchen möchten und warum. In erster Linie meinungsbasiert, soweit das geht.
Der Systick-Timer ist viel einfacher und einfacher in Gang zu bringen und ist nicht immer vorhanden, einige Kerne haben ihn überhaupt nicht als Option und einige als Option (für den Chiphersteller zur Kompilierzeit zu entscheiden), also hat er diesen Vorteil , obwohl es einige Timer in einigen Chips geben kann, die ebenso einfach sind.
Chiphersteller-Timer können manchmal I/O-Pins ansteuern oder eine externe Beteiligung haben, wenn der Systick AFAIK im Kern enthalten ist.
Eugen Sch.
Leroy105
Eugen Sch.
Eugen Sch.
jonk
Leroy105
Eugen Sch.
Leroy105
jonk
jonk
Eugen Sch.
jonk
brhans
Eugen Sch.
jonk
Eugen Sch.
jonk
Leroy105
Eugen Sch.
Leroy105
brhans
Oldtimer