美文网首页
lwip中定时器工作原理

lwip中定时器工作原理

作者: 小灰_06e4 | 来源:发表于2020-08-10 15:04 被阅读0次

1、数据结构表示

        超时定时器是按单链表结构进行组织的,链表按超时的时间从小到大进行排序,list的头指向超时时间最小的节点

2、数据结构的维护(增删改查)

2.1新定时器的插入(生产者调用该接口)

通过下面接口向队列中插入新的定时器

void sys_timeout(u32_t msecs, sys_timeout_handler handler, void *arg);

2.2 超时的检测(消费者调用该接口)

通过sys_check_timeouts()接口检测是否有超时的定时器,裸机应用程序在外部周期性调用该函数,每次进来检查定时器链表上定时最短的定时器是否到期,因为链表是有序的,头指针指向的节点即为时间最短的定时器。如果没有到期的定时器,直接退出该函数,否则,执行该定时器回调函数,并从链表上删除该定时器,然后继续检查下一个定时器,直到没有一个定时器到期退出

2.3 队列的初始化

周期定时器节点表示

周期定时器数组

调用void sys_timeouts_init(void)接口初始化lwip_cyclic_timers数组,这里需要注意的是超时处理函数lwip_cyclic_timer,该接口在定时器超时的时候会被调用,而且它通过调用自身(第258行)将新的超时定时器加入链表,从而实现周期定时器功能。

相关文章

  • lwip中定时器工作原理

    1、数据结构表示 超时定时器是按单链表结构进行组织的,链表按超时的时间从小到大进行排序,list的头指向超...

  • Golang面试之HTTP

    引用 HTTP协议详解 HTTP协议原理详解及应用 LwIP应用开发笔记之八:LwIP无操作系统HTTP客户端 U...

  • LwIP 2.1.0学习摘要

    参考:lwIP Wiki | FANDOM powered by Wikia 参考:lwIP: Overview ...

  • LwIP 2.1.0 TCP学习摘要

    参考:lwIP Wiki | FANDOM powered by Wikia 参考:lwIP: Overview ...

  • RTOS基础(软定时器)

    软定时器原理与创建 问题概述 设计原理 设计实现 软定时器的启动与停止 设计原理 设计实现 软定时器的删除与状态查...

  • 复习笔记之API(15) JS动画

    [TOC] JS中的动画 动画实现原理 核心原理:通过定时器setInterval()不断移动盒子的位置实现步骤:...

  • 《嵌入式-STM32开发指南》第二部分 基础篇 - 第2章 Sy

    关于STM32 的时钟系统,Systick系统定时器工作原理分析以及Systick系统定时器寄存器分析请看笔者的上...

  • RTOS下看门狗的使用策略

    什么是看门狗 看门狗定时器是一种电子定时器,用于检测嵌入式系统中的错误并从中恢复。 看门狗定时器的基本原理很简单但...

  • 定时器

    定时器 :Timer和TimerTask 定时器例子定时器原理做项目很多时候会用到定时任务,比如在深夜,流量较小的...

  • JavaScript四 - 动画

    13.6 动画封装函数 13.6.1 动画实现原理 核心原理:通过定时器 setInterval() 不断移动盒子...

网友评论

      本文标题:lwip中定时器工作原理

      本文链接:https://www.haomeiwen.com/subject/lxrjdktx.html