![μ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=1739266497-qKzJCieIHFhR4UnZyZZq4c2MZAVKZA6Z-0-6a3e1b4b43f1740260927b6ff9803d52)
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=1739266497-N1NGcI6PPKbXXYYg1YuB361ymklWGxwH-0-c48fb1fc8a8e5c3f15564f2d6df42360)
表4-3 SysTick 重装载数值寄存器
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/039-3-i.jpg?sign=1739266497-1e1Dry3eKh9stJDyZfMrKjxsitnsDhCG-0-556f57e189bb7004843845b0e0a317e7)
表4-4 SysTick当前数值寄存器
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/040-i.jpg?sign=1739266497-HMfKG0entCl4DVuTmuhLz8JvmDLwN3fT-0-5be5a1c19479a91945779ac014a8b278)