全部学习汇总: 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相关推荐

  1. 如果我的接口必须返回Task,那么实现无操作的最佳方法是什么?

    本文翻译自:If my interface must return Task what is the best way to have a no-operation implementation? I ...

  2. java的接口理解_原来Java的接口可以这样理解

    为什么写这篇文章 今天有人问了我这样一个问题 Java中为什么要使用接口呢? 还要先定义了一个接口,类还要实现接口的方法,还不如直接在这个类中写实现方法呢,根本没必要定义接口啊. 大概就是这样一个问题 ...

  3. 对接京东获取任务工单接口jingdong.homefw.task.search,附接口字段详细说明,数据库设计,Java实现

    目录 接口详细说明 jingdong.homefw.task.search(获取任务工单) 任务工单字段详细说明 数据库设计 任务工单表结构 日志表结构 接口Java实现 接口详细说明 jingdon ...

  4. 借助 Adobe Scout 理解 Flash Player

    原文链接 Adobe Scout 用于优化 Flash 内容,是一款极为强大的工具,因为它能让您看到 Flash Player 幕后正在发生的事情.但是若明白 Flash Player 为什么做这些事 ...

  5. 史万奎:借助“易经”理解《十四五发展规划》

    尊位之战,暴风席卷万物,会带来巨大的流血和牺牲,也会释放出特别的"肥力",从而酝酿适合众生的新沃土.新机遇--这是<易经▪坤卦>篇第六爻"龙战于野,其血玄黄& ...

  6. hibernate的Transaction接口理解

    Transaction接口是对事物实现的一个抽象,这些实现包括JDBC事务等.Hibernate框架中的事物通过hibernate.cfg.xml文件选择JDBC.在transaction接口中定义了 ...

  7. bundle传递对象与Serializable、Parcelable接口理解和思考

    bundle.putSerializable 或者 bundle.putParcelable 传进去的对象一定要implements Parcelable 或者 Serializable 这两个接口. ...

  8. Myabtis-plus中IService接口理解

    为何在controller中直接注入service层的CategoryService接口即可查询数据? 首先,CategoryService接口继承了IService接口,而IService接口封装了 ...

  9. java8_新增特性:函数式接口理解

    Consumer 消费者 类似于消费者,只需要提供参数供消费,不提供返回,所以默认是返回void ,看情况接受几个参数,看情况接受参数的类别,但从始至终是不接受返回的 Function 函数    函 ...

最新文章

  1. TCP的三次握手和四次分手
  2. 让VB菜鸟最快写出自己的外挂.通杀所有游戏
  3. 成功解决win系统电脑中网络仅看到自己计算机图文教程
  4. MoeCTF 2021Re部分------time2go
  5. 《algorithm-note》算法笔记中文版正式发布!
  6. 在线计算机多功能,一种多功能组合计算机制造技术
  7. 转载:flash 跨域 crossdomain.xml
  8. 【Flink】Flink 上海会议 【视频笔记】
  9. pythonenumapi_python模块之enum_上
  10. 某集团BI决策系统建设方案分享
  11. 踢爆关于创业公司的五大认知误区!
  12. 【小白冲冲冲!!!】37. ORBSLAM初始化时为什么要同时初始化H矩阵和F矩阵?
  13. LeetCode-108将有序数组转换为二叉搜索树
  14. Java——File类,递归
  15. Spark(Core)
  16. L. Leverage MDT
  17. MYSQL 常用命令大全整理
  18. 用计算机代码怎么表白,程序员如何用代码向喜欢的人表白?
  19. 名校400门免费人文社科公开课视频合集!
  20. 阿里巴巴店铺的所有商品API接口(item_search_shop-获得店铺的所有商品接口),阿里巴巴API接口

热门文章

  1. 制造业管理系统如何帮助企业做好物料编码管理?
  2. QQRobot一款基于Java的娱乐qq机器人
  3. SSM在线车队货车管理系统
  4. 搞笑而富有哲理,看完后一个字——————“爽”
  5. iOS12.4越狱了!只要这几步就能越狱,方法教程
  6. 数据结构之图:邻接矩阵和邻接表、深度优先遍历和广度优先遍历
  7. class torch.optim.lr_scheduler.LambdaLR
  8. 笑破肚皮!考驾照现场的爆笑故事!
  9. three.js 导入显示模型的时候自动计算模型缩放比例
  10. python 自然语言处理 形态学