![μ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=1739285648-XJHv9S4qgAaV7qcMPKB44chb4MUjwSpR-0-6212f8e69af999339d5e0f183b214a92)
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=1739285648-NBAqdpQU5QbOKNwojib7caJtTU40aQPt-0-bfa13addd6039fd95fc0603499c4e8be)
表4-3 SysTick 重装载数值寄存器
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/039-3-i.jpg?sign=1739285648-aCVY8i7MwoCkXEuIYmXG39sAW30LMjxC-0-558592cd7bd8bd39e4c20c79d541fd69)
表4-4 SysTick当前数值寄存器
![](https://epubservercos.yuewen.com/A0F420/14226695803682006/epubprivate/OEBPS/Images/040-i.jpg?sign=1739285648-mdECoIUAIoA3InGafoZXhEzXr8fNB06b-0-7923162494e38f2499da45f974d54d86)