Timer ARM M4中Systick和定时器的不同之处

Timer ARM M4中Systick和定时器的不同之处,timer,arm,cortex-m,Timer,Arm,Cortex M,我用8051完成了一个基本的微处理器。在本课程中,我学习了使用计时器触发事件。一个学期后,我学习了用ARM Cortex M4(Tiva C launchpad)编程嵌入式系统,并开始使用Systick触发事件(几乎用于FreeeRTOS),有时还用作计时器 我想知道定时器和systick有什么不同?因为有时候我 认为systick行为与计时器相同。我已经搜索过了 不同的是,要知道:systick在arm内核中,定时器是芯片供应商的 在哪种情况下我们应该使用systick intead而不是使

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

  • 我想知道定时器和systick有什么不同?因为有时候我 认为systick行为与计时器相同。我已经搜索过了 不同的是,要知道:systick在arm内核中,定时器是芯片供应商的
  • 在哪种情况下我们应该使用systick intead而不是使用定时器? 请让我知道。多谢各位

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

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

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

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


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

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

      对于您的课程也是如此,如果您编写的是裸机,您不需要担心设备供应商,直到您使用他们的外围设备(计时器、uart、看门狗)