99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

3天內(nèi)不再提示

空閑任務鉤子函數(shù)詳解

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-30 10:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

空閑任務鉤子函數(shù)詳解

1、鉤子函數(shù)

FreeRTOS中有多個鉤子函數(shù),鉤子函數(shù)類似回調(diào)函數(shù),當某個功能(函數(shù))執(zhí)行的時候就會調(diào)用鉤子函數(shù),至于鉤子函數(shù)的具體內(nèi)容那就由用戶來編寫。如果不需要使用鉤子函數(shù)的話就什么也不用管,鉤子函數(shù)是一個可選功能,可以通過宏定義來選擇使用哪個鉤子函數(shù),可選的鉤子函數(shù)如表所示:

圖片

鉤子函數(shù)的使用方法基本相同,用戶使能相應的鉤子函數(shù),然后自行根據(jù)實際需求編寫鉤子函數(shù)的內(nèi)容,下一節(jié)我們會以空閑任務鉤子函數(shù)為例講解如何使用鉤子函數(shù)。

2、空閑任務鉤子函數(shù)

在每個空閑任務運行周期都會調(diào)用空閑任務鉤子函數(shù),如果想在空閑任務優(yōu)先級下處理某個任務有兩種選擇:

● 在空閑任務鉤子函數(shù)中處理任務。

不管什么時候都要保證系統(tǒng)中至少有一個任務可以運行,因此絕對不能在空閑任務鉤子函數(shù)中調(diào)用任何可以阻塞空閑任務的 API 函數(shù),比如vTaskDelay(),或者其他帶有阻塞時間的信號量或隊列操作函數(shù)。

● 創(chuàng)建一個與空閑任務優(yōu)先級相同的任務。

創(chuàng)建一個任務是最好的解決方法,但是這種方法會消耗更多的 RAM。

要使用空閑任務鉤子函數(shù)首先要在 FreeRTOSConfig.h 中將宏 configUSE_IDLE_HOOK 改為1,然后編寫空閑任務鉤子函數(shù)vApplicationIdleHook()。通常在空閑任務鉤子函數(shù)中將處理器設置為低功耗模式來節(jié)省電能,為了與 FreeRTOS 自帶的 Tickless模式做區(qū)分,這里我暫且將這種低功耗的實現(xiàn)方法稱之為通用低功耗模式(因為幾乎所有的 RTOS 系統(tǒng)都可以使用這種方法實現(xiàn)低功耗)。這種通用低功耗模式和
FreeRTOS 自帶的 Tickless 模式的區(qū)別我們通過下圖來對比分析一下。

圖片

圖中有三個任務,它們分別為一個空閑任務(Idle),兩個用戶任務(Task1 和Task2),其中空閑任務一共有運行了三次,分別為(1)、(2)、(3),其中 T1 到 T12 是 12 個時刻

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

    關注

    5152

    文章

    19676

    瀏覽量

    317725
  • 函數(shù)
    +關注

    關注

    3

    文章

    4381

    瀏覽量

    64926
  • FreeRTOS
    +關注

    關注

    12

    文章

    493

    瀏覽量

    64375
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ucosii空閑任務鉤子函數(shù)App_TaskIdleHook睡眠之后是不是只有喚醒才能執(zhí)行?

    static u16 cnt = 0;voidApp_TaskIdleHook (void){cnt++; __WFI;}在空閑任務鉤子函數(shù)增加睡眠指令,發(fā)現(xiàn)cnt++計數(shù)反而要比系統(tǒng)時間
    發(fā)表于 12-31 14:36

    菜鳥求助 u/Cos III 空閑任務鉤子函數(shù) 數(shù)據(jù)不會溢出的問題

    1、使用的精英版的官方歷程,稍微做了修改,把每次空閑任務鉤子函數(shù)里num++ 后的值用串口打印了出來,結(jié)果發(fā)現(xiàn)static int num定義的變量竟然可以超過65535.無法理解。2、還有個
    發(fā)表于 01-27 19:34

    Flask中的鉤子函數(shù)使用

    Flask鉤子函數(shù)(十一)
    發(fā)表于 08-01 07:04

    u/Cos III空閑任務鉤子函數(shù)static int num定義的變量竟然可以超過65535.

    使用的精英版的官方歷程,稍微做了修改,把每次空閑任務鉤子函數(shù)里num++ 后的值用串口打印了出來,結(jié)果發(fā)現(xiàn)static int num定義的變量竟然可以超過65535.無法理解。求大神指教
    發(fā)表于 03-11 04:37

    FreeRTOS檢測堆棧溢出,鉤子函數(shù)是回調(diào)到哪里?

    FreeRTOS中有個宏configCHECK_FOR_STACK_OVERFLOW用來檢測堆棧溢出,在檢測堆棧溢出后調(diào)用鉤子函數(shù),鉤子函數(shù)是回調(diào)到哪里,,是讓他回到檢測的地方么。
    發(fā)表于 07-28 07:28

    關于鉤子函數(shù),在CCS的編譯器里有哪幾個規(guī)則?

    如何對鉤子函數(shù)的使用進行控制?關于鉤子函數(shù),在CCS的編譯器里有哪幾個規(guī)則?
    發(fā)表于 04-19 06:09

    為什么在鉤子函數(shù)中不能使用串口打印函數(shù)

    UCOSIII,STM32F107官方移植工程中,鉤子函數(shù)中不能使用串口打印函數(shù)APP_TRACE_INFO(); 未找到原因。
    發(fā)表于 08-23 07:14

    【每日一練】第六節(jié):空閑線程及兩個常用的鉤子函數(shù)

    本視頻為【每日一練】的第6節(jié)學習視頻,注:剛開始學習的童鞋請從第一節(jié)視頻開始打卡哦(本節(jié)視頻在下面打卡即可)學習任務:1、線程退出后,資源在哪里被回收?(簡答)2、可以在調(diào)度其鉤子函數(shù)中查看線程切換(判斷)打卡規(guī)則詳見:第二期【每日一練】來啦,16天入門RT-Thread
    發(fā)表于 08-28 19:15

    鉤子函數(shù)是什么?RT-Thread系統(tǒng)引入鉤子函數(shù)有何用處

    鉤子函數(shù),在線程切換和空閑線程循環(huán)中調(diào)用。內(nèi)存鉤子函數(shù),在分配或釋放內(nèi)存塊時調(diào)用。定時器鉤子函數(shù),在定時器超時時調(diào)用。函數(shù)說明rt_err_
    發(fā)表于 08-29 15:30

    NANO3.15無法進入空閑線程鉤子函數(shù)該怎么辦

    使用NANO 3.15 keil5 ARMV6編譯 芯片STM32F767使用CUBE生成硬件初始化。HAL庫使用線程和軟件定時器正常。目前想要加入空閑線程鉤子函數(shù)來運行看門狗喂狗函數(shù)。測試發(fā)現(xiàn)不進
    發(fā)表于 09-07 10:50

    UCOS擴展例程-UCOSIII空閑任務鉤子函數(shù)的使用

    UCOS擴展例程-UCOSIII空閑任務鉤子函數(shù)的使用
    發(fā)表于 12-14 17:24 ?31次下載

    Zynq中使用FreeRTOS的空閑鉤子函數(shù)時在SDK中的設置

    本文介紹zynq中使用FreeRTOS的空閑鉤子函數(shù)時在SDK中的設置和一些說明
    發(fā)表于 03-09 14:33 ?2793次閱讀
    Zynq中使用FreeRTOS的<b class='flag-5'>空閑</b><b class='flag-5'>鉤子函數(shù)</b>時在SDK中的設置

    FreeRTOS_005_FreeRTOSConfig.h配置文件(二) HOOK鉤子函數(shù)

    FreeRTOS_005_FreeRTOSConfig.h配置文件(二)_HOOK鉤子函數(shù)
    的頭像 發(fā)表于 03-14 14:04 ?3740次閱讀
    FreeRTOS_005_FreeRTOSConfig.h配置文件(二) HOOK<b class='flag-5'>鉤子函數(shù)</b>

    實操RT-Thread系統(tǒng)CPU利用率功能添加

    除了在空閑任務可以設置鉤子函數(shù),還有可能在任務切換、系統(tǒng)啟動、任務創(chuàng)建等等關鍵的地方設置,當然了,這里的每一個
    的頭像 發(fā)表于 06-03 11:29 ?6889次閱讀
    實操RT-Thread系統(tǒng)CPU利用率功能添加

    RTOS中鉤子函數(shù)的用途及用法

    在很多操作系統(tǒng)中,都存在這樣一類API函數(shù)接口:HOOK函數(shù)(也叫鉤子函數(shù))。
    的頭像 發(fā)表于 10-23 16:25 ?783次閱讀
    RTOS中<b class='flag-5'>鉤子函數(shù)</b>的用途及用法