esp-idf的电源管理——电源管理组件

1 电源锁和动态频率切换

1.1 什么是电源锁

先概括的介绍一下IDF电源管理组件中的电源锁与动态频率切换。对主机CPU有了解的都知道,像Intel的酷睿处理器有个睿频功能,CPU非常聪明,可以在繁忙(需要高性能)的时候抬高频率,在不忙的时候降低频率,这样动态频率切换在保证用户体验的同时还节省了能耗、降低了对散热系统的要求。Intel的CPU的睿频功能主要是硬件完成的,esp系列芯片当然没有这么强大的功能,不过IDF通过软件实现了类似的功能(当然和睿频比是比较粗浅的)。

实现动态频率切换的关键在于电源锁。到底什么是电源锁呢?不妨举个具体的例子来说明。加入用户创建了两个task,一个用来跑wifi协议栈,需要芯片运行在240MHz,另一个跑业务逻辑,对性能要求不高,有80MHz即可。那么用户可以创建一把240MHz的电源锁和一把80MHz的电源锁。wifi task运行的时候,则对240MHz电源锁执行上锁操作,在该task空闲(比如等待某个信号量的时候)释放240MHz电源锁。在另一个task中也执行类似的操作。电源锁的底层机制保证,在加锁时,若所加的锁对性能的要求超过了当前所有电源锁的要求,则升频至该电源锁指定的频率。反之,在释放锁时,若其余电源锁的最高性能要求低于释放的这把电源锁的性能要求,则降频至其余电源锁的最高性能要求。

你可能感兴趣的:(esp-idf,嵌入式,esp32,esp-idf)