当前位置: 首页 > web >正文

Cortex-M内核SysTick定时器介绍

1.SysTick定时器简介

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

; Vector Table Mapped to Address 0 at ResetAREA    RESET, DATA, READONLYEXPORT  __VectorsEXPORT  __Vectors_EndEXPORT  __Vectors_Size__Vectors       DCD     __initial_sp               ; Top of StackDCD     Reset_Handler              ; Reset HandlerDCD     NMI_Handler                ; NMI HandlerDCD     HardFault_Handler          ; Hard Fault HandlerDCD     MemManage_Handler          ; MPU Fault HandlerDCD     BusFault_Handler           ; Bus Fault HandlerDCD     UsageFault_Handler         ; Usage Fault HandlerDCD     0                          ; ReservedDCD     0                          ; ReservedDCD     0                          ; ReservedDCD     0                          ; ReservedDCD     SVC_Handler                ; SVCall HandlerDCD     DebugMon_Handler           ; Debug Monitor HandlerDCD     0                          ; ReservedDCD     PendSV_Handler             ; PendSV HandlerDCD     SysTick_Handler            ; SysTick Handler; External InterruptsDCD     WWDG_IRQHandler            ; Window WatchdogDCD     PVD_IRQHandler             ; PVD through EXTI Line detectDCD     TAMPER_IRQHandler          ; TamperDCD     RTC_IRQHandler             ; RTCDCD     FLASH_IRQHandler           ; Flash...省略...DCD     DMA2_Channel3_IRQHandler   ; DMA2 Channel3DCD     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开头的寄存器就是这个计数器的相关配置寄存器,寄存器的具体内容就不在这里说了。
在这里插入图片描述

http://www.xdnf.cn/news/16500.html

相关文章:

  • [2025CVPR-图象合成、生成方向]ODA-GAN:由弱监督学习辅助的正交解耦比对GAN 虚拟免疫组织化学染色
  • 【Keepalived】高可用集群
  • 香港本地和国际金融科技应用
  • Javaweb————HTTP的九种请求方法介绍
  • RoPE:相对位置编码的旋转革命——原理、演进与大模型应用全景
  • 【micro:bit】从入门到放弃(六):示例蜂鸣器音乐、摇色子、光照强度、串口调试、麦克风
  • mac版SVN客户端
  • “Datawhale AI夏令营”「结构化数据的用户意图理解和知识问答挑战赛」1
  • 最优估计准则与方法(5)加权最小二乘估计(WLS)_学习笔记
  • 【图像分割】记录1:unet, yolov8_seg
  • 基于springboot的在线数码商城/在线电子产品商品销售系统的设计与实现
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘ipython’问题
  • 【iOS】网易云仿写
  • 【守护】同为科技SPD:AP-20D/4P产品解析
  • 【leetGPU】1. Vector Addition
  • 其他世界的自来水
  • 统计与大数据分析与数学金融课程解析
  • ThreadLocal--ThreadLocal介绍
  • 技术 — 资本双螺旋:AI 时代的投资浪潮与技术突破
  • vulhub-earth靶机攻略
  • Mixture-of-Recursions: 混合递归模型,通过学习动态递归深度,以实现对自适应Token级计算的有效适配
  • 什么是缓存雪崩?缓存击穿?缓存穿透?分别如何解决?什么是缓存预热?
  • QT中启用VIM后粘贴复制快捷键失效
  • SQL Developer Data Modeler:一款免费跨平台的数据库建模工具
  • Linux c++ CMake常用操作
  • 数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
  • 融合为体,AI为用:数据库在智能时代的破局之道
  • petalinux配置总结
  • 卫星通信终端天线对星之:参考星对星
  • SSE (Server-Sent Events) 服务出现连接卡在 pending 状态的原因