国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式

這篇具有很好參考價值的文章主要介紹了FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

系列文章

FreeRTOS實(shí)時操作系統(tǒng)(一)RTOS的基本概念

FreeRTOS實(shí)時操作系統(tǒng)(二)任務(wù)創(chuàng)建與任務(wù)刪除(HAL庫)

FreeRTOS實(shí)時操作系統(tǒng)(三)任務(wù)掛起與恢復(fù)

FreeRTOS實(shí)時操作系統(tǒng)(四)中斷任務(wù)管理

FreeRTOS實(shí)時操作系統(tǒng)(五)進(jìn)入臨界區(qū)、任務(wù)調(diào)度器掛起與恢復(fù)

FreeRTOS實(shí)時操作系統(tǒng)(六)列表與列表項(xiàng)

FreeRTOS實(shí)時操作系統(tǒng)(七)時間片調(diào)度及RTOS的滴答定時器

FreeRTOS實(shí)時操作系統(tǒng)(八)任務(wù)狀態(tài)查詢及時間統(tǒng)計(jì)函數(shù)

FreeRTOS實(shí)時操作系統(tǒng)(九)時間延時函數(shù)及消息隊(duì)列

FreeRTOS實(shí)時操作系統(tǒng)(十)信號量

FreeRTOS實(shí)時操作系統(tǒng)(十一)隊(duì)列集

FreeRTOS實(shí)時操作系統(tǒng)(十二)事件標(biāo)志組

FreeRTOS實(shí)時操作系統(tǒng)(十三)任務(wù)通知

FreeRTOS實(shí)時操作系統(tǒng)(十四)軟件定時器

FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式

FreeRTOS實(shí)時操作系統(tǒng)(十六)內(nèi)存管理



低功耗模式

在之前的邏輯開發(fā)中學(xué)習(xí)過STM32的低功耗模式,在FreeRTOS中的低功耗模式,方便操作系統(tǒng)進(jìn)入低功耗模式。

stm32中的低功耗模式:
FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式,FreeRTOS,單片機(jī),嵌入式硬件,FreeRTOS,嵌入式操作系統(tǒng)

Tickless低功耗模式

本質(zhì)是調(diào)用指令WFI實(shí)現(xiàn)睡眠模式,在在整個系統(tǒng)的運(yùn)行過程中,其實(shí)大部分時間是在執(zhí)行空閑任務(wù)的,所以在空閑的時候進(jìn)入低功耗,在其他任務(wù)準(zhǔn)備運(yùn)行的時候再退出低功耗模式。

運(yùn)行方式:
進(jìn)入低功耗后,獲取到下一個任務(wù)的進(jìn)入時間,就設(shè)置低功耗的退出時間,為了防止滴答定時器的中斷喚醒MCU,頻繁中斷影響效果,將滴答定時器的中斷周期修改為低功耗的運(yùn)行時間,退出低功耗模式后,再補(bǔ)上節(jié)拍數(shù)

宏定義配置

configUSE_TICKLESS_IDLE
此宏用于使能低功耗 Tickless 模式

configEXPECTED_IDLE_TIME_BEFORE_SLEEP
此宏用于定義系統(tǒng)進(jìn)入相應(yīng)低功耗模式的最短時長(>1)

configPRE_SLEEP_PROCESSING(x)
此宏用于定義需要在系統(tǒng)進(jìn)入低功耗模式前執(zhí)行的事務(wù),如:進(jìn)入低功耗前關(guān)閉外設(shè)時鐘,以達(dá)到降低功耗的目的

configPOSR_SLEEP_PROCESSING(x)
此宏用于定義需要在系統(tǒng)退出低功耗模式后執(zhí)行的事務(wù),如:退出低功耗后開啟之前關(guān)閉的外設(shè)時鐘,以使系統(tǒng)能夠正常運(yùn)行

實(shí)驗(yàn)測試

開啟宏定義
FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式,FreeRTOS,單片機(jī),嵌入式硬件,FreeRTOS,嵌入式操作系統(tǒng)

默認(rèn)事件設(shè)置:
FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式,FreeRTOS,單片機(jī),嵌入式硬件,FreeRTOS,嵌入式操作系統(tǒng)

FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式,FreeRTOS,單片機(jī),嵌入式硬件,FreeRTOS,嵌入式操作系統(tǒng)
需要對這兩個函數(shù)重新定義:在文件中,如果對這兩個宏沒有定義的話會自己定義,所以我們需要提前定義,編譯器就會自動識別為我們定義的函數(shù)。
FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式,FreeRTOS,單片機(jī),嵌入式硬件,FreeRTOS,嵌入式操作系統(tǒng)
在開頭直接提前定義
FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式,FreeRTOS,單片機(jī),嵌入式硬件,FreeRTOS,嵌入式操作系統(tǒng)

在main文件中記得包含該文件;
FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式,FreeRTOS,單片機(jī),嵌入式硬件,FreeRTOS,嵌入式操作系統(tǒng)
設(shè)置進(jìn)入休眠后我們的操作即可;還可以關(guān)閉其他的外設(shè)來降低功耗
FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式,FreeRTOS,單片機(jī),嵌入式硬件,FreeRTOS,嵌入式操作系統(tǒng)

代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-568479.html


#define configPRE_SLEEP_PROCESSING( x )   PRE_SLEEP_PROCESSING()
#define configPOST_SLEEP_PROCESSING( x )     POST_SLEEP_PROCESSING()

/* 進(jìn)入低功耗前所需要執(zhí)行的操作 */
void PRE_SLEEP_PROCESSING(void)
{
    __HAL_RCC_GPIOA_CLK_DISABLE();
    __HAL_RCC_GPIOB_CLK_DISABLE();
    __HAL_RCC_GPIOC_CLK_DISABLE();
    __HAL_RCC_GPIOD_CLK_DISABLE();
}
/* 退出低功耗后所需要執(zhí)行的操作 */
void POST_SLEEP_PROCESSING(void)
{
    __HAL_RCC_GPIOA_CLK_ENABLE();
    __HAL_RCC_GPIOB_CLK_ENABLE();
    __HAL_RCC_GPIOC_CLK_ENABLE();
    __HAL_RCC_GPIOD_CLK_ENABLE();
}

到了這里,關(guān)于FreeRTOS實(shí)時操作系統(tǒng)(十五)Tickless低功耗模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于STM32的實(shí)時操作系統(tǒng)FreeRTOS移植教程(手動移植)_stm32移植freertos(1)

    基于STM32的實(shí)時操作系統(tǒng)FreeRTOS移植教程(手動移植)_stm32移植freertos(1)

    直接意識代碼: 這是我們大腦最希望的添加代碼方式,很顯然他是 錯的 , 兩個任務(wù)之間產(chǎn)生了相互的影響 ,使得兩個任務(wù)都執(zhí)行錯誤,這種思想在 裸機(jī)開發(fā) 中肯定是 錯的 ,但是在我們的 RTOS 中他就可以是 對的 。 任務(wù)型代碼: 這是 獨(dú)立的兩個任務(wù)內(nèi)容 ,我們只需要把

    2024年04月10日
    瀏覽(28)
  • STM32基于HAL庫和STM32CubeMX的實(shí)時操作系統(tǒng)FreeRtOS開發(fā)

    STM32基于HAL庫和STM32CubeMX的實(shí)時操作系統(tǒng)FreeRtOS開發(fā)

    1、FreeRTOS RTOS是一類操作系統(tǒng),μC/OS,F(xiàn)reeRTOS,RTX,RT-Thread 等這些都是RTOS 類的操作系統(tǒng) FreeRTOS 是眾多RTOS 類操作系統(tǒng)中的一種,F(xiàn)reeRTOS 十分的小巧,可以在資源有限的微控制器中運(yùn)行,F(xiàn)reeRTOS 也不僅僅局限于在微控制器中使用。就單從文件數(shù)量上來看FreeRTOS 要比μC/OS 少得多

    2024年02月21日
    瀏覽(19)
  • (第48-59講)STM32F4單片機(jī),F(xiàn)reeRTOS【事件標(biāo)志、任務(wù)通知、軟件定時器、Tickless低功耗】【純文字講解】【】

    【吐血總結(jié)】FreeRTOS難點(diǎn)、Systick中斷-滴答定時器、PendSV中斷-任務(wù)切換、SVC中斷-系統(tǒng)底層、時間片調(diào)度-時鐘節(jié)拍【已完結(jié)】 (第1-8講)STM32F4單片機(jī),F(xiàn)reeRTOS基礎(chǔ)知識總結(jié)【視頻筆記、代碼講解】【正點(diǎn)原子】【原創(chuàng)】 (第9-10講)STM32F4單片機(jī),F(xiàn)reeRTOS任務(wù)創(chuàng)建和刪除(動態(tài)方

    2024年02月01日
    瀏覽(34)
  • STM32FreeRTOS操作系統(tǒng)移植

    STM32FreeRTOS操作系統(tǒng)移植

    移植好的FreeRTOS模板: 鏈接:https://pan.baidu.com/s/1_87VQAWXUl4jTqSCZ0MFjw?pwd=dw52? 提取碼:dw52 1.在工程中新建FreeRTOS文件夾 2.把源碼source里面的文件全部粘貼進(jìn)FreeRTOS文件夾中 ?3.在portable文件中只保留一下文件,其余刪除 ?4.新建如下兩個文件夾 ?5.在FreeRTOS_CODE目錄下添加以下文件

    2024年02月08日
    瀏覽(30)
  • STM32移植FreeRTOS操作系統(tǒng)

    STM32移植FreeRTOS操作系統(tǒng)

    一、FreeRTOS源碼下載 (1)移植錢得準(zhǔn)備前菜對吧,我們先來去官網(wǎng)瞄一瞄 網(wǎng)址:FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions 第一步:點(diǎn)擊下載FreeRTOS 第二步:選擇版本下載(我選擇穩(wěn)定版本) 注:我們下載的穩(wěn)定版本不包含DEMO例

    2024年01月17日
    瀏覽(19)
  • STM32操作系統(tǒng)FreeRTOS學(xué)習(xí)——基于hal庫

    STM32操作系統(tǒng)FreeRTOS學(xué)習(xí)——基于hal庫

    目錄 一、基礎(chǔ)概念 1、FreeRTOS 2、單片機(jī)編程的系統(tǒng)概念 a、裸機(jī)系統(tǒng),包括輪詢系統(tǒng)(不包括中斷)和前后臺系統(tǒng)(中斷為前臺,輪詢?yōu)楹笈_) b、多任務(wù)系統(tǒng) 3、FreeRTOS編程風(fēng)格 a、數(shù)據(jù)類型 b、變量名的定義 c、函數(shù)名 d、宏定義 二、Cubemx創(chuàng)建工程 1、創(chuàng)建任務(wù) 2、創(chuàng)建隊(duì)列

    2024年02月10日
    瀏覽(41)
  • 如何剪裁操作系統(tǒng)源碼——移植FreeRTOS的內(nèi)存管理模塊到ARMV8裸片

    如何剪裁操作系統(tǒng)源碼——移植FreeRTOS的內(nèi)存管理模塊到ARMV8裸片

    本文面向的需求場景是,為缺乏標(biāo)準(zhǔn)庫實(shí)現(xiàn)的處理器IP移植內(nèi)存管理模塊,即為裸片部署C標(biāo)準(zhǔn)庫中的 malloc() 和 free() 函數(shù)。 具體做法是——從操作系統(tǒng)的內(nèi)存管理組件中剪裁出必要的源碼,適配到目標(biāo)處理器的開發(fā)環(huán)境(SDK/IDE/CMAKE工程子目錄)中。 1.1 C標(biāo)準(zhǔn)庫中的內(nèi)存管理

    2024年02月13日
    瀏覽(13)
  • 微控制器實(shí)時操作系統(tǒng)實(shí)踐1實(shí)時系統(tǒng)介紹

    微控制器實(shí)時操作系統(tǒng)實(shí)踐1實(shí)時系統(tǒng)介紹

    這本實(shí)踐指南將為你提供最重要的功能知識,以使實(shí)時操作系統(tǒng)(RTOS)在微控制器(MCU)上啟動和運(yùn)行。如果你有興趣學(xué)習(xí)如何通過使用實(shí)際硬件的實(shí)例來實(shí)現(xiàn)RTOS的應(yīng)用,并討論常見的性能與開發(fā)時間的權(quán)衡,那么你就來對地方了!我們將使用自由RTOS來實(shí)現(xiàn)代碼! 我們將使

    2024年02月08日
    瀏覽(23)
  • 物聯(lián)網(wǎng)實(shí)時操作系統(tǒng)1RTOS簡介(上)

    物聯(lián)網(wǎng)實(shí)時操作系統(tǒng)1RTOS簡介(上)

    在大型計(jì)算機(jī)的世界里,操作系統(tǒng)(OS operating systems)已經(jīng)存在了相當(dāng)長的一段時間。最基本的操作系統(tǒng)可以追溯到20世紀(jì)50年代。到20世紀(jì)70年代中期,操作系統(tǒng)的概念、結(jié)構(gòu)、功能和界面已經(jīng)非常成熟。 微型系統(tǒng)大約在 1970年出現(xiàn)。在基于微處理器的設(shè)備中迅速應(yīng)用操作系統(tǒng)

    2024年02月16日
    瀏覽(59)
  • 嵌入式實(shí)時操作系統(tǒng)的設(shè)計(jì)與開發(fā)

    嵌入式實(shí)時操作系統(tǒng)的設(shè)計(jì)與開發(fā)

    在RTOS中,時鐘具有非常重要的作用,通過時鐘可實(shí)現(xiàn)延時任務(wù)、周期性觸發(fā)任務(wù)執(zhí)行、任務(wù)有限等待的計(jì)時。 大多數(shù)嵌入式系統(tǒng)有兩種時鐘源,分別為實(shí)時時鐘RTC(Real-Time Clock)和定時器/計(jì)數(shù)器。 實(shí)時時鐘一般是靠電池供電,即使系統(tǒng)斷電,也可以維持日期和時間。由于實(shí)

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包