FreeRTOS學習 -- 任務 API 函數

函數 uxTaskPriorityGet()

此函數用來查詢指定任務的優先級,要使用此函數的話宏 INCLUDE_uxTaskPriorityGet 應該定義為 1。

函數 vTaskPrioritySet()

此函數用于改變某一個任務的任務優先級,要 使 用 此 函 數 的 話 宏
INCLUDE_vTaskPrioritySet 應該定義為 1。

函數uxTaskGetSystemState()

此函數用于獲取系統重所有任務的任務狀態,每個任務的壯態信息保存在一個 TaskStatus_t類型的結構體里面,這個結構體里面包含了任務的任務句柄、任務名字、堆棧、優先級等信息,要使用此函數的話宏 configUSE_TRACE_FACILITY 應該定義為 1。

函數 vTaskGetInfo()

此寒素也用來獲取任務狀態信息,但是是獲取指定的單個任務的狀態的,任務狀態信息填充到參數 pxTaskStatus 中, 這個參數也是 TaskStatus_t 類型的。
要使用此函數的話宏 configUSE_TRACE_FACILITY 要定義為 1。

函數 xTaskGetApplicationTaskTag()

此函數用于獲取任務的 Tag(標簽)值,任務控制塊中有個成員變量 pxTaskTag 來保存任務的標簽值。標簽的功能由用戶自行決定,此函數就是用來獲取這個標簽值的, FreeRTOS 系統內核是不會使用這個標簽的。
要使用此函數的話宏 configUSE_APPLICATION_TASK_TAG 必須為 1。

函數 xTaskGetCurrentTaskHandle()

此函數用于獲取當前任務的任務句柄。如果要使用此函數的話宏 INCLUDE_xTaskGetCurrentTaskHandle 應該為 1。

函數 xTaskGetHandle()

此函數根據任務名字獲取任務的任務句柄,在使用函數 xTaskCreate()或 xTaskCreateStatic()創建任務的時候都會給任務分配一個任務名,函數 xTaskGetHandle()就是使用這個任務名字來查詢其對應的任務句柄的。要使用此函數的話宏 INCLUDE_xTaskGetHandle 應該設置為 1。

函數 xTaskGetIdleTaskHandle()

此函數用于返回空閑任務的任務句柄。
要使用此函數的話宏 INCLUDE_xTaskGetIdleTaskHandle 必須為 1。

函數 uxTaskGetStackHighWaterMark() (重要)

每個任務都有自己的堆棧,堆棧的總大小在創建任務的時候就確定了。
此函數用于檢查任務從創建好到現在的歷史剩余最小值,這個值越小說明任務堆棧溢出的可能性就越大。FreeRTOS 把這個歷史剩余最小值叫做“高水位線”。
此函數相對來說會多耗費一點時間,所以在代碼調試階段可以使用,產品發布的時候最好不要使用。要使用此函數的話宏 INCLUDE_uxTaskGetStackHighWaterMark 必須為 1。

函數 eTaskGetState()

此函數用于查詢某個任務的運行狀態,比如:運行態、阻塞態、掛起態、就緒態,返回值是個枚舉類型。
要使用此函數的話宏 INCLUDE_eTaskGetState 必須為 1。

函數 pcTaskGetName()

根據某個任務的任務句柄來查詢這個任務對應的任務名。

函數 xTaskGetTickCount()

此函數用于查詢任務調度器從啟動到現在時間計數器 xTickCount 的值。
xTickCount 是系統的時鐘節拍值,并不是真實的時間值。每個滴答定時器中斷 xTickCount 就會加 1,一秒鐘滴答定時器中斷多少次取決于宏 configTICK_RATE_HZ。

函數 xTaskGetTickCountFromISR()

此函數是 xTaskGetTickCount()的中斷級版本,用于在中斷服務函數中獲取時間計數器 xTickCount 的值。

函數 xTaskGetSchedulerState()

此函數用于獲取 FreeRTOS 的任務 調度器運行情況:運行、關閉、還是掛起。
要使用此函數的話宏 INCLUDE_xTaskGetSchedulerState 必須為 1。

函數 uxTaskGetNumberOfTasks()

此函數用于查詢系統當前存在的任務數量。

函數 vTaskList()

此函數會創建一個表格來描述每個任務的詳細信息。

函數 vTaskGetRunTimeStats() (重要)

FreeRTOS 可以通過相關的配置來統計任務的運行時間信息,任務的運行時間信息提供了每個任務獲取到 CPU 使用權總的時間。

要 使 用 此 函 數 的 話 宏 configGENERATE_RUN_TIME_STATS 和configUSE_STATS_FORMATTING_FUNCTIONS 必須都為 1。

如果宏 configGENERATE_RUN_TIME_STATS 為 1 的話還需要實現一下幾個宏定義:
●portCONFIGURE_TIMER_FOR_RUN_TIME_STATS(),此宏用來初始化一個外設來提供時間統計功能所需的時基,一般是定時器/計數器。這個時基的分辨率一定要比 FreeRTOS的系統時鐘高,一般這個時基的時鐘精度比系統時鐘的高 10~20 倍就可以了。
●portGET_RUN_TIME_COUNTER_VALUE()或者
portALT_GET_RUN_TIME_COUNTER_VALUE(Time),這兩個宏實現其中一個就行了,這兩個宏用于提供當前的時基的時間值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17860.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17860.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17860.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一維數組操作(GOC常考類型)答案

第1題 宇航局招聘 時限:1s 空間:256m 宇航局準備招收一批科研人員從事月球探索的航空科研工作。這個職位來了很多應聘者,宇航局對眾多應聘者進行綜合素質考試,最終會選出x名綜合得分排名靠前應聘者。目前考試已經結束了&a…

Golang | Leetcode Golang題解之第102題二叉樹的層序遍歷

題目&#xff1a; 題解&#xff1a; func levelOrder(root *TreeNode) [][]int {ret : [][]int{}if root nil {return ret}q : []*TreeNode{root}for i : 0; len(q) > 0; i {ret append(ret, []int{})p : []*TreeNode{}for j : 0; j < len(q); j {node : q[j]ret[i] …

Java面試精粹:高級問題與解答集錦(一)

Java 面試問題及答案 1. 什么是Java的垃圾回收機制&#xff0c;它如何工作&#xff1f; 答案&#xff1a; Java的垃圾回收機制是一種自動內存管理功能&#xff0c;用于回收不再被應用程序使用的對象所占用的內存。它通過垃圾收集器&#xff08;Garbage Collector&#xff0c;…

js數據類型顯隱式轉換

在JavaScript中&#xff0c;數據類型的轉換可以分為兩種主要類型&#xff1a;顯式類型轉換&#xff08;Explicit Type Conversion&#xff09;和隱式類型轉換&#xff08;Implicit Type Conversion 或 Type Coercion&#xff09;。 顯式類型轉換&#xff08;Explicit Type Con…

React18+TypeScript搭建通用中后臺項目實戰02 整合 antd 和 axios

配置路徑別名 tsconfig.json {"compilerOptions": {"target": "ES2020","useDefineForClassFields": true,"lib": ["ES2020","DOM","DOM.Iterable"],"module": "ESNext&quo…

磁盤分區和掛載

磁盤分區和掛載 一、磁盤 業務層面&#xff1a;滿足一定的需求所是做的特定操作 硬盤是什么以及硬盤的作用 硬盤&#xff1a;計算器的存儲設備&#xff0c;一個或者多個磁性的盤片做成&#xff0c;可以在盤片上進行數據的讀寫 連接方式&#xff1a;內部設備&#xff0c;外…

深度揭秘:藍海創意云渲染農場的五大特色功能

在當今數字化時代&#xff0c;影視制作、效果圖設計等領域對于高質量的渲染需求日益增長。在這個背景下&#xff0c;云渲染平臺成為了行業中不可或缺的一部分&#xff0c;它為用戶提供了高效、靈活的渲染解決方案。藍海創意云渲染農場https://www.vsochina.com/cn/render藍海創…

軟件需求分析和軟件原型開發是一會事情嗎?

軟件需求分析和軟件原型開發是軟件開發過程中的兩個重要環節&#xff0c;它們各自承擔著不同的任務&#xff0c;但又緊密相連&#xff0c;共同影響著軟件項目的成功。下面將詳細解釋這兩個環節的定義、目的以及它們之間的關系。 一、軟件需求分析 定義&#xff1a;軟件需求分析…

C++學習日記 | LAB 6 static library 靜態庫

資料來源&#xff1a;南科大 余仕琪 C/C Program Design LINK&#xff1a;CPP/week06 at main ShiqiYu/CPP GitHub 一、本節內容 本節主要介紹靜態庫和動態庫。 1.1 靜態庫和動態庫的概念 靜態鏈接和靜態庫(也稱為存檔)是鏈接器將所有使用的庫函數復制到可執行文件的結果。靜…

Javascript中的定時器有哪些?他們的區別及用法是什么?

JavaScript 中有幾種常用的定時器函數,它們的區別主要在于執行方式和行為: setTimeout(callback, delay):作用:在指定的延遲時間后執行回調函數一次。用法:通常用于延遲執行某些操作。返回值:一個定時器 ID,可用于取消定時器。setInterval(callback, delay):作用:每隔指定的延…

Linux中 “權限設置修改”

目錄 一、權限 &#xff08;1&#xff09;權限三大類&#xff1a; &#xff08;2&#xff09;文件的權限&#xff1a; &#xff08;3&#xff09;目錄的權限&#xff1a; &#xff08;4&#xff09;用戶的角色&#xff1a; 二、文件的權限位 三、修改用戶權限 &#xf…

【flutter 雙端開發】

flutter 雙端開發 開發小細節替換新的logo 開發小細節 替換新的logo 替換雙端logo 尋找三方插件 android 打包流程 android 打包流程2

小程序唯品會Authorization sign

聲明 本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包內容、敏感網址、數據接口等均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無關&#xff01;wx a15018601872 本文章未…

Python---Matplotlib(2萬字總結)【從入門到掌握】

數據可視化 在完成了對數據的透視之后&#xff0c;可以將數據透視的結果通過可視化的方式呈現出來&#xff0c;簡單的說&#xff0c;就是將數據變成漂亮的圖表&#xff0c;因為人類對顏色和形狀會更加敏感&#xff0c;然后再進一步解讀數據背后隱藏的價值。在之前的文章中已經…

nacos安裝與使用

1.nacos簡介與安裝 什么是注冊中心&#xff08;服務治理&#xff09; 服務注冊&#xff1a;服務提供者provider&#xff0c;啟動的時候向注冊中心上報自己的網絡信息 服務發現&#xff1a;服務消費者consumer&#xff0c;啟動的時候向注冊中心上報自己的網絡信息&#xff0c;拉…

JavaScript style 樣式屬性操作

JavaScript 中可以使用 style 對象來操作元素的樣式屬性。style 對象是元素的一個屬性&#xff0c;通過它可以訪問和修改元素的內聯樣式屬性。 要訪問元素的樣式屬性&#xff0c;可以使用以下語法&#xff1a; element.style.property 其中&#xff0c;element 是要操作的元…

centos7防火墻入站白名單配置

firewall-cmd --set-default-zonedropfirewall-cmd --get-active-zone記錄下當前激活網卡firewall-cmd --permanent --change-interfaceens33 --zonedrop firewall-cmd --zonedrop --list-all 添加信任的源IP和開放端口 firewall-cmd --permanent --add-source192.168.254.1 -…

【OpenCV】圖形繪制與填充

介紹了繪制、填充圖像的API。也介紹了RNG類用來生成隨機數。相關API&#xff1a; line() rectangle() circle() ellipse() putText() 代碼&#xff1a; #include "iostream" #include "opencv2/opencv.hpp"using namespace std; using namespace cv…

ARM64的KASLR分析

基本概念 加載地址&#xff1a;內核解壓到物理內存上的物理起始地址 鏈接地址&#xff1a;內核編譯鏈接后的虛擬起始地址 我們的這篇 文章&#xff0c;介紹了加載地址可以是自動的&#xff0c;也可以是固定的&#xff1b;一般都是物理內存的起始地址 一個偏移 &#xff1b;…

pillow學習3

Pillow庫中&#xff0c;圖像的模式代表了圖像的顏色空間。以下是一些常見的圖像模式及其含義&#xff1a; L&#xff08;灰度圖&#xff09;&#xff1a;L模式表示圖像是灰度圖像&#xff0c;每個像素用8位表示&#xff08;范圍為0-255&#xff09;&#xff0c;0表示黑色&#…