Cortex-M内核SysTick定时器介绍

1.SysTick定时器简介

SysTick定时器是ARM Cortex-M系列的芯片内核中一个重要的24位递减定时器,所有的这个系列的内核都有这个定时器,并且都是24位的,考虑到硬件效率,所以都是24位,正点原子STM32系列课程中的老师说的系统滴答就是指这个定时器,集成在NVIC(嵌套向量中断控制器)中,主要用于提供精确的时基和周期性中断。根据下面启动文件中的内容来看,中断向量表的最后一个内部中断就是这个计时器的中断,进一步说明了所有使用这个系列内核的芯片都可以配置这个定时器,除了STM32以外还有英飞凌的TLE986x和TLE987x系列,以及恩智浦的S32K和S32M系列等。

ARM 复制代码
; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp               ; Top of Stack
                DCD     Reset_Handler              ; Reset Handler
                DCD     NMI_Handler                ; NMI Handler
                DCD     HardFault_Handler          ; Hard Fault Handler
                DCD     MemManage_Handler          ; MPU Fault Handler
                DCD     BusFault_Handler           ; Bus Fault Handler
                DCD     UsageFault_Handler         ; Usage Fault Handler
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     SVC_Handler                ; SVCall Handler
                DCD     DebugMon_Handler           ; Debug Monitor Handler
                DCD     0                          ; Reserved
                DCD     PendSV_Handler             ; PendSV Handler
                DCD     SysTick_Handler            ; SysTick Handler
                
                ; External Interrupts
                DCD     WWDG_IRQHandler            ; Window Watchdog
                DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler          ; Tamper
                DCD     RTC_IRQHandler             ; RTC
                DCD     FLASH_IRQHandler           ; Flash
                ...
                省略
                ...
                DCD     DMA2_Channel3_IRQHandler   ; DMA2 Channel3
                DCD     DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 & Channel5
__Vectors_End

2.SysTick定时器配置

正如前面说的,这个定时器是内核定时器,和内核使用的是同一个时钟源,所以它的计时也是最稳定的,如果单片机带有操作系统,那基本都会选择这个定时器作为时钟源。而且一般都会配置为1ms,主要因为如果配置为更短周期​,比如100μs,中断触发频繁,增加CPU开销,降低效率,如果配置为更长周期​,比如10ms,任务响应延迟增大,实时性降低。​1ms在实时性和资源消耗间取得较好平衡,适合多数控制类应用(如工业传感器、电机控制)。SysTick的1ms配置是"约定俗成"的实践(比如英飞凌TLE986x和TLE987x系列芯片的底层寄存器配置工具无法配置这个计时器的计数周期,默认就是1ms,估计是厂商认为可以但没必要),但开发者完全有权按需修改(比如即使配置工具无法配置,但是仍然可以通过手动修改源码来配置相关寄存器并使新的计数周期生效),毕竟它的本质还是一个可编程的24位倒计时器。配置寄存器如下图所示,这是英飞凌TLE986x手册的截图,对于其他类型使用cortex-M3内核的芯片来说这部分一模一样,更详细的内容可以查看ARM Cotrex-M3权威指南,0xE000E000到0xE000EFFF的地址空间是内核寄存器,下面的Table 45中以SYSTICK开头的寄存器就是这个计数器的相关配置寄存器,寄存器的具体内容就不在这里说了。

相关推荐
Zw-awa6 小时前
从 CPU 搬运到自动搬运:DMA、空闲中断和两块缓冲
stm32
无敌贵点大王7 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何7 小时前
二进制和十六进制
stm32·单片机
国科安芯8 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
TST-魚爷8 小时前
小型视频会议室音频踩坑:一体化拾音扩音方案实测分享(易视讯)
stm32·电脑·音视频·钉钉·腾讯会议·zoom会议
不昀10 小时前
RMII切到10Mbps,50MHz参考时钟也要降到5MHz吗?
单片机·嵌入式硬件·硬件设计·以太网接口
路上有只喵11 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇6
单片机·嵌入式硬件
集芯微电科技有限公司13 小时前
40V/24A高频率增强型GaN HEMT功率开关管/高频DC转换/电动工具/GaN充电器 方案首选
人工智能·科技·单片机·嵌入式硬件·深度学习·神经网络·生成对抗网络
十八岁牛爷爷13 小时前
STM32H7 长时间运行后 HTTP 断连:从“串口还活着”到 TX 描述符错账
stm32·单片机·嵌入式硬件
Lxx_Zw13 小时前
串口命令如何从字符串长成协议:帧头、长度、校验和与状态机
c语言·stm32·单片机·嵌入式硬件