ARM M4中Systick和Timer之间的区别

问题描述 投票:0回答:2

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

  • 我想知道计时器和systick有什么区别?因为有时我认为systick行为与计时器相同。我搜索了不同的内容,并且知道:systick是arm core,而定时器是芯片供应商。
  • 我们应该使用systick而不是使用计时器?请告诉我。谢谢。
timer arm cortex-m
2个回答
2
投票

这背后的原因是任何操作系统开发人员都可以为任何具有SysTick的Cortex-M编写代码,而不必担心供应商的具体细节。可以保证SysTick在各种设备上始终以相同的方式工作,因此可以完成较少的低级移植。

对于您的课程也是如此,如果您正在编写裸机,则在使用外围设备(定时器,uart,看门狗)之前,您无需担心设备供应商。


4
投票

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

它们很可能具有不同的功能,systick定时器几乎只用于简单持续时间的轮询或中断。如果芯片供应商的定时器通常可以做更多的事情,有时它们可​​以为其他定时器生成时钟,有时它们可​​以生成时钟或信号从引脚输出,有时它们可​​以定时输入。有时供应商将在芯片中具有多个定时器,并且这些定时器具有彼此不同的特征。它差异很大。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.