ARMCortex-M4集成了一个SysTick,它提供了一种简单的、24位写清零(clear-on-write)、递减的、计数值减到零后 自动重载(wrap-on-zero)的计数器,该计数器带有灵活的控制机制。SysTick其实就是一个定时器而已,只是它放在了NVIC中,主要的目的是为了给操作系统提供一个硬件上的中断(也称作“滴答中断”)。那么什么是滴答中断呢?这里来简单地解释一下。当操作系统进行运转的时候,也会有“心跳”。它会根据“心跳”的节拍来工作,把整个时间段分成很多小小的时间片,每个任务每次只能运行一个“时间片”的时间长度就得退出给别的任务运行,这样可以确保任何一个任务都不会霸占整个系统不放。或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心跳”的节律。 只要不把它在SysTick控制及状态寄存器中的使能位清除,就永不停息。
|