FreeRTOS中“FreeRTOSConfig.h”配置的內容隨著版本(功能)的增加而增加,也就是說隨著系統功能的增加,對應需要的配置信息也相應增加了。
但是系統為了兼容之前的代碼,系統自身做了兼容處理。比如:configUSE_QUEUE_SETS是屬于“FreeRTOSConfig.h”中定義的選項,如果用戶沒有定義,則在“FreeRTOS.h”中有類似如下定義。
開始設計FreeRTOS系統時,工程師們肯定會想到,要盡量減少開發者的開發難度。我們初學移植FreeRTOS時,“FreeRTOSConfig.h”中的大部分配置都選擇默認即可。只有后期熟悉了,開發需要使用較多功能的時候,里面各項的配置就必須要熟透。 對英文不反感的朋友建議參考官網的內容,畢竟官網的資料才是最權威的。#ifndef configUSE_QUEUE_SETS
#define configUSE_QUEUE_SETS 0
#endif
官網地址:
http://www.freertos.org/a00110.html
通用配置
基礎配置是需要我們定義的一些配置,也是比較重要的配置。 FreeRTOSConfig.h配置文件牽涉到許多關于系統方面的名詞,可能許多初學者不容易理解。比如:信號量、消息隊列、互斥鎖、事件組······等。 不過不用擔心,先有個大概了解,我后期會再次有針對性的重點講述。 1.configUSE_PREEMPTION調度模式配置
配置為0:合作式調度,即時間片輪流執行;
配置為1:搶占式調度,即優先級高的任務搶先執行;
由于我們要求實時響應,就配置為1,使用搶占式調度方式。否則就發揮不到實時操作系統的作用。 2.configCPU_CLOCK_HZ
CPU時鐘,就是我們常說的主頻。注意:單位是Hz。
如:STM32F407主頻為168M:
3.configTICK_RATE_HZ系統滴答,即系統每秒鐘滴答的次數,可以說是系統的心跳,但需要和主頻區分開來。系統滴答的值要根據CPU主頻來看,一般主頻越高,取值相對越大,一般在100至1000之間。 簡單舉例:系統滴答決定vTaskDelay。
比如:
#define configTICK_RATE_HZ (1000)
則:
vTaskDelay(1000),表示延時1S。 4.configMAX_PRIORITIES
系統最大優先級值
我們創建任務是,配置的優先級值不能超過這個最大值。
xTaskCreate(vAppTask1, "Task1", TASK1_STACK_SIZE, NULL, TASK1_PRIORITY, NULL); 提示:
a.系統優先級和中斷優先級原理類似,高優先級的會搶在低優先級的前面,但需要區分系統和中斷優先級的應用場景。
b.FreeRTOS中優先級數值越大,優先級越高。而UCOS則相反。 5.configMINIMAL_STACK_SIZE
最小堆棧值
在系統中,一般用于空閑、定時等一些系統任務中,當然,我們有些地方也可以使用這個定義的堆棧值。 注意數值的單位,一般在ARM中為4個字節。 6.configTOTAL_HEAP_SIZE
系統總共堆(棧)大小 我們需要根據需要使用的情況定義這個值。不能定義太小,太小內存容易溢出; 也不能定義太大,有些芯片RAM本身就不大(有些就只有幾K),如果太大我們就沒法定義太多全局變量,或分配其他堆棧空間。 7.configMAX_TASK_NAME_LEN
任務名稱最大長度
也就是創建任務定義任務名稱的字符串長度
xTaskCreate(vAppTask1, "Task1", TASK1_STACK_SIZE, NULL, TASK1_PRIORITY, NULL); 提示:結束符 '?'也包含在內。 8.configUSE_16_BIT_TICKS
是否使用16位滴答計數值
配置為0:則使用32位的滴答計數值,一般在32位處理器中都是配置為0;
配置為1:則使用16位的滴答計數值,一般8位或者16位處理器中配置為1。 9.configIDLE_SHOULD_YIELD
是否讓空閑任務“放棄”搶占
也就是說在執行與空閑任務相同優先級的任務過程中,空閑任務是否具有搶占的機會。 配置為0:不放棄搶占;
配置為1:放棄搶占; 10.configUSE_MUTEXES
是否使用互斥鎖 配置為0:不使用
配置為1:使用 提示:互斥鎖也叫互斥信號量,也就是說對資源“加鎖”。它的作用是實現多任務間共享資源的獨占式處理。簡單的說,就是某個資源在某一時刻只允許一個任務處理,處理完之后才允許其他任務處理該資源。 比如:A任務優先級高,B任務優先級低;AB任務都會使用一個串口發送指令數據,(即每次必須發送完成,不能發送到一半就被打斷)。 當B任務正在發送數據時,A任務處于就緒狀態(要打斷B任務)。那么B任務就需要使用互斥鎖占有該串口(加鎖,占有該資源),等發送完指令,就釋放該串口(開鎖,釋放該資源)。一旦釋放了該資源,A任務就可以使用該串口(資源)了。 11.configUSE_RECURSIVE_MUTEXES
是否使用遞歸互斥鎖 配置為0:不使用
配置為1:使用 13.configQUEUE_REGISTRY_SIZE(*)
可添加(或登記)隊列名的數量 這個配置信息不好翻譯,它主要結合vQueueAddToRegistry與vQueueUnregisterQueue這兩個函數使用。 直接上函數接口:
從函數接口可以知道,一個函數是登記(已經創建的)隊列的名稱;一個函數是注銷隊列的名稱; 其實,主要目的就是給(已經創建的)隊列取名,方便調試查找。 提示:很多初學者理解為“可創建隊列的最大數”,這個配置參數與其完全不一樣的概念。 14.configUSE_QUEUE_SETS(*)void vQueueAddToRegistry(QueueHandle_t xQueue, const char *pcQueueName);
void vQueueUnregisterQueue(QueueHandle_t xQueue);
是否使用消息隊列“SET”功能 配置為0:不使用
配置為1:使用 這個配置信息也相對較難理解。
提示:網上很多解釋為:使能/禁止消息隊列。這個理解太籠統,與消息隊列配置相關的信息比較多,我個人覺得不正確。 15.configUSE_TIME_SLICING
是否使用時間片進行調度 這個參數結合上面第1各配置參數configUSE_PREEMPTION一起使用。 這個配置參數是在后面新版本增加的,好像在V7版本之前是沒有這個配置參數。所以,在FreeRTOSConfig.h配置文件中默認是沒有的,而是定義在FreeRTOS.h中。
審核編輯 :李倩
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
參數
+關注
關注
11文章
1866瀏覽量
32860 -
FreeRTOS
+關注
關注
12文章
488瀏覽量
63735 -
配置
+關注
關注
1文章
190瀏覽量
18797
原文標題:FreeRTOS配置文件有哪些基礎配置
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
Web Bluetooth SPP(串行端口配置文件)示例
電纜替代(Cable Replacement)通常指的是通過無線技術,如低功耗藍牙(Bluetooth LE)替代傳統的有線連接,例如串行端口配置文件(Serial Port Profile,簡稱SPP)。
DLPC3478怎么去做ini配置文件和firmware呢 ?
你好我們現在是用其他廠商的芯片做的開發板加上dlpc3478 2005dmd3010,我們不是官網那個evm,我們要自己開發我們怎么去做ini配置文件 和firmware呢 ?之后我們是用特殊
發表于 02-24 06:35
如何導出交換機的配置文件
在網絡管理中,導出交換機的配置文件是一項關鍵任務,它有助于備份、審計、遷移或恢復網絡配置。本文將詳細介紹如何導出交換機配置文件,涵蓋多種方法,適用于不同場景和需求。文章內容將圍繞幾種常見的導出方法展開,包括通過命令行接口(CLI
配置Skywalking告警
和Metrics .NET6 對接 Skywalking 添加依賴 編輯Skywalking配置文件skyapm.json 在launchSettings.json文件配置SK 在startup.cs

迅為RK3568開發板篇OpenHarmony配置HDF驅動控制LED-配置創建私有配置文件
私有配置文件,用來填寫一些驅動的默認配置信息。HDF 框架在加載驅動時,會獲取相應的配置信息并將其保存在 HdfDeviceObject 的 property 中。這些配置信息通過 B
發表于 01-10 11:13
linux網卡配置文件
網卡配置文件 ? ? 網卡目錄[root@localhost opt]# ls /etc/sysconfig/network-scripts/網卡文件名字,和我們ifconfig看到的一樣
springboot的項目如何既要用jar包啟動,同時還可以為不同的機房設置不同的配置文件
作者:京東科技 李意文 1、首先先把配置文件從jar中抽離 示例代碼: ? org.apache.maven.plugins maven-jar-plugin 3.2.0

HID over GATT配置文件(HOGP)低功耗藍牙
電子發燒友網站提供《HID over GATT配置文件(HOGP)低功耗藍牙.pdf》資料免費下載
發表于 09-26 11:01
?2次下載

freertos最多支持多少個任務
以下幾個因素: 系統資源 :FreeRTOS能夠支持的任務數量受到系統硬件資源的限制,特別是處理器的RAM大小和性能。RAM用于存儲任務的控制塊(TCB)和任務堆棧,因此RAM越大,理論上可以支持的任務數量就越多。 配置選項 :Free
InModbus2配置文件的注意事項
大家好,由于最近經常有人問我InModbus2的配置文件如何編輯來達到想要的結果,所以發布一些關于InModbus2的配置文件注意事項,后期我還會發布一些示例來供大家參考讓大家都掌握一些簡單
發表于 07-26 07:21
如何遠程修改配置box文件?
選擇售貨機~工控機~設備列表,選擇要修改的設備,點遠程控制 遠程控制窗口點擊配置獲取,配置獲取執行成功會有“點擊下載”提示 下載的配置文件修改,保存。 遠程控制窗口點擊配置下發,選擇修
發表于 07-25 07:43
鴻蒙開發Ability Kit程序框架服務:FA模型應用配置文件
應用配置文件中包含應用配置信息、應用組件信息、權限信息、開發者自定義信息等,這些信息在編譯構建、分發和運行解決分別提供給編譯工具、應用市場和操作系統使用。

評論