1278_FreeRTOS_借助prvAddCurrentTaskToDelayedList接口理解delayed task
全部学习汇总: GitHub - GreyZhang/g_FreeRTOS: learning notes about FreeRTOS.
prvAddCurrentTaskToDelayedList()是上次分析vTaskDelay()的时候遗留的一个接口,这一次把这个接口简单分析一下。简单梳理了一下,发现这个接口其实解答了我之前对于delayed task 链表的一些疑惑。
把当前的任务加入到延迟处理的链表之中,也就意味着当前的任务需要从就绪任务链表中移除。但是,移除当然任务可能会导致当前任务所属的优先级就绪任务链表为空,那么就得复位相应的优先级就绪状态位。
如果延时时间是一个极大值或者是允许无限阻塞,那么直接把任务挂起。我觉得这个处理是不是欠缺一点“细腻”?如果就是想延时一个极大值,这个地方就实现不了了。
如果是有限的延时,那么进入到正常的处理流程。首先,设置当前任务的一个唤醒时间。这个时间其实是一个单位为tick的时间标度在未来的一个数值。因此,可能有超出最大数值的情况。如果这种情况,数据会回滚,可以通过将唤醒时间与当前的tick值做对比来判断是否有这种情况出现。如果出现,那么在当前的delayed task中继续处理就不合适了,需要在溢出的delayed task中处理。这就是之前看到的链表信息出现了两次的原因。如果没有溢出,在正常的链表处理,如果溢出则在溢出链表处理。当然,从这个角度看其实一般的配置下,溢出链表使用频率可能不大,或者说里面有任务的时候不多。这里还有一个点,那就是xNextTaskUnblockTime。这其实是delayed task所有的任务第一个将被唤醒的task。这样,有一个模糊的概念也清晰了。
后面这部分在我目前的配置中没生效,暂且不做分析,后面我会尝试各种不同的配置,到时候针对不同的配置再做相关部分的解读。
1278_FreeRTOS_借助prvAddCurrentTaskToDelayedList接口理解delayed task相关推荐
- 如果我的接口必须返回Task,那么实现无操作的最佳方法是什么?
本文翻译自:If my interface must return Task what is the best way to have a no-operation implementation? I ...
- java的接口理解_原来Java的接口可以这样理解
为什么写这篇文章 今天有人问了我这样一个问题 Java中为什么要使用接口呢? 还要先定义了一个接口,类还要实现接口的方法,还不如直接在这个类中写实现方法呢,根本没必要定义接口啊. 大概就是这样一个问题 ...
- 对接京东获取任务工单接口jingdong.homefw.task.search,附接口字段详细说明,数据库设计,Java实现
目录 接口详细说明 jingdong.homefw.task.search(获取任务工单) 任务工单字段详细说明 数据库设计 任务工单表结构 日志表结构 接口Java实现 接口详细说明 jingdon ...
- 借助 Adobe Scout 理解 Flash Player
原文链接 Adobe Scout 用于优化 Flash 内容,是一款极为强大的工具,因为它能让您看到 Flash Player 幕后正在发生的事情.但是若明白 Flash Player 为什么做这些事 ...
- 史万奎:借助“易经”理解《十四五发展规划》
尊位之战,暴风席卷万物,会带来巨大的流血和牺牲,也会释放出特别的"肥力",从而酝酿适合众生的新沃土.新机遇--这是<易经▪坤卦>篇第六爻"龙战于野,其血玄黄& ...
- hibernate的Transaction接口理解
Transaction接口是对事物实现的一个抽象,这些实现包括JDBC事务等.Hibernate框架中的事物通过hibernate.cfg.xml文件选择JDBC.在transaction接口中定义了 ...
- bundle传递对象与Serializable、Parcelable接口理解和思考
bundle.putSerializable 或者 bundle.putParcelable 传进去的对象一定要implements Parcelable 或者 Serializable 这两个接口. ...
- Myabtis-plus中IService接口理解
为何在controller中直接注入service层的CategoryService接口即可查询数据? 首先,CategoryService接口继承了IService接口,而IService接口封装了 ...
- java8_新增特性:函数式接口理解
Consumer 消费者 类似于消费者,只需要提供参数供消费,不提供返回,所以默认是返回void ,看情况接受几个参数,看情况接受参数的类别,但从始至终是不接受返回的 Function 函数 函 ...
最新文章
- TCP的三次握手和四次分手
- 让VB菜鸟最快写出自己的外挂.通杀所有游戏
- 成功解决win系统电脑中网络仅看到自己计算机图文教程
- MoeCTF 2021Re部分------time2go
- 《algorithm-note》算法笔记中文版正式发布!
- 在线计算机多功能,一种多功能组合计算机制造技术
- 转载:flash 跨域 crossdomain.xml
- 【Flink】Flink 上海会议 【视频笔记】
- pythonenumapi_python模块之enum_上
- 某集团BI决策系统建设方案分享
- 踢爆关于创业公司的五大认知误区!
- 【小白冲冲冲!!!】37. ORBSLAM初始化时为什么要同时初始化H矩阵和F矩阵?
- LeetCode-108将有序数组转换为二叉搜索树
- Java——File类,递归
- Spark(Core)
- L. Leverage MDT
- MYSQL 常用命令大全整理
- 用计算机代码怎么表白,程序员如何用代码向喜欢的人表白?
- 名校400门免费人文社科公开课视频合集!
- 阿里巴巴店铺的所有商品API接口(item_search_shop-获得店铺的所有商品接口),阿里巴巴API接口
热门文章
- 制造业管理系统如何帮助企业做好物料编码管理?
- QQRobot一款基于Java的娱乐qq机器人
- SSM在线车队货车管理系统
- 搞笑而富有哲理,看完后一个字——————“爽”
- iOS12.4越狱了!只要这几步就能越狱,方法教程
- 数据结构之图:邻接矩阵和邻接表、深度优先遍历和广度优先遍历
- class torch.optim.lr_scheduler.LambdaLR
- 笑破肚皮!考驾照现场的爆笑故事!
- three.js 导入显示模型的时候自动计算模型缩放比例
- python 自然语言处理 形态学