Systick和Timer在ARM M4中的区别

时间:2019-03-18 00:41:27

标签: timer arm cortex-m

我用8051完成了一个基本的微处理器。在本课程中,我学习了如何使用计时器触发事件​​。一个学期后,我学习了使用ARM Cortex M4(Tiva C启动板)对嵌入式系统进行编程的方法,并开始使用Systick触发事件(几乎在FreeeRTOS中使用过),有时还用作计时器。

  • 我想知道计时器和操纵杆之间有何不同?因为有时候 认为操纵杆行为与计时器相同。我搜索了 有所不同,并且知道:systick在手臂核心中,而计时器在芯片供应商中。
  • 在什么情况下我们应该使用使用计时器的systick接口? 请告诉我。谢谢。

2 个答案:

答案 0 :(得分:4)

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

它们很可能具有不同的功能,systick计时器几乎仅用于轮询或简单持续时间的中断。芯片供应商的计时器通常可以做这些事情,并且可以做更多的事情,有时它们可​​以为其他计时器生成时钟,有时它们可​​以生成时钟或信号输出,有时可以对输入进行计时。有时,供应商会在一个芯片中有多个计时器,而这些计时器具有彼此不同的功能。差别很大。

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

这里没有魔术,您是程序员,可以自由使用外围设备。

现在,如果您使用的是FreeRTOS之类的RTOS或其他,则您的自由度仅限于该RTOS本身不会消耗的东西(如果存在,它可能会消耗systick计时器,但会留下其他)。

答案 1 :(得分:2)

其背后的原因是,任何OS开发人员都可以为具有SysTick的任何 Cortex-M编写代码,而无需担心供应商的特定细节。可以保证SysTick在各种设备上始终以相同的方式工作,从而减少了低级的移植工作。

与您的课程相同,如果您正在编写裸机,则无需担心设备供应商,除非您使用其外围设备(计时器,uart,看门狗)。