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

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

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

3天內不再提示

FreeRTOS中內核控制函數

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

1、函數 taskYIELD()

此函數用于進行任務切換,此函數本質上是一個宏。

2、函數 taskENTER_CRITICAL()

進入臨界區,用于任務函數中,本質上是一個宏。

3、函數 taskEXIT_CRITICAL()

退出臨界區,用于任務函數中,本質上是一個宏。

4、函數 taskENTER_CRITICAL_FROM_ISR()

進入臨界區,用于中斷服務函數中,此函數本質上是一個宏。

5、函數 taskEXIT_CRITICAL_FROM_ISR()

退出臨界區,用于中斷服務函數中,此函數本質上是一個宏。

6、函數 taskDISABLE_INTERRUPTS()

關閉可屏蔽的中斷,此函數本質上是一個宏。

7、函數 taskENABLE_INTERRUPTS()

打開可屏蔽的中斷,此函數本質上是一個宏。

8、函數 vTaskStartScheduler()

啟動任務調度器。

9、函數 vTaskEndScheduler()

關閉任務調度器。

此函數僅用于 X86 架構的處理器,調用此函數以后所有系統時鐘就會停止運行,所有創建的任務都會自動的刪除掉(FreeRTOS 對此函數的解釋是會自動刪除所有的任務,但是在 FreeRTOS 的源碼中沒有找到相關的處理過程,有可能要根據實際情況編寫相關代碼,亦或是 X86 的硬件會自動處理?筆者不了解 X86 架構),多任務性能關閉。可以調用函數vTaskStartScheduler()來重新開啟任務調度器。此函數在文件 tasks.c 中有如下定義:

void

vTaskEndScheduler

(

void

)

{

portDISABLE_INTERRUPTS();

//關閉中斷

xSchedulerRunning=pdFALSE;

//標記任務調度器停止運行

vPortEndScheduler();

//調用硬件層關閉中斷的處理函數

}

函數 vPortEndScheduler()在 port.c 中有定義,這個函數在移植 FreeRTOS 的時候要根據實際使用的處理器來編寫,此處沒有實現這個函數,只是簡單的加了一行斷言,函數如下:

void

vPortEndScheduler

(

void

)

{

configASSERT(uxCriticalNesting==

1000U

L);

}

10、函數 vTaskSuspendAll()

掛起任務調度器,調用此函數不需要關閉可屏蔽中斷即可掛起任務調度器,此函數在文件tasks.c 中定義。

11、函數 xTaskResumeAll()

此函數用于將任務調度器從掛起壯態恢復。

12、函數 vTaskStepTick()

此 函 數 在 使 用 FreeRTOS 的 低 功 耗 tickless 模 式 的 時 候 會 用 到 , 即 宏 configUSE_TICKLESS_IDLE 為 1。當使能低功耗 tickless 模式以后在執行空閑任務的時候系統時鐘節拍中斷就會停止運行,系統時鐘中斷停止運行的這段時間必須得補上,這個工作就是由 函數 vTaskStepTick()來完成的,此函數在文件 tasks.c 中定義。

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

    關注

    5093

    文章

    19178

    瀏覽量

    307712
  • FreeRTOS
    +關注

    關注

    12

    文章

    484

    瀏覽量

    62399
收藏 人收藏

    評論

    相關推薦

    Cortex-M內核使用FreeRTOS特別注意事項

    本文來自CSDN博客FreeRTOS基礎篇,本篇主要分享Cortex-M內核使用FreeRTOS特別注意事項。
    發表于 09-19 15:01 ?864次閱讀
    Cortex-M<b class='flag-5'>內核</b>使用<b class='flag-5'>FreeRTOS</b>特別注意事項

    FreeRTOS實時內核使用指南-中文

    FreeRTOS實時內核使用指南-中文版,Using the FreeRTOS Real Time Kernel - A Practical Guide的中文版本
    發表于 07-13 15:11 ?123次下載

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

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

    freertos使用指南與各類型函數詳細說明

    FreeRTOS 內核支持優先級調度算法,每個任務可根據重要程度的不同被賦予一定的優先級,下面說明了各類函數的具體應用,包括API函數從任務創建到聯合程序部分的具體過程演練步驟。
    發表于 11-18 02:08 ?9446次閱讀

    內核使用FreeRTOS的特別注意事項有哪些?

    在閱讀本文之前,有兩個定義在FreeRTOSConfig.h的宏,你必須先明白它們是什么意思,《FreeRTOS內核配置說明》一文,講解了這兩個宏
    的頭像 發表于 02-01 10:21 ?2701次閱讀
    <b class='flag-5'>內核</b>使用<b class='flag-5'>FreeRTOS</b>的特別注意事項有哪些?

    關于FreeRTOS內核的配置說明

    是針對用戶程序的,而非內核,因此配置文件一般放在應用程序目錄下,不要放在RTOS內核源碼目錄下。 在下載的FreeRTOS文件包,每個演示例程都有一個FreeRTOSConfig.h
    的頭像 發表于 02-01 10:37 ?2720次閱讀

    FreeRTOS任務控制API函數介紹

    FreeRTOS任務控制API函數主要實現任務延時、任務掛起、解除任務掛起、任務優先級獲取和設置等功能。 1. 相對延時 1.1 函數描述 void vTaskDelay
    的頭像 發表于 03-19 10:19 ?2345次閱讀

    FreeRTOS的API函數功能分析及調用方法

    FreeRTOS的API函數功能分析及調用方法說明。
    發表于 03-26 11:50 ?33次下載

    從0到1學習FreeRTOSFreeRTOS 內核應用開發:(一)移植FreeRTOS到STM32第一部分

    從0到1學習FreeRTOSFreeRTOS 內核應用開發:(一)移植FreeRTOS到STM32第一部分
    發表于 12-04 12:51 ?22次下載
    從0到1學習<b class='flag-5'>FreeRTOS</b>:<b class='flag-5'>FreeRTOS</b> <b class='flag-5'>內核</b>應用開發:(一)移植<b class='flag-5'>FreeRTOS</b>到STM32第一部分

    FreeRTOS高級篇7---FreeRTOS內存管理分析

    FreeRTOS操作系統將內核與內存管理分開實現,操作系統內核僅規定了必要的內存管理函數原型,而不關心這些內存管理函數是如何實現的。這...
    發表于 01-26 17:36 ?8次下載
    <b class='flag-5'>FreeRTOS</b>高級篇7---<b class='flag-5'>FreeRTOS</b>內存管理分析

    FreeRTOS系列第18篇---FreeRTOS隊列API函數

    FreeRTOS為操作隊列提供了非常豐富的API函數,包括隊列的創建、刪除,靈活的入隊和出隊方式、帶中斷保護的入隊和出隊等等。下面就來詳細...
    發表于 01-26 17:44 ?11次下載
    <b class='flag-5'>FreeRTOS</b>系列第18篇---<b class='flag-5'>FreeRTOS</b>隊列API<b class='flag-5'>函數</b>

    FreeRTOS系列第13篇---FreeRTOS內核控制

    內核控制的一些功能需要移植層提供,為了方便移植,這些API函數用宏來實現,比如上下文切換、進入和退出臨界區、禁止和使能可屏蔽中斷。...
    發表于 01-26 17:52 ?1次下載
    <b class='flag-5'>FreeRTOS</b>系列第13篇---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>內核</b><b class='flag-5'>控制</b>

    FreeRTOS系列第11篇---FreeRTOS任務控制

    FreeRTOS任務控制API函數主要實現任務延時、任務掛起、解除任務掛起、任務優先級獲取和設置等功能。
    發表于 01-26 17:54 ?12次下載
    <b class='flag-5'>FreeRTOS</b>系列第11篇---<b class='flag-5'>FreeRTOS</b>任務<b class='flag-5'>控制</b>

    FreeRTOS系列第6篇---FreeRTOS內核配置說明

    FreeRTOS內核是高度可定制的,使用配置文件FreeRTOSConfig.h進行定制。每個FreeRTOS應用都必須包含這個頭文件,用戶根據實際應用來裁剪...
    發表于 01-26 17:57 ?15次下載
    <b class='flag-5'>FreeRTOS</b>系列第6篇---<b class='flag-5'>FreeRTOS</b><b class='flag-5'>內核</b>配置說明

    FreeRTOS內核實現與應用開發實戰指南

    本書是首本系統講解 FreeRTOS 的中文書籍,共分為兩個部分,第一部分為“從 0 到 1教你寫 FreeRTOS 內核”,即重點講解 FreeRTOS 的原理實現,從 0 開始,不
    發表于 05-24 16:26 ?245次下載
    克拉克百家乐下载| 开店做生意的风水| 蓝盾百家乐代理| 百家乐包赢| 黄金城百家乐官网苹果版| 百家乐翻天粤语| 百家乐官网二人视频麻将| 来博百家乐现金网| 德州扑克视频| 百家乐官网博彩平| 百家乐园首选去澳| 阳谷县| 金樽百家乐官网的玩法技巧和规则 | 百家乐官网翻天粤语版qvod| 百家乐桌子北京| 博狗投注| 百家乐官网平注常赢玩法技巧| 大发888娱乐城3403| 网上百家乐官网哪家较安全| 五张百家乐的玩法技巧和规则 | 7位百家乐扑克桌| 有百家乐官网的棋牌游戏| 金界百家乐的玩法技巧和规则| 真人百家乐官网输钱惨了| 百家乐路单走势图| 百家乐官网游戏软件出售| 百家乐长胜攻略| 鲨鱼百家乐官网游戏平台| 马德里百家乐的玩法技巧和规则| 玩百家乐官网优博娱乐城| 网上百家乐大转轮| 百家乐官网小77论坛| 百家乐赌场赌场网站| 百家乐官网看炉子的方法| 百家乐翻天下载| 百家乐官网网上真钱娱乐网| 百家乐博彩吧| 诺贝尔百家乐官网的玩法技巧和规则| 丰合网上娱乐| 百家乐园云鼎娱乐平台| 在线百家乐官网合作|