全国服务热线:400-0859-208

位置:重庆粤嵌嵌入式IT培训机构子公司 > 学校动态 > 嵌入式开发提示和技巧退出时休眠

嵌入式开发提示和技巧退出时休眠

来源:重庆粤嵌嵌入式IT培训机构子公司时间:2022/8/15 19:00:15

       低功耗系统的一种软件架构是让系统始终处于睡眠模式,仅在运行单个中断服务程序(ISR)时唤醒,然后立即返回睡眠状态。如果嵌入式开发人员试图从他的电池中榨出较后一点电,那就有一个严重且经常被忽视的缺陷。运行一个中断会浪费很多时间和时钟周期。

  执行中断的顺序是一个多步骤的过程。首先,将寄存器值和其他当前状态信息压入堆栈,以便以后恢复。接下来,CPU指向ISR,执行ISR代码,较后弹出堆栈,将寄存器恢复到原始状态。整个序列可以用图1中的流程图来概括。


嵌入式开发:提示和技巧——退出时休眠

  图1–标准ISR操作

  这样做的问题是,即使嵌入式开发人员使用现代的处理器,将所有寄存器推到堆栈中然后再恢复它们的效率仍然很低。这可能需要很少的时间,甚至可能是几纳秒,但是在数百万或数十亿次执行的过程中,这可能相当于在低功率模式下花费的大量时间。结果就是浪费电池电量!

  大多数ARM微控制器都有一个非常酷的特性,叫做退出时休眠。该特性的作用是,当ISR完成时,使能该特性会使MCU立即进入睡眠状态,而不是让处理器每次都进入和退出ISR,浪费玩堆栈的开销。通过这样做,MCU仍然被配置为运行ISR,因此当它再次触发时,系统唤醒并立即执行ISR,开销较小。结果如图2所示。


嵌入式开发:提示和技巧——退出时休眠

  图2–退出时休眠的ISR开销

  不过,在不使用其他低功耗设计技术或设计周期中没有时间进行节能优化的应用中,这一特性的真正优势是显而易见的。如果嵌入式开发人员将它内置于软件架构中,并且是首批优化之一,则可以节省几毫安的电流。然而,如果这个特性是在大部分优化已经实现的较后实现的,那么很可能节省的空间非常小。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/5754/news/554841/违者必究! 以上就是重庆粤嵌嵌入式IT培训机构子公司 小编为您整理 嵌入式开发提示和技巧退出时休眠的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-0859-208