——种一棵树最好的时间?——
4时钟管理
4.1时钟节拍
时钟节拍是特定的周期性中断。
系统时间是从系统启动开始计数的时钟节拍数。
时钟节拍由触发为中断触发模式的硬件定时器产生(在cortex-M中为systick)。
4.2定时器管理
分类:
- 硬件定时器——芯片提供
- 软件定时器——操作系统提供
按机制:
- 单次触发定时器——只触发一次定时器事件
- 周期触发定时器——周期性触发直到用户手动停止
根据超时函数执行时所处的上下文环境:
- HARD_TIMER模式——在中断上下文环境中执行(默认方式)
- SOFT_TIMER模式——在 timer 线程的上下文环境中执行
定时器工作机制:
系统新创建并激活的定时器都会按照以超时时间排序的方式插入到定时器链表中。
如果有定时器超时,将调用相应的超时函数。且所有定时器在定时超时后都会从定时器链表中被移除,而周期性定时器会在它再次启动时被加入定时器链表。
定时器跳表算法:RT-Thread 中使用了跳表算法来加快搜索链表元素的速度。
4.4高精度延时
只能通过读取系统某个硬件定时器的计数器或直接使用硬件定时器的方式。