tft每日頭條

 > 生活

 > 嵌入式開發的一般方式

嵌入式開發的一般方式

生活 更新时间:2024-07-31 04:10:42

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

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

  

嵌入式開發的一般方式(嵌入式開發提示和技巧)1

  圖1–标準ISR操作

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

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

  

嵌入式開發的一般方式(嵌入式開發提示和技巧)2

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

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


,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved