3-1RT-Thread时钟管理

这里写自定义目录标题

在这里插入图片描述

在这里插入图片描述
时钟节拍是RT thread操作系统的最小时间单位。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第一个功能,rt tick值自动加1,在RT thread当中通过RT_USING_SMP定义了多核和单核的场景。第二个功能,检查当前线程的时间片,首先获取当前线程,将当前线程的剩余thread值自动减1。如果线程的剩余thread值等于0,说明当前线程时间片已经超时。此时修改线程的状态为RT_THREAD_STAT_YIELD。
此状态下会使线程让出处理器的使用,然后将thread in need tick重新复制给remaining tick,同时将当前线程设置为已有的状态,然后执行后续的线程调度。最后一个功能是检查定时器的链表。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这三个定时器分别加上系统当前的时间20,从小到大排序链接到RT_time_list链表中,形成如图所示的定时器链表结构。每次时钟节拍中断时,RT_tick会自动+1并和链表中的定时器超时时间进行比较。如果rt_timer ≥ time_eout,则说明该定时器超时处理对应的回调函数。

如果创建了新的定时器,如在上图链表的基础上新创建了一个定时器timer#4,它的超时时间是330,则timer#4会根据超时时间放置在tim#2和tim#3之间。而周期性的定时器会在它再次启动时被加入定时器列表。
在这里插入图片描述
定时器在启动时会按超时时间排序插入到链表中,如果从头开始遍历链表效率会很低。当使用定时器数量比较大时,每次新创建了一个定时器并启动时会有很大的开销。

内核使用跳表算法来加速遍历速度,在rtdef.h头文件当中,通过artie mer skip list level来配置跳表的层数默认为一定时器原始有序单链表如下,如果想要查找39原始链表,需要遍历3、7、13、18、39,经过五次跳转后可以查找到结果。

那么从列表中将某些元素抽取出来加一级索引,一级索引指向了原始链表。同样查找39跳表中只需先遍历3、18、39就可以找到最终。

在这里插入图片描述

在这里插入图片描述
即定时器的类型可以是(0x0)一次性的,也可以是(0x2)周期性的。同时可以或上硬件定时器模式或软件定时器模式。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
RT thread当中常用的两个延时函数,其精度都为毫秒级。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/849937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vitis HLS 学习笔记--初始化与复位

目录 1. 简介 2. 控制初始化与复位 2.1 初始化 2.2 复位 2.3 全局复位选项 2.4 复位排除 3. 阵列初始化和复位 3.1 不使用 static 限定符 3.2 使用 static 限定符 3.3 BRAM 和 URAM 4. 总结 1. 简介 本文对比分析两个方面的初始化和复位:阵列和控制&…

Java采取擦除式泛型到底兼容了什么场景?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「 Java的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!Java擦除式泛型是一个妥协,…

美颜相机「BeautyCam」v12.0.80 祛广告解索会员版(美妆相机功能,展现女神魅力)

软件介绍 美颜相机,一款由知名移动互联网企业Meitu Inc.开发的移动设备照片编辑与美化应用,起初主要针对娱乐消费市场,随后集成了商业营销功能。目前,它已跻身全球最受欢迎的手机摄影应用程序之列。在中国,美颜相机和…

JAVA高级-反射与动态代理(十五)

观看尚硅谷视频做的视频笔记 一、高级-反射与动态代理(十四) 1、反射概述 1)java程序中,所有的对象都有两种类型:编译时类型,运行时类型,而很多时候对象的编译类型和运行时类型不一致。 此处…

workerman error 2 send buffer full and drop package

来源 报错信息:workerman error 2 send buffer full and drop package 定时发送数据的时候,本地偶尔出现这种情况 线上第一条数据发出去就报错了,数据改小一点可以发,不过一会还是会出现这种情况。 解决 根据我的经验&#xf…

SAP HCM OPT函数作用

导读 INTRODUCTION OPT函数:SAP HCM工资核算是很多函数的汇总集,原有有兴趣问过SAP的人为什么SCHEMA需要这样设计,SAP的人说是用汇编的逻辑设计的,当时是尽可能用机器语言加速速度读取,每个函数都有对应的业务逻辑代码…

React实战(一)初始化项目、配置router、redux、axios

(一)初始化项目 1.安装项目 npx create-react-app 项目名 编译报错: 解决办法:安装最新的babel-preset-react-app npm install babel-preset-react-applatest 2.配置项目 (1)配置文件目录 (2)使用craco配置webpack.config npm install craco/crac…

Coze入门指南:创建Bot时,如何写好人设与回复逻辑(Persona Prompt)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Coze Bot 📒📝 Persona & Prompt🌟 # Character🌟 ## Skills🌟 # Overall Rules to follow🌟 ## Workflow🌟 ## Constraints📝 通用写法与模板📝 示例🌟技巧和注意事项⚓️ 相关链接 ⚓️📖 介绍 📖…

免费使用GPT-4生成图片的方法

写在前言 hello,大家好,我是一点,喜欢编程,目前持续在关注AI领域的发展,希望可以结交一些有意思的朋友。 大家可以关注我的公号:【一点sir】,了解更多文章,希望可以和你们成为朋友…

OpenCompass 大模型评测平台C-Eval 基准任务评估实战

1. 引言 在人工智能迅速发展的今天,大型语言模型(LLMs)在多个领域展现出了巨大的潜力和应用价值。然而,如何评价这些模型的性能,了解它们的优缺点,成为了一个重要课题。OpenCompass,一个由上海…

使用Cython编译Python源码加密加速,有这一篇就够了!

0 前言 python是一门脚本语言,运行时由python虚拟机解释执行。当我们使用python设计好算法给第三方使用时只能提供源码,任何运行我们算法的人都可以看到源码以及对应的算法思路。因此,需要一定手动保护源码。 最简单的保护方式是使用代码混…

高光谱图像聚类的像素-超像素对比学习与伪标签校正

Pixel-Superpixel Contrastive Learning and Pseudo-Label Correction for Hyperspectral Image Clustering 文章目录 Pixel-Superpixel Contrastive Learning and Pseudo-Label Correction for Hyperspectral Image Clustering摘要引言相关方法对比学习 方法超像素对比学习像素…

【嵌入式】智能系统优化:【C++】驱动的【机器学习】与【数据挖掘】技术

目录 一、嵌入式系统简介 二、C在嵌入式系统中的优势 三、机器学习在嵌入式系统中的挑战 四、C实现机器学习模型的基本步骤 五、实例分析:使用C在嵌入式系统中实现手写数字识别 1. 数据准备 2. 模型训练与压缩 3. 模型部署 六、优化与分析 1. 模型优化 模…

什么时候用C而不用C++?

做接口只用C,千万别要C。C是编译器敏感的,一旦导出的接口里有 std::string这些东西,以及类,注定了要为各个编译器的各个版本准备独立的库。 刚好我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门…

Gitlab---添加描述模版

0 Preface/Foreword Gitlab是代码托管平台,DevOps。因其免费,被广泛使用。GitLab不但可以管理代码,也可以管理issue,创建milestone等等。针对issue管理,支持描述模版功能,即对于新建的issue,可…

深度网络学习笔记(二)——Transformer架构详解(包括多头自注意力机制)

Transformer架构详解 前言Transformer的整体架构多头注意力机制(Multi-Head Attention)具体步骤1. 步骤12. 步骤23. 步骤34. 步骤4 Self-Attention应用与比较Self-Attention用于图像处理Self-Attention vs. CNNSelf-Attention vs. RNN Transformer架构详…

【第11章】SpringBoot实战篇之文章(下)含条件分页

文章目录 前言一、文章列表查询1. ArticleController2. ArticleService 二 、文章查询1. ArticleController2. ArticleService 三、文章更新1. ArticleController2. ArticleService 四、文章删除1. ArticleController2. ArticleService 五、文章列表查询(条件分页)1.ArticleCon…

医疗器械网络安全风险管理的基本步骤

医疗器械网络安全风险管理是一个复杂的过程,涉及到多个环节和步骤。以下是一些基本的步骤和关键点: 风险识别:首先需要对医疗器械的软件、网络连接和通信协议等进行漏洞分析,识别潜在的安全漏洞和弱点。这可能涉及对设备的渗透测…

MbedTLS源码跨平台编译(window/macos/linux)

1.window平台编译: 克隆: git clone --recursive https://github.com/Mbed-TLS/mbedtls.git 克隆成功 添加OpenSSL环境变量 验证环境 使用cmake编译 cmake ../生成配置时出错 出现上面原因是克隆下来的library与programs及tests目录少文件了,直接下载zip包替换library目录

docker pull image 报错 dial tcp 31.13.88.169:443: i/o timeout

一、错误重现 error pulling image configuration: download failed after attempts6: dial tcp 31.13.88.169:443: i/o timeout 在执行docker build构建镜像,拉取镜像时报错 或者直接docker pull镜像时报错 实质都是拉取镜像源超时报错,那么就是镜像源…