1. gzyueqian
      18529173453

      嵌入式開發:提示和技巧——退出時休眠

      更新時間: 2022-08-11 09:31:48來源: 粵嵌教育瀏覽量:8447

        低功耗系統的一種軟件架構是讓系統始終處于睡眠模式,僅在運行單個中斷服務程序(ISR)時喚醒,然后立即返回睡眠狀態。如果嵌入式開發人員試圖從他的電池中榨出最后一點電,那就有一個嚴重且經常被忽視的缺陷。運行一個中斷會浪費很多時間和時鐘周期。

        執行中斷的順序是一個多步驟的過程。首先,將寄存器值和其他當前狀態信息壓入堆棧,以便以后恢復。接下來,CPU指向ISR,執行ISR代碼,最后彈出堆棧,將寄存器恢復到原始狀態。整個序列可以用圖1中的流程圖來概括。

        

        圖1–標準ISR操作

        這樣做的問題是,即使嵌入式開發人員使用現代的快速處理器,將所有寄存器推到堆棧中然后再恢復它們的效率仍然很低。這可能需要很少的時間,甚至可能是幾納秒,但是在數百萬或數十億次執行的過程中,這可能相當于在低功率模式下花費的大量時間。結果就是浪費電池電量!

        大多數ARM微控制器都有一個非常酷的特性,叫做退出時休眠。該特性的作用是,當ISR完成時,使能該特性會使MCU立即進入睡眠狀態,而不是讓處理器每次都進入和退出ISR,浪費玩堆棧的開銷。通過這樣做,MCU仍然被配置為運行ISR,因此當它再次觸發時,系統喚醒并立即執行ISR,開銷最小。結果如圖2所示。

        

        圖2–退出時休眠的ISR開銷

        不過,在不使用其他低功耗設計技術或設計周期中沒有時間進行節能優化的應用中,這一特性的真正優勢是顯而易見的。如果嵌入式開發人員將它內置于軟件架構中,并且是首批優化之一,則可以節省幾毫安的電流。然而,如果這個特性是在大部分優化已經實現的最后實現的,那么很可能節省的空間非常小。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲最大天堂在线 | 亚洲中文字幕久久久 | 中文在线一区精品 | 亚洲一区二区三区在线播放 | 亚洲国产手机电影在 | 亚洲中文第一字幕 |