最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

FreeRTOSConfig 配置文件

2023-07-05 20:51 作者:自閉選手的Z23  | 我要投稿

基本配置?

?1 configUSE_PREEMPTION?

◆ 配置為 1????:使能搶占式調(diào)度器。?

◆ 配置為 0????:使能合作式調(diào)度器。


2 configUSE_PORT_OPTIMISED_TASK_SELECTION

此配置用于優(yōu)化優(yōu)先級列表中要執(zhí)行的最高優(yōu)先級任務(wù)的算法。對 CM 內(nèi)核的移植文件,默認(rèn)已經(jīng)在文件 portmacro.h 文件中使能。

◆ 通用方式---配置為 0:?

?????所有平臺的移植文件都可以配置為 0,因為這是通用方式。

????純 C 編寫,比專用方式效率低。?

????可用的優(yōu)先級數(shù)量不限制。?

◆ 專用方式---配置為 1:?

????部分平臺支持。?

????這些平臺架構(gòu)有專用的匯編指令,比如 CLZ(Count Leading Zeros)指令,通過這些指令可以 加快算法執(zhí)行速度。?

????比通用方式高效。

????有最大優(yōu)先級數(shù)限制,通常限制為 32 個。


3 configUSE_TICKLESS_IDLE

此配置用于使能 tickless 低功耗模式?

????◆ 配置為 1????:使能 tickless 低功耗模式

????◆ 配置為 0?????:禁能 tickless 低功耗模式


4 configCPU_CLOCK_HZ?

????此參數(shù)用于定義 CPU 的主頻,單位 Hz。


5 configTICK_RATE_HZ?

????此參數(shù)用于定義系統(tǒng)時鐘節(jié)拍數(shù),單位 Hz,一般取 1000Hz 即可。本教程配套的例子也全部采用這 個時鐘節(jié)拍數(shù)。過高的的系統(tǒng)時鐘節(jié)拍將使得 FreeRTOS 內(nèi)核運行占用過多的時間,增加系統(tǒng)負(fù)荷。


6 configMAX_PRIORITIES

????此參數(shù)用于定義可供用戶使用的最大優(yōu)先級數(shù),如果這個定義的是 5,那么用戶可以使用的優(yōu)先級號 是 0,1,2,3,4,不包含 5。


7 configMINIMAL_STACK_SIZE?

????此參數(shù)用于定義空閑任務(wù)的??臻g大小,單位字,即 4 字節(jié)。


8 configTOTAL_HEAP_SIZE?

????定義堆大小,F(xiàn)reeRTOS 內(nèi)核,用戶動態(tài)內(nèi)存申請,任務(wù)棧,任務(wù)創(chuàng)建,信號量創(chuàng)建,消息隊列創(chuàng)建 等都需要用這個空間。


9 configMAX_TASK_NAME_LEN?

????定義任務(wù)名最大的字符數(shù),末尾的結(jié)束符 '\0'也要計算在內(nèi)


10 configUSE_16_BIT_TICKS?

????系統(tǒng)時鐘節(jié)拍計數(shù)使用 TickType_t 數(shù)據(jù)類型定義的。

????如果用戶使能了宏定義 configUSE_16_BIT_TICKS,那么 TickType_t 定義的就是 16 位無符號數(shù),如 果沒有使能,那么 TickType_t 定義的就是 32 位無符號數(shù)。對于 32 位架構(gòu)的處理器,一定要禁止此宏定 義,即設(shè)置此宏定義數(shù)值為 0 即可。而 16 位無符號數(shù)類型主要用于 8 位和 16 位架構(gòu)的處理器。


11 configIDLE_SHOULD_YIELD?

????此參數(shù)用于使能與空閑任務(wù)同優(yōu)先級的任務(wù),只有滿足以下兩個條件時,此參數(shù)才有效果: 1. 使能搶占式調(diào)度器。

2. 有創(chuàng)建與空閑任務(wù)同優(yōu)先級的任務(wù)。?

????配置為 1,就可以使能此特性了,實際應(yīng)用中不建議用戶使用此功能,將其配置為 0 即可。


12 configUSE_TASK_NOTIFICATIONS?

????◆ 配置為 1????:?使能任務(wù)間直接的消息傳遞,包含信號量,事件標(biāo)志組和消息郵箱。

????◆ 配置為 0?????:禁能此特性。


13 configUSE_MUTEXES

????◆ 配置為 1????:使能互斥信號量?

????◆ 配置為 0????:禁能互斥信號量


14 configUSE_RECURSIVE_MUTEXES?

????◆ 配置為 1 ????:使能遞歸互斥信號量?

????◆ 配置為 0 ????:禁能遞歸互斥信號量


15 configUSE_COUNTING_SEMAPHORES

????◆ 配置為 1 ???:使能計數(shù)信號量?

????◆ 配置為 0????: 禁能計數(shù)信號量


16 configUSE_ALTERNATIVE_API?

????此配置將在以后的版本中被刪除,建議用戶不要再使用。


17 configQUEUE_REGISTRY_SIZE?

通過此定義來設(shè)置可以注冊的信號量和消息隊列個數(shù)。

隊列注冊有兩個目的,這兩個目的都與內(nèi)核調(diào)試有關(guān):

????◆ 注冊隊列的時候,可以給隊列起一個名字,當(dāng)使用調(diào)試組件的時候,通過名字可以很容易的區(qū)分不同 隊列。

????◆ 通過隊列的相關(guān)信息,調(diào)試器可以很容易定位隊列和信號量,能夠定位信號量是因為 FreeRTOS 信號 量也是基于隊列實現(xiàn)的。 當(dāng)然,如果用戶沒有使用內(nèi)核方面的調(diào)試器,這個宏定義是沒有意義的。


18 configUSE_QUEUE_SETS?

????◆ 配置為 1????:使能消息隊列。?

????◆ 配置為 0????: 禁能消息隊列。


19 configUSE_TIME_SLICING?

????◆ 配置為 1????:使能時間片調(diào)度。?

????◆ 配置為 0 ???:禁能時間片調(diào)度。?

????◆ 用戶沒有配置此選項?

???如果用戶沒有配置此選項,默認(rèn)在 FreeRTOS.h 文件中已經(jīng)配置為 1,即使能時間片調(diào)度。


20 configUSE_NEWLIB_REENTRANT?

????◆ 配置為 1????:每個任務(wù)創(chuàng)建的時候?qū)⒎峙?Newlib 的重入結(jié)構(gòu)體。

????◆ 配置為 0????: 禁止此特性。


21 configENABLE_BACKWARD_COMPATIBILITY?

????◆ 配置為 1????:使能新版本對老版本的兼容特性,即向后兼容或者說向下兼容。?

????◆ 配置為 0????:禁止此特性。


22 configNUM_THREAD_LOCAL_STORAGE_POINTERS?

此配置用于定義線程局部指針變量的個數(shù)。


鉤子函數(shù)配置:

1 configUSE_IDLE_HOOK?

????◆ 配置為 1????:使能空閑任務(wù)的鉤子函數(shù)?

????◆ 配置為 0????:禁能空閑任務(wù)鉤子函數(shù)


2 configUSE_MALLOC_FAILED_HOOK?

????當(dāng)創(chuàng)建任務(wù),信號量或者消息隊列時,F(xiàn)reeRTOS 通過函數(shù) pvPortMalloc()申請動態(tài)內(nèi)存。

???? ◆ 配置為 1????:使能動態(tài)內(nèi)存申請失敗時的鉤子函數(shù)

???? ◆ 配置為 0????:禁能動態(tài)內(nèi)存申請失敗時的鉤子函數(shù)


3 configUSE_TICK_HOOK

???? ◆ 配置為 1???:使能滴答定時器中斷里面執(zhí)行的鉤子函數(shù)?

????◆ 配置為 0????:禁能滴答定時器中斷里面執(zhí)行的鉤子函數(shù)


4 configCHECK_FOR_STACK_OVERFLOW?

FreeRTOS 的棧溢出檢測支持兩種方法,稱之為方法一和方法二。?

????◆ 配置為 2????:棧溢出檢測使用方法二

????◆ 配置為 1????:棧溢出檢測使用方法一

????◆ 配置為 0????:禁止棧溢出檢測


任務(wù)運行信息獲取配置:

1 configGENERATE_RUN_TIME_STATS?

????◆ 配置為 1????:使能任務(wù)運行狀態(tài)參數(shù)統(tǒng)計。?

????配置為 0 ???:禁止此特性。


2?configUSE_TRACE_FACILITY?

????◆ 配置為 1????:使能此配置將添加額外的結(jié)構(gòu)體成員和函數(shù),以此來協(xié)助可視化和跟蹤,

在使用 IAR 中的 FreeRTOS 插件時要使能這個配置,否則無法顯示任務(wù)棧的使用情況。

???? ◆ 配置為 0????: 禁能此特性。


3 configUSE_STATS_FORMATTING_FUNCTIONS

????用戶配置宏定義?configUSE_TRACE_FACILITY 和 configUSE_STATS_FORMATTING_FUNCTIONS 都為 1 的時候,

????將使能函數(shù) vTaskList() 和 vTaskGetRunTimeStats(),如果兩者中任何一個為 0,那么 這兩個函數(shù)都將被禁能。


合作式任務(wù)配置

1 configUSE_CO_ROUTINES?

????◆ 配置為 1????:使能合作式調(diào)度相關(guān)函數(shù)。

????◆ 配置為 0 ???:禁能合作式調(diào)度相關(guān)函數(shù)。?


2 configMAX_CO_ROUTINE_PRIORITIES?

????此參數(shù)用于定義可供用戶使用的最大的合作式任務(wù)優(yōu)先級數(shù),如果這個定義的是 5,那么用戶可以使 用的優(yōu)先級號是 0,1,2,3,4,不包含 5


軟件定時器配置

1 configUSE_TIMERS?

????◆ 配置為 1????:使能軟件定時器。?

????◆ 配置為 0????:禁能軟件定時器。


?2 configTIMER_TASK_PRIORITY?

????配置軟件定時器任務(wù)的優(yōu)先級。


3 configTIMER_QUEUE_LENGTH?

????配置軟件定時器命令隊列的長度。


4 configTIMER_TASK_STACK_DEPTH?

????配置軟件定時器任務(wù)的棧空間大小。



斷言配置

????FreeRTOS 中的斷言函數(shù) configASSERT()和標(biāo)準(zhǔn) C 中的斷言函數(shù) assert()是一樣的,如果斷言函數(shù)的?參數(shù)為 0 時將觸發(fā)斷言函數(shù)的執(zhí)行。

?????FreeRTOS 的斷言功能在調(diào)試階段是非常有用的,可以有效地檢查參數(shù)錯誤和運行中的錯誤,但在正式發(fā)布軟件時,請將此功能關(guān)閉,因為斷言功能會增加工程代碼大小并降低工程執(zhí)行效率。關(guān)閉斷言也比較簡單,如果 FreeRTOSConfig.h 文件中有斷言的宏定義,將其注釋掉即可,如果沒有宏定義,默認(rèn)在?FreeRTOS.h 文件中就是關(guān)閉的。

? ? 可以采用如下的斷言方法:

????在使用調(diào)試器的情況下,一旦出現(xiàn)斷言失敗,會關(guān)閉中斷,程序會死在這個 for 循環(huán)中,此時用戶可以很?容易就鎖定函數(shù)出錯位置。?當(dāng)然,采用下面這種方法也是可以的:

????


????其中關(guān)鍵字 __LINE__ 表示源代碼行號,關(guān)鍵字__FILE__表示源代碼文件名。

????用戶可以自行測試下這個函?數(shù) vAssertCalled,在這個函數(shù)里面調(diào)用一下串口打印之類的功能,將出現(xiàn)錯誤的源文件和代碼行號打印?出來。這種方法也可以很方便的鎖定出錯的位置。?調(diào)試階段出現(xiàn)斷言失敗的情況下,不限制以上兩種處理方法,用戶采用適合自己的方法即可。


函數(shù) Include 配置

函數(shù) Include 配置主要是指用戶可以根據(jù)需要使能或者禁止在工程中使用相應(yīng)的函數(shù),

配置為 1,表示使能,即可以在工程中使用相應(yīng)函數(shù)。

配置為 0,表示禁止,即禁止在工程中使用相應(yīng)函數(shù)??梢赃@樣設(shè)置的函數(shù)主要有如下幾種:

對于配置 1,但用戶在工程中沒有用到的函數(shù),編譯器一般都會把這些冗余函數(shù)刪掉,不會添加到最終的 hex 文件中。




FreeRTOSConfig 配置文件的評論 (共 條)

分享到微博請遵守國家法律
绥芬河市| 如东县| 桂东县| 麦盖提县| 崇仁县| 将乐县| 洛阳市| 连云港市| 太谷县| 嫩江县| 朝阳市| 泰和县| 松阳县| 赞皇县| 哈密市| 长治市| 金华市| 天镇县| 新巴尔虎右旗| 静海县| 富锦市| 城步| 丰原市| 温宿县| 长春市| 万盛区| 开江县| 辽源市| 齐齐哈尔市| 兴仁县| 嵊泗县| 武功县| 仪征市| 镇安县| 汉沽区| 远安县| 休宁县| 和顺县| 屏南县| 长阳| 清流县|