色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Tickless機制與具體實現

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

Tickless 具體實現

1、宏 configUSE_TICKLESS_IDLE

要想使用 Tickless 模式,首先必須將 FreeRTOSConfig.h 中的宏 configUSE_TICKLESS_IDLE設置為 1,代碼如下:

#define configUSE_TICKLESS_IDLE  1      //1 啟用低功耗 tickless 模式

2、宏 portSUPPRESS_TICKS_AND_SLEEP()

使能 Tickless 模式以后當下面兩種情況都出現的時候 FreeRTOS 內核就會調用宏portSUPPRESS_TICKS_AND_SLEEP()來處理低功耗相關的工作。

● 空閑任務是唯一可運行的任務,因為其他所有的任務都處于阻塞態或者掛起態。

● 系統處于低功耗模式的時間至少大于 configEXPECTED_IDLE_TIME_BEFORE_SLEEP個時鐘節拍,宏 configEXPECTED_IDLE_TIME_BEFORE_SLEEP 默認在文件 FreeRTOS.h 中定義為 2,我們可以在 FreeRTOSConfig.h 中重新定義,此宏必須大于 2!

portSUPPRESS_TICKS_AND_SLEEP()有個參數,此參數用來指定還有多長時間將有任務進入就緒態,其實就是處理器進入低功耗模式的時長(單位為時鐘節拍數),因為一旦有其他任務 進 入 就 緒 態 處 理 器 就 必 須 退 出 低 功 耗 模 式 去 處 理 這 個 任 務 。portSUPPRESS_TICKS_AND_SLEEP()應該是由用戶根據自己所選擇的平臺來編寫的,此宏會被空閑任務調用來完成具體的低功耗工作。但是!如果使用 STM32 的話編寫這個宏的工作就不用我們來完成了,因為 FreeRTOS 已經幫我們做好了,有沒有瞬間覺得好幸福啊。當然了你也可以自己去重新編寫,不使用 FreeRTOS 提供的 ,如果自己編寫的話需要先將configUSE_TICKLESS_IDLE 設置為 2。宏 portSUPPRESS_TICKS_AND_SLEEP 在文件 portmacro.h 中定義。

3、宏 configPRE_SLEEP_PROCESSING ()和 configPOST_SLEEP_PROCESSING()

在真正的低功耗設計中不僅僅是將處理器設置到低功耗模式就行了,還需要做一些其他的處理,比如:

● 將處理器降低到合適的頻率,因為頻率越低功耗越小,甚至可以在進入低功耗模式以后關閉系統時鐘。

● 修改時鐘源,晶振的功耗肯定比處理器內部的時鐘源高,進入低功耗模式以后可以切換到內部時鐘源,比如 STM32 的內部 RC 振蕩器

● 關閉其他外設時鐘,比如 IO 口的時鐘。

● 關閉板子上其他功能模塊電源,這個需要在產品硬件設計的時候就要處理好,比如可以通過 MOS 管來控制某個模塊電源的開關,在處理器進入低功耗模式之前關閉這些模塊的電源。

有關產品低功耗設計的方法還有很多,大家可以上網查找一下,上面列舉出的這幾點在處理器進入低功耗模式之前就要完成處理。FreeRTOS 為我們提供了一個宏來完成這些操作,它就是 configPRE_SLEEP_PROCESSING(),這個宏的具體實現內容需要用戶去編寫。如果在進入低功耗模式之前我們降低了處理器頻率、關閉了某些外設時鐘等的話,那在退出低功耗模式以后就 需 要 恢 復 處 理 器 頻 率 、 重 新 打 開 外 設 時 鐘 等 , 這 個 操 作 在 宏configPOST_SLEEP_PROCESSING()中完成,同樣的這個宏的具體內容也需要用戶去編寫。這兩個宏會被函數 vPortSuppressTicksAndSleep()調用,我們可以在 FreeRTOSConfig.h 定義這兩個宏,如下:

/********************************************************************************/
/* FreeRTOS 與低功耗管理相關配置 */
/********************************************************************************/
extern void PreSleepProcessing(uint32_t ulExpectedIdleTime);
extern void PostSleepProcessing(uint32_t ulExpectedIdleTime);

//進入低功耗模式前要做的處理
#define configPRE_SLEEP_PROCESSING PreSleepProcessing
//退出低功耗模式后要做的處理
#define configPOST_SLEEP_PROCESSING PostSleepProcessing

函數 PreSleepProcessing()和 PostSleepProcessing()可以在任意一個 C 文件中編寫,本章對應的例程是在 main.c 文件中,函數的具體內容在下一節詳解。

4、宏 configEXPECTED_IDLE_TIME_BEFORE_SLEEP

處理器工作在低功耗模式的時間雖說沒有任何限制,1 個時鐘節拍也行,滴答定時器所能計時的最大值也行。但是時間太短的話意義也不大啊,就 1 個時鐘節拍,我這剛進去就得出來!所 以 我 們 必 須 對 工 作 在 低 功 耗 模 式 的 時 間 做 個 限 制 , 不 能 太 短 了 , configEXPECTED_IDLE_TIME_BEFORE_SLEEP 就是用來完成這個功能的。此宏默認在文件FreeRTOS 中有定義,如下:

#ifndef configEXPECTED_IDLE_TIME_BEFORE_SLEEP
    #define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2
#endif

#if configEXPECTED_IDLE_TIME_BEFORE_SLEEP < 2
    #error configEXPECTED_IDLE_TIME_BEFORE_SLEEP must not be less than 2
#endif

默認情況下 configEXPECTED_IDLE_TIME_BEFORE_SLEEP 為 2 個時鐘節拍,并且最小不能小于 2 個時鐘節拍。如果要修改這個值的話可以在文件 FreeRTOSConfi.h 中對其重新定義。此宏會在空閑任務函數 prvIdleTask()中使用!

到此為止,FreeRTOS 中低功耗的基礎大家都已經掌握了,可以在自己已經有的代碼中加入此機制,看看功耗是否有降低。使能上面第一個宏定義,然后實現其他三個宏定義即可將低功耗機制加入自己的項目中。

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

    關注

    5086

    文章

    19140

    瀏覽量

    305844
  • 內核
    +關注

    關注

    3

    文章

    1375

    瀏覽量

    40311
  • FreeRTOS
    +關注

    關注

    12

    文章

    484

    瀏覽量

    62217
收藏 人收藏

    評論

    相關推薦

    使用FreeRTOS過程中如何退出Tickless

    在使用FreeRTOS過程中,如果設置Tickless,那要怎么退出呢?進入Tickless模式的話應該是吧系統滴答中斷給關閉了,如果我在沒有外部中斷的情況下,那系統是不是就不會喚醒了,百思不得其解,還望高人指點一二
    發表于 04-17 06:26

    【安富萊】【RTX操作系統教程】第24章 RTX低功耗之tickless模式less模式

    tickless模式:第24章 RTX低功耗之tickless模式 本章節為大家講解RTX本身支持的低功耗模式tickless實現方法,tickle
    發表于 02-17 15:46

    WIFI的跳頻機制怎么實現的?

    WIFI的跳頻機制怎么實現的?想了解WIFI的跳頻機制怎么實現的。網上資料比較少啊!有些WIFI模塊好像都是固定工作在一個頻段的,要改頻段得自己設置,不知道WIFI有沒有通用的一些跳頻
    發表于 03-15 17:55

    第33章 FreeRTOS低功耗之tickless模式

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

    第24章 RTX低功耗之tickless模式

    轉rtx操作系統本章節為大家講解RTX本身支持的低功耗模式tickless實現方法,tickless低功耗機制是當前小型RTOS所采用的通用低功耗方法,比如embOS,FreeRTOS
    發表于 10-10 08:40

    freeros tickless STOP模式怎么實現低功耗

    我采用的是STM32F071這個芯片,采用FREERTOS,使用的電池供電,所以要求低功耗,我采用的TICKLESS官方推薦的方式,配置#define configUSE_TICKLESS
    發表于 12-03 08:50

    FREEROS tickless低功耗怎么回事

    需求描述: 我采用的是STM32F071這個芯片,采用FREERTOS,使用的電池供電,所以要求低功耗,我采用的TICKLESS官方推薦的方式,配置#define
    發表于 06-12 04:35

    stm32f030如何使用freertos的tickless模式下的stop休眠問題?

    使用stm32f030使用freertos的tickless模式下的stop休眠出現任務無法執行工程描述1、開啟tickless模式,模仿M3的空閑任務編寫
    發表于 06-15 04:35

    如何在STM32上使用FreeRTOS的Tickless

    在STM32上使用FreeRTOS的Tickless(停止模式)RTOS的Tickless功能就是當程序運行在空閑任務中時,就進入低功耗模式,這個低功耗可以是普通的睡眠模式,也可以是停止模式
    發表于 01-17 07:18

    基于FreeRTOS的TICKLess模式配置過程是怎樣的?

    基于FreeRTOS的TICKLess模式配置過程是怎樣的?
    發表于 02-14 07:21

    請問TICKLESS是如何去實現功耗降低的呢

    什么是TICKLESS?怎么能實現功耗的降低呢?TICKLESS是如何去實現功耗降低的呢?
    發表于 02-24 08:02

    RT-Thread Tickless的工作原理是什么?如何去實現

    睡眠,timeout很短,進入輕睡眠或不睡眠。緊急的處理任務(非中斷),需要【主動請求】PM,根據任務的運行情況,執行不同的睡眠策略。RT-Thread的Tickless實現思路在進入SLEEP睡眠
    發表于 08-17 14:20

    基于FreeRTOS的TICKLess 模式配置詳解

    FreeRTOS系統的TICKLess模式對于系統低功耗開發具有重大意義,結合系統提供的低功耗配置函數,通過LPTIM低功耗定時器中斷完成stop模式的配置
    發表于 12-14 18:56 ?4次下載
    基于FreeRTOS的<b class='flag-5'>TICKLess</b> 模式配置詳解

    STM32超低功耗之移植 RT-Thread PM 組件 TICKLESS 原理分析

    1000,也就是說每秒每觸發 1000 次中斷使用 WFI 指令進入睡眠模式之后,會被任意中斷喚醒這里就出現了一個矛盾點,睡眠時希望能降低功耗,但是每間隔一個毫秒就被喚醒了,就像人要睡覺,你剛把眼睛閉上就被人叫醒了,這怎么能實現功耗的降低呢?所以就出現了 TICKLESS
    發表于 01-12 18:52 ?2次下載
    STM32超低功耗之移植 RT-Thread PM 組件 <b class='flag-5'>TICKLESS</b> 原理分析

    在STM32上使用FreeRTOS的Tickless(停止模式)

    在STM32上使用FreeRTOS的Tickless(停止模式)RTOS的Tickless功能就是當程序運行在空閑任務中時,就進入低功耗模式,這個低功耗可以是普通的睡眠模式,也可以是停止模式
    發表于 01-17 09:40 ?3次下載
    在STM32上使用FreeRTOS的<b class='flag-5'>Tickless</b>(停止模式)
    主站蜘蛛池模板: 99久久国产视频| 国产中文字幕乱码免费| 美女全光末满18勿进| 中文字幕在线不卡日本v二区 | 主播蜜汁丝袜精品自拍| 麻豆一二三区果冻| www黄色com| 亚洲91av| 麻豆婷婷狠狠色18禁久久| 成人人猿泰山| 亚洲欧美激情精品一区二区| 男男h啪肉np文总受| 国产精品你懂的在线播放| 伊人久久伊人| 四虎免费影院| 麻豆精品乱码WWW久久密| 国产精品99久久久久久WWW| 中国少妇内射XXXX狠干| 少妇高潮惨叫久久久久久欧美| 久久超碰色中文字幕| 大香伊人中文字幕精品| 优优色影院| 天堂在线亚洲精品专区| 蜜臀AV浪潮99国产麻豆| 国产三级多多影院| 99久久热视频只有精品| 亚洲精品色播一区二区| 日本xxxxx按摩19| 久久精品热只有精品| 国产精品99久久久精品无码| 2021全国精品卡一卡二| 幸福草电视剧演员表介绍 | 午夜AV国产欧美亚洲高清在线| 久久精品热播在线看| 国产精品一区二区激情| a视频免费在线| 一级毛片视频免费| 无套内谢大学生A片| 欧美高清69vivo| 久久亚洲人成国产精品| 国产偷啪自怕网|