首页/新闻资讯/正文详情

深入理解 ARMv7-M | SysTick

发布时间:2026/11/2 15:29:01 来源:云帆数科 栏目:资讯中心
深入理解 ARMv7-M | SysTick
1、The system timer, SysTickArmv7-M 实现必须包含一个系统定时器 SysTick。它是一个简单的24 位递减计数器采用 “写清除、到零回绕wrap” 机制并提供灵活的控制方式。系统可以通过多种方式使用该计数器例如作为 RTOS 的系统 tick 定时器以可编程频率触发中断例如 100 Hz并在每次触发时执行 SysTick 处理例程作为基于主处理器时钟main processor clock的高速告警定时器作为基于主处理器时钟的高速告警定时器SysTick 的输入时钟可选自主处理器时钟或外部参考时钟作为可变频率的告警或信号定时器其可用定时范围取决于参考时钟和计数器的动态范围作为可变频率的告警或信号定时器其可用定时范围取决于参考时钟频率和计数器的动态范围且由于 LOAD 可动态修改中断触发频率也可随之调整作为简单计数器软件可借此测量任务完成耗时或已用时间作为内部时钟源控制机制用于判断某段操作是否在规定时间内完成或未按时完成从而参与动态时钟管理控制环路此时可通过控制和状态寄存器中的COUNTFLAG位进行判断。2、SysTick 工作原理SysTick 包含四个寄存器控制和状态寄存器SYST_CSR用于配置 SysTick 时钟源、使能计数器、使能 SysTick 中断并提供计数器状态指示重载值寄存器SYST_RVR提供计数器回绕时加载的目标值当前值寄存器SYST_CVR保存计数器当前值校准值寄存器SYST_CALIB指示为获得 10 ms对应 100 Hz 触发频率系统时钟所需的重载值。使能后定时器从SYST_CVR中的值开始递减计数。当计数器减到零时会在下一个时钟边沿从SYST_RVR重新加载计数值随后继续递减Periodic / Auto-reload 模式。与之对应的是 One-shot 模式。计数器在到达零时重新加载的行为称为回绕。当计数器转换到零时状态位COUNTFLAG会被置 1读取COUNTFLAG会将其自动清零。SysTick 会在计数器转换到 0 时产生中断。可以参考SYST_CSR.TICKINT向SYST_CVR写入任意值都会将该寄存器和COUNTFLAG状态位清零并促使 SysTick 逻辑在下一个定时器时钟从SYST_RVR重新加载计数值。但对SYST_CVR的写操作不会直接触发 SysTick 异常。读取SYST_CVR时返回的是访问该寄存器时刻的计数器值。向SYST_RVR写入零会在下一次回绕时禁用计数器。回绕发生后SysTick 计数器逻辑将保持计数值为零。当 计数器 被禁用、计数器逻辑保持为 0实际上也意味着 SysTick 中断不会再产生。因为不会再产生由 1 - 0 的跳变转换注意将SYST_RVR设为零会独立于计数器使能位直接导致 SysTick 计数器被禁用。复位后SYST_CVR的值不确定。因此在使能 SysTick 计数器之前软件必须先向SYST_RVR写入所需重载值再向SYST_CVR执行一次写操作以将SYST_CVR清零。计数器使能后会从SYST_RVR重新加载并从该确定值开始递减而不是从一个不确定的初始值开始计数。软件可以利用校准值TENMS将计数器缩放到其他期望的时钟频率前提是该频率处于计数器的动态范围内。当处理器进入调试暂停状态Debug state时计数器不会继续递减。定时器的时钟来自参考时钟。该参考时钟可以是处理器时钟也可以是外部时钟源具体取决于实现。如果实现采用外部时钟则必须文档化处理器时钟与外部参考时钟之间的关系。进行系统时间校准时需要充分考虑亚稳态、时钟偏移和抖动等因素。3、寄存器详解3.1 SysTick Control and Status Register, SYST_CSR3.2 SysTick Reload Value Register, SYST_RVR3.3 SysTick Current Value Register, SYST_CVR3.4 SysTick Calibration value Register, SYST_CALIBSYST_CALIB是 SysTick 的 校准值寄存器只读主要用来告诉软件“在当前硬件配置下如果要得到大约 10 ms 的定时重载值应该填多少。”理想情况下如果你看到 TENMS 168000说明当前时钟下大约数 168000 个周期就是 10 ms。那你想做 1 ms tick就可以按比例算SysTick-LOAD(TENMS/10)-1;所以它的设计初衷是让软件不用显式知道 SysTick 的参考时钟频率也能快速得到一个 10 ms 量级的基准定时。但实际工程里基本不用它。工程上基本还是靠软件自己按时钟频率计算LOAD。

相关推荐

降重降AI为什么一个升一个降?论文重复率和AIGC疑似度同时降下来的办法
降重降AI为什么一个升一个降?论文重复率和AIGC疑似度同时降下来的办法

我的学校要求我们写文章,文章的查重率要≤30%,AIGC率要<40%。所以我在写完文章后就立马把文章放进检测平台里检测,检测结果还没出来的时候我就可忐忑我希望我的文章AIGC疑似度和重复率不要太高。结果出来后我自己都气笑了&#xf… · 2026/11/2 15:29:01

知网AIGC 35%算高吗?有学校AIGC检测超35%取消答辩,降AI率工具去AI写作痕迹到15%以内
知网AIGC 35%算高吗?有学校AIGC检测超35%取消答辩,降AI率工具去AI写作痕迹到15%以内

知网AIGC 35%算高吗?有学校AIGC检测超35%取消答辩,降AI率工具去AI写作痕迹到15%以内 知网AIGC 35%算高吗?不是你没认真改,是这个数字刚好落在最尴尬的位置。前两天有个读大四的读者找我,知网AIGC检测报告上AI特征值35… · 2026/11/2 15:29:01

财税找谁好
财税找谁好

一、为什么需要靠谱的财税服务商?近年来,国内电商行业爆发式增长,据商务部数据显示,2023年全国电商交易额达43.2万亿元,同比增长2.7%,其中直播电商、社区电商等细分领域增速超15%,带动大量个体工… · 2026/11/2 15:29:01

PhotoCraft CLI无头批处理:convert、run、batch、droplet命令详解
PhotoCraft CLI无头批处理:convert、run、batch、droplet命令详解

图像处理这件事,一旦从“偶尔修几张图”变成“每天要处理几百上千张”,整个思路就得彻底换掉。图形界面点来点去那套玩法,在批量场景下效率低得让人抓狂,而且没法塞进自动化流水线里。我最早接触无头批处理,就是因为一… · 2026/11/3 12:27:47

PhotoCraft CLI 无头批处理实战:convert、run、batch、droplet 全解析
PhotoCraft CLI 无头批处理实战:convert、run、batch、droplet 全解析

1. 为什么我要认真聊聊这个命令行工具PhotoCraft CLI 这个标题第一次出现在我视野里的时候,我正被一堆产品图折磨得够呛。运营那边丢过来三百多张图,要求统一裁成正方形、压到指定体积、再批量加上水印,而且第二天早上就要。我当时的第一个念… · 2026/11/3 12:27:47

Docker实现分布式系统故障注入测试实践
Docker实现分布式系统故障注入测试实践

1. 项目概述 在分布式系统越来越复杂的今天,传统的测试方法已经难以覆盖所有可能的故障场景。作为一名经历过多次线上事故的运维工程师,我深刻理解"故障注入测试"(即混沌工程)的重要性。本文将分享如何利用Docker这一轻… · 2026/11/3 12:27:47

蜂鸣器驱动电路与代码实现:从三极管选型到报警应用
蜂鸣器驱动电路与代码实现:从三极管选型到报警应用

“嗡——”的一声从面包板上响起来的时候,我在旁边松了口气。这个被我自己命名为“buzz”的蜂鸣器项目,折腾了我一个下午,从三极管接反到基极电阻选太大,中间出了不少洋相,好在一路踩过来也算是把这些坑都摸明白了。今… · 2026/11/3 12:27:47

热电联供系统与P2G碳循环优化实践
热电联供系统与P2G碳循环优化实践

1. 项目背景与核心价值 热电联供系统作为区域能源供应的重要形式,其运行优化直接影响能源利用效率和碳排放水平。传统调度模型往往只考虑电、热两种能量形式的耦合,而忽略了与氢能网络、碳循环系统的协同可能。这个项目最吸引我的地方在于,它… · 2026/11/3 12:27:47

UML状态图建模实战:图书馆借还书状态机设计与避坑指南
UML状态图建模实战:图书馆借还书状态机设计与避坑指南

简介:本资源是一份面向软件工程初学者与UML建模实践者的系统性教学PPT,聚焦UML状态图的核心建模能力培养,解决动态行为建模中状态识别、事件分类、转换逻辑与图形化表达等关键问题。内容紧扣图书馆管理系统真实项目场景,完整覆盖事… · 2026/11/3 12:26:46

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码