![μC/OS-III内核实现与应用开发实战指南:基于STM32](https://wfqqreader-1252317822.image.myqcloud.com/cover/857/25755857/b_25755857.jpg)
上QQ阅读APP看书,第一时间看更新
4.1 SysTick简介
表4-1 SysTick寄存器汇总
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/039-i.jpg?sign=1739452443-NZzkqcikQhSTmdnMXw0rFBbrt1WiJfeK-0-27cc4b7143118c9cb0645d58d407b3cf)
RTOS需要一个时基来驱动,系统任务调度的频率等于该时基的频率。通常该时基由一个定时器来提供,也可以从其他周期性的信号源获得。恰好Cortex-M内核中有一个系统定时器SysTick,它内嵌在NVIC中,是一个24位的递减的计数器,计数器每计数一次的时间为1/SYSCLK。当重装载数值寄存器的值递减到0时,系统定时器就产生一次中断,按此循环。因为SysTick是嵌套在内核中的,所以不必修改操作系统在Cortex-M器件中编写的定时器代码,这使移植工作变得简单很多,因此SysTick是最适合给操作系统提供时基,用于维护系统心跳的定时器。有关SysTick的寄存器汇总如表4-1所示,常用寄存器的用法如表4-2~表4-4所示。
表4-2 SysTick控制及状态寄存器
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/039-2-i.jpg?sign=1739452443-JYcMT0781iGo1fJJWGFuzDIz7uwLK633-0-e0016c6ad77fadd435f91d82327fe73c)
表4-3 SysTick 重装载数值寄存器
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/039-3-i.jpg?sign=1739452443-4dyveSLqp6Rl8vhFUDPRdLKJToXUmEWD-0-a058e67cff1811dfc6734f0f0b753557)
表4-4 SysTick当前数值寄存器
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/040-i.jpg?sign=1739452443-AXvPzWhf4FZ1sTHdWDLD2ZHTyFSdKNLH-0-b36cf724c943198c25b85bd17807ae04)