吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FreeRTOS如何降低功耗

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:嵌入式Linux系統開 ? 2023-07-30 11:18 ? 次閱讀

1、如何降低功耗?

一般的簡單應用中處理器大量的時間都在處理空閑任務,所以我們就可以考慮當處理器處理空閑任務的時候就進入低功耗模式,當需要處理應用層代碼的時候就將處理器從低功耗模式喚醒。FreeRTOS 就是通過在處理器處理空閑任務的時候將處理器設置為低功耗模式來降低能耗。一般會在空閑任務的鉤子函數中執行低功耗相關處理,比如設置處理器進入低功耗模式、關閉其他外設時鐘、降低系統主頻等等。

我們知道 FreeRTOS 的系統時鐘是由滴答定時器中斷來提供的,系統時鐘頻率越高,那么滴答定時器中斷頻率也就越高。以前講過,中斷是可以將 STM32F103 從睡眠模式中喚醒,周期性的滴答定時器中斷就會導致 STM32F103 周期性的進入和退出睡眠模式。因此,如果滴答定時器中斷頻率太高的話會導致大量的能量和時間消耗在進出睡眠模式中,這樣導致的結果就是低功耗模式的作用被大大的削弱。

為此,FreeRTOS 特地提供了一個解決方法——Tickless 模式,當處理器進入空閑任務周期以后就關閉系統節拍中斷(滴答定時器中斷),只有當其他中斷發生或者其他任務需要處理的時候處理器才會被從低功耗模式中喚醒。為此我們將面臨兩個問題:

問題一:關閉系統節拍中斷會導致系統節拍計數器停止,系統時鐘就會停止。

FreeRTOS 的系統時鐘是依賴于系統節拍中斷(滴答定時器中斷)的,如果關閉了系統節拍中斷的話就會導致系統時鐘停止運行,這是絕對不允許的!該如何解決這個問題呢?我們可以記錄下系統節拍中斷的關閉時間,當系統節拍中斷再次開啟運行的時候補上這段時間就行了。這時候我們就需要另外一個定時器來記錄這段該補上的時間,如果使用專用的低功耗處理器的話基本上都會有一個低功耗定時器,比如 STM32L4 系列(L 系列是 ST 的低功耗處理器)就有一個叫做 LPTIM(低功耗定時器)的定時器。STM32F103 沒有這種定時器那么就接著使用滴答定時器來完成這個功能,具體實現方法后面會講解。

問題二:如何保證下一個要運行的任務能被準確的喚醒?

即使處理器進入了低功耗模式,但是我的中斷和應用層任務也要保證及時的響應和處理。中斷自然不用說,本身就可以將處理器從低功耗模式中喚醒。但是應用層任務就不行了,它無法將處理器從低功耗模式喚醒,無法喚醒就無法運行!這個問題看來很棘手,既然應用層任務無法將處理器從低功耗模式喚醒,那么我們就借助其他的力量來完成這個功能。如果處理器在進入低功耗模式之前能夠獲取到還有多長時間運行下一個任務那么問題就迎刃而解了,我們只需要開一個定時器,定時器的定時周期設置為這個時間值就行了,定時時間到了以后產生定時中斷,處理器不就從低功耗模式喚醒了。這里似乎又引出了一個新的問題,那就是如何知道還有多長時間執行下一個任務?這個時間也就是低功耗模式的執行時間,值得慶辛的是 FreeRTOS已經幫我們完成了這個工作。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19407

    瀏覽量

    231181
  • 嵌入式
    +關注

    關注

    5092

    文章

    19177

    瀏覽量

    307653
  • FreeRTOS
    +關注

    關注

    12

    文章

    484

    瀏覽量

    62395
收藏 人收藏

    評論

    相關推薦

    降低電路漏電功耗低功耗設計方法

    概念: Power/Ground Gating是集成電路中通過關掉那些不使用的模塊的電源或者地來降低電路漏電功耗低功耗設計方法。該方法能降低電路在空閑狀態下的靜態
    的頭像 發表于 09-16 16:04 ?1.2w次閱讀
    <b class='flag-5'>降低</b>電路漏電<b class='flag-5'>功耗</b>的<b class='flag-5'>低功耗</b>設計方法

    cogobuy降低功耗的措施

    cogobuy降低功耗的措施  每個廠商對于降低功耗都有不同的處理方式。雖然每個MCU都有休眠狀態或都有可能實現很低的工作耗電量,但是有的芯片在處于很低功耗的時候,基本功能也所剩無幾了,沒有
    發表于 03-23 11:18

    第30章 FreeRTOS低功耗之睡眠模式

    STM32F4xx睡眠模式介紹30.3 低功耗模式的調試支持30.4 如何有效降低睡眠模式下的功耗30.5總結30.1STM32F103睡眠模式介紹說明:在FreeRTOS系統上面實
    發表于 09-12 17:21

    第31章 FreeRTOS低功耗之停機模式

    低功耗是MCU的一項重要的指標,本章節為大家講解STM32F103,STM32F407和STM32F429的低功耗方式之停機模式在FreeRTOS操作系統上面的實現方法。本章教程配套的例子含
    發表于 09-13 20:17

    第33章 FreeRTOS低功耗之tickless模式

    轉本章節為大家講解FreeRTOS本身支持的低功耗模式tickless實現方法,tickless低功耗機制是當前小型RTOS所采用的通用低功耗方法,比如embOS,RTX和uCOS-I
    發表于 09-17 20:43

    RTOS低功耗設計原理及實現_TicklessMode(FreeRTOS的實現)

    ,每次當 OS 系統定時器產生中斷時,也會將 MCU 從低功耗模式中喚醒,而頻繁的進入低功耗模式/從低功耗模式中喚醒會使得 MCU 無法進入深度睡眠,對低功耗設計而言也是不合理的。在
    發表于 11-10 09:54

    請問stm32不進入低功耗模式怎么降低功耗

    stm32進入低功耗模式,必須用中斷來喚醒,現在就是不用這種模式,如何通過程序來降低功耗
    發表于 05-06 18:43

    如何降低ZC發現網絡的頻次以降低功耗

    ZED 和ZC,在組網正常的情況下,ZED可以進入低功耗模式,電流在uA級別。CC2530芯片當關閉ZC后,ZED會持續的進行網絡發現,無法進入低功耗模式。電流達28mA;求教TI工程師,如何降低ZC發現網絡的頻次以
    發表于 08-07 07:03

    AT32 FreeRTOS基礎例程(包含低功耗功能)

    說明:AT32 FreeRTOS基礎例程(包含低功耗功能),見附件。器件:AT32F403A工程環境:IAR V8另有更詳細的基于Keil MDK的FreeRTOS例程和FreeRTOS
    發表于 03-22 18:57

    請問如何利用FPGA設計技術降低功耗

    如何利用FPGA設計技術降低功耗
    發表于 04-13 06:16

    關于FreeRTOS低功耗的問題

    筆者的團隊專業從事環境監測設備的開發,在開發過程中團隊的工作人員提到了關于FreeRTOS低功耗的問題。RTOS低功耗與裸機跑的進入的方式不同。普通單片機進入的方式分為SLEEP、STOP
    發表于 02-23 06:25

    探究STM32、FreeRTOS低功耗設計思路和原理

    本文為大家講講基于 STM32 、 FreeRTOS 實現低功耗思想和原理
    的頭像 發表于 05-07 17:20 ?3407次閱讀
    探究STM32、<b class='flag-5'>FreeRTOS</b><b class='flag-5'>低功耗</b>設計思路和原理

    STM32與FreeRTOS實現低功耗

    記錄在開發過程中,遇到這樣一個產品,它基于 Cortex-M7 內核的 STM32F769 芯片,同時使用了 FreeRTOS 實時操作系統。由于該產品使用電池供電,因此有著低功耗的需求。接下來
    發表于 12-07 20:06 ?19次下載
    STM32與<b class='flag-5'>FreeRTOS</b>實現<b class='flag-5'>低功耗</b>

    STM32L4 運行FreeRTOS之STOP2低功耗模式

    最近做一個物聯網的項目,由于功能比較多,為了簡化程序邏輯,所以使用了FreeRTOS操作系統,MCU為STM32L431。FreeRTOS的源碼只實現了sleep級別低功耗模式(需要定義
    發表于 12-07 20:21 ?22次下載
    STM32L4 運行<b class='flag-5'>FreeRTOS</b>之STOP2<b class='flag-5'>低功耗</b>模式

    在模擬電源設計中降低功耗

    Nano,Nano:在模擬電源設計中降低功耗
    的頭像 發表于 01-05 09:43 ?771次閱讀
    百家乐号游戏机| 百家乐走势图解| OK娱乐城| 百家乐是否能赢| 百家乐官网一起多少张牌| 济州岛娱乐场cns| 百家乐扑克片礼服| 百家乐官网双龙出海| 伊宁市| 大集汇百家乐的玩法技巧和规则| 百家乐官网园选百利宫| 临潭县| 大发888 dafa888uk.com| 百家乐网络赌场| 利来百家乐官网娱乐| 网络百家乐官网诈骗| 百家乐官网游戏解密| 香港六合彩彩图| 大发888中文版| 红宝石百家乐的玩法技巧和规则 | 大世界百家乐官网现金网| 易胜博娱乐场| 赌博游戏网站| 本溪棋牌网| 大发888下载df888| 威尼斯人娱乐城信誉最好| 闲和庄百家乐娱乐场| 百家乐里面的奥妙| 百家乐不能视频| 百家乐官网策略介绍| 财富百家乐官网的玩法技巧和规则| 百家乐官网龙虎台布多少钱| 玩百家乐官网高手支招篇| 仪征市| 华阴市| 六安市| 百家乐官网分析资料| 高州市| 豪门国际娱乐城| 必博| 百家乐有多少局|