ARM M4 中 Systick 和 Timer 的区别

tan*_*148 2 arm timer cortex-m

我用 8051 完成了一个基本的微处理器。在本课程中,我学习了使用定时器来触发事件。一个学期后,我学习了用ARM Cortex M4(Tiva C launchpad)编写嵌入式系统,并开始使用Systick触发事件(几乎在FreeeRTOS中使用),有时还用作计时器。

  • 我想知道计时器和系统棒有什么区别?因为有时我认为 systick 行为与计时器相同。我已经搜索了不同的内容,并且知道:systick 在 arm 核心中,而 timer 在芯片供应商中。
  • 在哪种情况下我们应该使用 systick 而不是使用计时器?请告诉我。谢谢你。

old*_*mer 6

你基本上拥有它。Systick 定时器是 ARM 内核的一部分。其他计时器来自芯片供应商。您,程序员可以随意使用它们。

它们很可能具有不同的功能,系统杆计时器几乎仅用于轮询或简单持续时间的中断。芯片供应商的定时器通常可以做这些事情,甚至更多,有时它们可​​以为其他定时器生成时钟,有时它们可​​以生成时钟或从引脚输出的信号,有时它们可​​以为输入计时。有时,供应商在一个芯片中会有多个定时器,而这些定时器具有彼此不同的特性。它变化很大。

请注意,某些 ARM 内核没有 systick 计时器,或者可以说芯片供应商可以选择在没有它的情况下编译内核。在这些情况下,您唯一的选择是芯片供应商提供的定时器。

这里没有魔法,你是程序员,你可以随意使用外围设备。

现在,如果您使用像 FreeRTOS 或其他 RTOS 这样的 RTOS,那么您的自由仅限于 RTOS 本身不消耗的内容(如果存在,它可能会消耗 systick 计时器,但保留其他计时器)。