嵌入式学习笔记 - freeRTOS 阻塞延时的实现机制,同时避免在中断中扫描停留

article/2025/8/20 4:09:29

一 freeRTOS 阻塞延时到期激活的实现机制,同时避免在中断中扫描停留

任务在激活阻塞时先根据延时时间赋值NextTaskUnlockTime,再扫描延时列表的所有节点,然后根据延时时间确定插入链表的什么位置,如下图:

上图中横线就是任务启动延时时,将任务节点插入延时列表激活阻塞

上图中横线就是通过轮询方式查找位置并插入,如下图函数具体实现中的for语句,可见delayedlist延时列表的两个链表里节点都是按照延时时间顺序排列的因为插入的时候是按照顺序插入的。(题外话:而就绪列表里的节点并不是按照顺序插入的,因为优先级都一样,每次都是直接插入链表末端使用的插入函数是vListInsertEnd,所以就绪列表里的节点的辅助值没什么意义)。

systick中断只需根据NextTaskUnlockTime激活延时列表的第一个节点即可(激活是通过删除延时列表节点并添加到就绪列表的的方式,有可能不止一个节点但是肯定靠在前面),按大小插入延时列表肯定要排序,

这样就把扫描排序交给任务了,避免了在中断中停留太久的问题。如下图:

二 总结

freeRTOS实现阻塞延时的方式就是对两个延时列表进行扫描操作

加入延时列表时,扫描延时列表,根据延时值顺序插入延时列表,

退出延时列表时,不需要扫描,直接从第一个任务节点开始边判断边从延时列表删除相应的节点,直到xConstTickCount < xItemValue。

两个延时列表形成互补防止时基溢出交界之时无法处理的问题。

static List_t   xDelayedTaskList1;
static List_t    xDelayedTaskList2;
static List_t *  volatile pxDelayedTaskList;
static List_t *  volatile pxOverflowDelayedTaskList;

注意这里定义两个延时链表的方式也很巧妙,分别定义了两个链表变量,然后定义了两个链表指针,分别指向两个链表,这样可以灵活的运用两个指针,当想要操作的对象改变时只需要对指针交换指针指向的地址即可。


http://www.hkcw.cn/article/NVdoiaaqqj.shtml

相关文章

LabVIEW超宽带紧凑场测量系统

采用 LabVIEW 开发超宽带紧凑场测量系统&#xff0c;实现天线方向图、目标雷达散射截面&#xff08;RCS&#xff09;及天线增益的自动化测量。通过品牌硬件设备&#xff0c;优化系统架构&#xff0c;解决传统测量系统在兼容性、数据处理效率及操作便捷性等方面的问题&#xff0…

python实战项目72:爬取天气网数据

python实战项目72:爬取天气网数据 一、项目背景二、数据采集流程2.1 寻找数据接口2.2 发送请求、获取数据2.3 解析数据2.4 保存数据三、完整代码一、项目背景 项目需求是获取天气网某城市(这里以长沙为例)2024年的天气数据。 二、数据采集流程 2.1 寻找数据接口 点击天气…

长春"氢春号"全国首列氢能源文旅有轨列车

长春"氢春号"全国首列氢能源文旅有轨列车,一缕氢风入春城。责任编辑:zx0002

Dubbo快速入门 - Java分布式框架

Dubbo是一款高性能、轻量级的开源Java RPC框架&#xff0c;提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册和发现、运行期流量调度、可视化服务治理和运维等功能。 课程连接&#xff1a;06-dubbo概述_哔哩哔哩_bilibili 一、Feign和Dubbo的比较 Feign和Dubbo…

近5万元翡翠手镯被快递员弄丢 仅赔60多 未保价引发争议

近5万元翡翠手镯被快递员弄丢 仅赔60多 未保价引发争议!近日,佛山的陈小姐网购了一只价值49800元的翡翠手镯。由于银行卡限额,她分三次支付了款项。收到货后她不太满意,选择了退货退款。当天上门收件的是顺丰速运,然而第二天晚上,陈小姐被告知快件丢失了。快递员在22日早…

自动脚本精灵 解锁会员版 v25.05.25 智能安卓自动点击脚本助手APP

自动脚本精灵 解锁会员版 v25.05.25 智能安卓自动点击脚本助手APP 重复性操作是效率的隐形杀手&#xff0c;无论是办公场景中的文件整理、数据录入&#xff0c;还是游戏中的日常任务、副本挑战&#xff0c;甚…

在Windows电脑上可以记录备忘事项一类的工具推荐

在现代职场中&#xff0c;高效的时间管理和任务记录是提升工作效率的关键。借助电脑工具记录工作备忘&#xff0c;不仅可以帮助我们理清思路&#xff0c;还能避免遗漏重要事项。今天&#xff0c;我将为大家推荐几款在 Windows 电脑上表现优异的备忘录软件。 敬业签 敬业签是…

Spring AI(9)——MCP客户端

Spring AI的MCP客户端介绍 模型上下文协议 &#xff08;MCP&#xff09; 是一种标准化协议&#xff0c;使 AI 模型能够以结构化方式与外部工具和资源交互。 它支持多种传输机制&#xff0c;以便在不同环境中提供灵活性。 MCP Java SDK 提供模型上下文协议的 Java 实现&#x…

REALTECK瑞昱推出RTS5411T USB3.2 Gen1x1 超高速 USB 集线器控制器原厂代理分销经销一级代理分销经销

REALTECK瑞昱推出RTS5411T USB3.2 Gen1x1 超高速 USB 集线器控制 REALTECK瑞昱推出RTS5411T USB3.2 Gen1x1 超高速 USB 集线器控制器原厂代理分销经销一级代理分销经销 ​​ REALTECK瑞昱推出RTS5411T USB3.2 Gen1x1 超高速 USB 集线器控制器原厂代理分销经销一级代理分销经…

CppCon 2014 学习第3天:Viewing the world through array-shaped glasses

在内存中&#xff0c;数据是否是连续存储的&#xff0c;会对程序的性能产生显著影响。 为什么连续性重要&#xff1f; 缓存友好&#xff08;Cache-friendly&#xff09;&#xff1a;连续的数据访问能充分利用 CPU 缓存&#xff0c;速度更快。减少指针跳跃&#xff1a;非连续的…

【拼题A打卡奖励 / 01背包 W V转换】

题目 解法 如果直接上一维空间优化&#xff0c;也会因为时间上限太大而超时 注意到价值上限较小&#xff0c;于是将VW转换 状态定义从f(i, j) 1-i物品逐个决策&#xff0c;使得时间不超过j&#xff0c;价值最大 改为&#xff1a; 1-i物品逐个决策&#xff0c;使得价值正好等于…

《关于建立国际调解院的公约》签署仪式在香港举行

《关于建立国际调解院的公约》签署仪式在中国香港举行5月30日上午,《关于建立国际调解院的公约》签署仪式在中国香港举行。调解是《联合国宪章》规定的重要争端解决方式之一,推崇“以和为贵”,充分尊重当事方意愿,具有更灵活、更经济、更便捷、更易执行等独特优势,也体现了…

女子用高压锅煮粽子厨房被炸一片狼藉 警惕高压锅变“炸弹”

女子用高压锅煮粽子厨房被炸一片狼藉 警惕高压锅变“炸弹”。端午将至,许多人已经准备好糯米、粽叶和各种馅料,打算在家制作美味的粽子。然而,使用高压锅煮粽子时需格外小心,以免发生意外。去年,浙江温州一名61岁女子在家中用高压锅煮粽子时,因饭粒堵塞排气孔导致高压锅爆…

汕头1.14亿元违建几小时拆完 违法建筑的必然结局

汕头1.14亿元违建几小时拆完 违法建筑的必然结局!5月28日,汕头市潮阳区西胪镇西二社区估值1.14亿元的违法建筑群“英之园”被依法拆除。网络视频显示,当天数十台挖机同时作业,祠堂、四合院等豪华建筑群已成废墟。西二社区一位村民透露,5月27日深夜,多台挖机开进村里,次日…

NCBI保姆级使用教程(包含如何查找CDS、启动子、5‘UTR和3‘UTR、lncRNA序列)

一、NCBI数据库简介 NCBI&#xff0c;全称为美国国家生物技术信息中心&#xff08;National Center for Biotechnology Information&#xff09;&#xff0c;是美国国立卫生研究院&#xff08;National Institutes of Health&#xff09;的一个部门。NCBI成立于1988年&#xf…

PostgreSQL如何更新和删除表数据

这节说下怎样更新和删除表数据&#xff0c;当然认识命令了&#xff0c;可以问AI帮忙写。 接上节先看下天气表weather的数据&#xff0c;增加了杭州和西安的数据&#xff1a; 一.UPDATE更新命令 用UPDATE命令更新现有的行。 假设所有 杭州 5月12日的温度低了两度&#xff0c;用…

胖东来红内裤事件宣判:博主赔40万 名誉权纠纷落锤

2025年5月28日,许昌市魏都区人民法院公开审理了许昌市胖东来商贸集团有限公司与段某之间的名誉权纠纷案,并当庭宣判。法院判决段某在其个人抖音账号“两个小段(小)”发布书面道歉信的视频,且内容需经法院审核,发布后30日内不得删除;同时,段某需赔偿许昌市胖东来商贸集团…

一支烟能造成的危害远超你想象 !

一支烟能造成的危害远超你想象央视网原创解析。说到抽烟有什么坏处,哪怕是常年抽烟的人也能说出个一两句,但是真让抽烟者去戒烟,却是十分困难。为什么戒烟这么难?明明烟这么难闻,他们为什么爱抽烟?你以为在室外抽根烟,就不会影响家人健康了?大错特错!二手烟、三手烟的…

高铁站现“200寸巨型行李箱” 网友:这是要装下世界了?

近日,江西某地高铁站惊现一个“200寸巨型行李箱”,视频中能看到,两位女生合力才能推动这个巨型行李箱,还有热心的路人小哥上前帮忙,这个行李箱高度有近3米,和周围出站的行李箱形成鲜明对比,出站路人纷纷掏出手机拍照调侃:这集装箱进得去火车站吗?责任编辑:zx0002

普京会见安倍晋三遗孀 后者一度落泪 缅怀故人贡献

俄罗斯总统普京于5月29日在莫斯科会见了已故日本前首相安倍晋三的遗孀安倍昭惠。普京表达了对安倍晋三在俄日关系发展中所做贡献的认可,并向安倍昭惠赠送了一束鲜花。会谈中,安倍昭惠情绪激动,一度哽咽落泪。据媒体报道,在担任日本首相期间,安倍晋三与普京进行了多达27次面…