• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 博客專欄

    EEPW首頁 > 博客 > 你知道RTOS應用中節省功耗的方法嗎?

    你知道RTOS應用中節省功耗的方法嗎?

    發布人:13261589816 時間:2022-07-19 來源:工程師 發布文章

    你知道在空閑任務中使用一行代碼可以節省多少能量嗎?FreeRTOS商業版本OpenRTOS及安全版本SAFERTOS的提供商WHIS創建了一個基本應用程序,在RTOS的idle hook中添加了一條WFI指令,通過測量系統節省了超過37%的能耗。如果此RTOS解決方案部署在100萬個處理器上,則節省的電量將相當于為165個英國家庭在同一時期供電所需的電量。

    通過添加一行代碼實現節能、環保的RTOS應用設計

    圖片

    在Cortex-M架構處理器中使用 RTOS 時,WHIS通過在空閑任務中使用等待中斷 (WFI) 指令,使處理器能耗節約三分之一以上。

    在 ARM Cortex-M 平臺上的低功耗實現非常簡單:

    當使用基于優先級的搶先式RTOS時,只要沒有用戶任務需要調度,默認情況下RTOS會運行最低優先級的任務,通常是空閑任務。空閑任務執行一個無限循環,每次循環調用“空閑鉤子函數”。為了節省空閑任務的功耗,空閑鉤子函數需要配置處理器工作在低功耗模式。

    一個簡單有效的低功耗實現方法是在空閑鉤子函數中添加一條WFI指令,將處理器設置為低功耗模式,可以被中斷喚醒。

    void vApplicationIdleHook( void )

    {

    asm volatile ("WFI \n" );

    }

    如果系統在執行空閑任務,則非空閑任務被調度執行的唯一可能方式是響應中斷,通常是系統節拍。當中斷發生時,處理器恢復到正常模式并繼續執行。

    結果驗證

    WHIS基于從 FreeRTOS 升級到 SAFERTOS workshop Demo(請點擊“閱讀原文”),彩色LED循環應用程序來實現了驗證工作。應用包含多個任務,但任務大部分時間處于阻塞狀態,因此處理器的每個節拍時間中大部分運行在空閑任務中。在應用中創建了一個空閑鉤子函數,其包含一條WFI指令。為了量化可以節省的功耗,我們使用WFI運行應用,然后將其與注釋掉WFI指令的應用程序進行比較。

    測量結果如下:

    圖片

    單個處理器節省的絕對功率非常小,但是考慮到全球每年部署的大量處理器,可以節省的功率確實可以擴展。大量嵌入式設計中已采取許多硬件/軟件措施降低系統功耗,但對于普通的設計,強烈建議設計人員考慮在空閑鉤子函數中添加WFI指令。僅需一行代碼,如果所有設計都針對功耗進行了優化,節省的能量將是相當可觀的。歡迎關注微信公眾號【麥克泰技術】


    *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

    攝像頭相關文章:攝像頭原理


    關鍵詞: FreeRTOS SAFERTOS

    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 辛集市| 伊吾县| 青冈县| 蓬溪县| 晋州市| 龙江县| 广宁县| 嘉义县| 阿坝| 平顶山市| 秦安县| 华坪县| 贵港市| 南阳市| 寿阳县| 邵阳县| 淳化县| 乌海市| 福建省| 松桃| 通城县| 宜黄县| 巴塘县| 德庆县| 日照市| 临潭县| 全州县| 徐汇区| 安国市| 龙门县| 阿拉善右旗| 富裕县| 镇原县| 隆昌县| 米脂县| 沁阳市| 措美县| 美姑县| 客服| 桐梓县| 富阳市|