国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

FreeRTOS配置文件的通用配置

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2022-06-15 09:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

FreeRTOS中“FreeRTOSConfig.h”配置的內容隨著版本(功能)的增加而增加,也就是說隨著系統功能的增加,對應需要的配置信息也相應增加了。

但是系統為了兼容之前的代碼,系統自身做了兼容處理。比如:configUSE_QUEUE_SETS是屬于“FreeRTOSConfig.h”中定義的選項,如果用戶沒有定義,則在“FreeRTOS.h”中有類似如下定義。


#ifndef configUSE_QUEUE_SETS  #define configUSE_QUEUE_SETS 0#endif
開始設計FreeRTOS系統時,工程師們肯定會想到,要盡量減少開發(fā)者的開發(fā)難度。我們初學移植FreeRTOS時,“FreeRTOSConfig.h”中的大部分配置都選擇默認即可。只有后期熟悉了,開發(fā)需要使用較多功能的時候,里面各項的配置就必須要熟透。 對英文不反感的朋友建議參考官網的內容,畢竟官網的資料才是最權威的。

官網地址:

http://www.freertos.org/a00110.html

465c9790-ec46-11ec-ba43-dac502259ad0.gif

通用配置

基礎配置是需要我們定義的一些配置,也是比較重要的配置。 FreeRTOSConfig.h配置文件牽涉到許多關于系統方面的名詞,可能許多初學者不容易理解。比如:信號量、消息隊列、互斥鎖、事件組······等。 不過不用擔心,先有個大概了解,我后期會再次有針對性的重點講述。 1.configUSE_PREEMPTION
調度模式配置
配置為0:合作式調度,即時間片輪流執(zhí)行;
配置為1:搶占式調度,即優(yōu)先級高的任務搶先執(zhí)行;
由于我們要求實時響應,就配置為1,使用搶占式調度方式。否則就發(fā)揮不到實時操作系統的作用。 2.configCPU_CLOCK_HZ
CPU時鐘,就是我們常說的主頻。注意:單位是Hz。
如:STM32F407主頻為168M:
#define configCPU_CLOCK_HZ      (168000000)
3.configTICK_RATE_HZ
系統滴答,即系統每秒鐘滴答的次數,可以說是系統的心跳,但需要和主頻區(qū)分開來。系統滴答的值要根據CPU主頻來看,一般主頻越高,取值相對越大,一般在100至1000之間。 簡單舉例:系統滴答決定vTaskDelay。
比如:
#define configTICK_RATE_HZ (1000)
則:
vTaskDelay(1000),表示延時1S。 4.configMAX_PRIORITIES
系統最大優(yōu)先級值
我們創(chuàng)建任務是,配置的優(yōu)先級值不能超過這個最大值。
xTaskCreate(vAppTask1, "Task1", TASK1_STACK_SIZE, NULL, TASK1_PRIORITY, NULL); 提示:
a.系統優(yōu)先級和中斷優(yōu)先級原理類似,高優(yōu)先級的會搶在低優(yōu)先級的前面,但需要區(qū)分系統和中斷優(yōu)先級的應用場景。
b.FreeRTOS中優(yōu)先級數值越大,優(yōu)先級越高。而UCOS則相反。 5.configMINIMAL_STACK_SIZE
最小堆棧值
在系統中,一般用于空閑、定時等一些系統任務中,當然,我們有些地方也可以使用這個定義的堆棧值。 注意數值的單位,一般在ARM中為4個字節(jié)。 6.configTOTAL_HEAP_SIZE
系統總共堆(棧)大小 我們需要根據需要使用的情況定義這個值。不能定義太小,太小內存容易溢出; 也不能定義太大,有些芯片RAM本身就不大(有些就只有幾K),如果太大我們就沒法定義太多全局變量,或分配其他堆棧空間。 7.configMAX_TASK_NAME_LEN
任務名稱最大長度
也就是創(chuàng)建任務定義任務名稱的字符串長度
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
是否讓空閑任務“放棄”搶占
也就是說在執(zhí)行與空閑任務相同優(yōu)先級的任務過程中,空閑任務是否具有搶占的機會。 配置為0:不放棄搶占;
配置為1:放棄搶占; 10.configUSE_MUTEXES
是否使用互斥鎖 配置為0:不使用
配置為1:使用 提示互斥鎖也叫互斥信號量,也就是說對資源“加鎖”。它的作用是實現多任務間共享資源的獨占式處理。簡單的說,就是某個資源在某一時刻只允許一個任務處理,處理完之后才允許其他任務處理該資源。 比如:A任務優(yōu)先級高,B任務優(yōu)先級低;AB任務都會使用一個串口發(fā)送指令數據,(即每次必須發(fā)送完成,不能發(fā)送到一半就被打斷)。 當B任務正在發(fā)送數據時,A任務處于就緒狀態(tài)(要打斷B任務)。那么B任務就需要使用互斥鎖占有該串口(加鎖,占有該資源),等發(fā)送完指令,就釋放該串口(開鎖,釋放該資源)。一旦釋放了該資源,A任務就可以使用該串口(資源)了。 11.configUSE_RECURSIVE_MUTEXES
是否使用遞歸互斥鎖 配置為0:不使用
配置為1:使用 13.configQUEUE_REGISTRY_SIZE(*)
可添加(或登記)隊列名的數量 這個配置信息不好翻譯,它主要結合vQueueAddToRegistry與vQueueUnregisterQueue這兩個函數使用。 直接上函數接口:
void vQueueAddToRegistry(QueueHandle_t xQueue, const char *pcQueueName);void vQueueUnregisterQueue(QueueHandle_t xQueue);
從函數接口可以知道,一個函數是登記(已經創(chuàng)建的)隊列的名稱;一個函數是注銷隊列的名稱; 其實,主要目的就是給(已經創(chuàng)建的)隊列取名,方便調試查找。 提示:很多初學者理解為“可創(chuàng)建隊列的最大數”,這個配置參數與其完全不一樣的概念。 14.configUSE_QUEUE_SETS(*)
是否使用消息隊列“SET”功能 配置為0:不使用
配置為1:使用 這個配置信息也相對較難理解。
提示:網上很多解釋為:使能/禁止消息隊列。這個理解太籠統,與消息隊列配置相關的信息比較多,我個人覺得不正確。 15.configUSE_TIME_SLICING
是否使用時間片進行調度 這個參數結合上面第1各配置參數configUSE_PREEMPTION一起使用。 這個配置參數是在后面新版本增加的,好像在V7版本之前是沒有這個配置參數。所以,在FreeRTOSConfig.h配置文件中默認是沒有的,而是定義在FreeRTOS.h中。
#ifndef configUSE_TIME_SLICING  #define configUSE_TIME_SLICING 1#endif

審核編輯 :李倩


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

    關注

    11

    文章

    1869

    瀏覽量

    33947
  • FreeRTOS
    +關注

    關注

    14

    文章

    499

    瀏覽量

    66939
  • 配置
    +關注

    關注

    1

    文章

    194

    瀏覽量

    19463

原文標題:FreeRTOS配置文件有哪些基礎配置

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    rk3576 android15平臺camera編譯配置都做了什么?

    、芯片平臺、產品類型),實現相機相關配置文件、固件、IQ參數文件的條件化拷貝,以及相機專屬庫的編譯打包,最終將這些文件部署到開發(fā)板的system/vendor分區(qū),是相機硬件與軟件適配的核心
    的頭像 發(fā)表于 03-06 17:15 ?610次閱讀
    rk3576 android15平臺camera編譯<b class='flag-5'>配置</b>都做了什么?

    編寫一個生產級的Service配置文件

    systemctl start xxx 敲了無數遍,但真要從零寫一個 Service 文件丟到生產環(huán)境跑,很多人就開始心虛了。網上抄一段配置,Type=simple 還是 forking 搞不清楚
    的頭像 發(fā)表于 02-25 14:24 ?163次閱讀

    以“網關中間件”實現充電樁OCPP 1.6安全配置文件無縫升級

    深圳惠志科技有限公司推出的OCPP安全代理網關采用"網關中間件"架構,在充電樁與云端CSMS之間透明地部署,實現充電樁OCPP 1.6協議安全配置文件從Profile 0/1到Profile 2/3的無縫升級,而無需觸及樁端硬件與固件。
    的頭像 發(fā)表于 02-04 11:56 ?805次閱讀
    以“網關中間件”實現充電樁OCPP 1.6安全<b class='flag-5'>配置文件</b>無縫升級

    配置文件損壞可能會帶來哪些安全風險?

    配置文件損壞不僅會導致電能質量在線監(jiān)測裝置功能異常,還可能引發(fā) 數據安全、運維安全、設備安全、合規(guī)安全 四大類安全風險,尤其在電力系統、工業(yè)配電等關鍵場景中,風險可能傳導至電網或生產系統,造成
    的頭像 發(fā)表于 12-10 16:37 ?424次閱讀
    <b class='flag-5'>配置文件</b>損壞可能會帶來哪些安全風險?

    求助各位大佬,關于如何讀寫編碼格式為UTF-16LE的配置文件?

    如題,小白求助各位大佬,要怎么實現對編碼為UTF-16LE的配置文件的讀寫。 使用讀配置文件的vi讀不出內容。 使用讀文本的方式寫入異常,文件的編碼變成UTF-8且內容也不對。
    發(fā)表于 09-14 12:54

    是否有可能使用CYSPP配置文件連接到外圍設備?

    我們的現有系統使用中央和外圍設備,使用基于 Microchip RN4020 的中央和外圍設備。 由于供應限制的原因,我們希望將英飛凌 CYBT-483056 SoC 用于 BLE central。 我們想知道是否有可能使用CYSPP配置文件連接到外圍設備? 或任何其他請求響應通信方法。
    發(fā)表于 07-07 06:17

    CYW20721 是否支持 HFP、HSP 和 A2DP 配置文件?

    我打算使用 CYW20721,以替換我們產品中已經過時的藍牙模塊. 我很想知道 CYW20721 是否支持 HFP、HSP 和 A2DP 配置文件
    發(fā)表于 07-04 07:28

    哪些芯片支持藍牙經典 A2DP 配置文件和 LE 音頻?

    哪些芯片支持藍牙經典 A2DP 配置文件和 LE 音頻?
    發(fā)表于 07-01 06:41

    CYW920820M2EVB-01開發(fā)套件可以與藍牙的免提配置文件一起使用嗎?

    我有英飛凌 CYW920820M2EVB-01 開發(fā)套件,我想將它與藍牙的免提配置文件一起使用。 是否可以。 該套件是否支持該配置文件? 我無法在任何地方找到該套件支持的配置文件。 如果是,那么我可以得到一些關于如何執(zhí)行此操作的
    發(fā)表于 06-30 06:15

    如何才能知道英飛凌Bluetooth?產品支持哪種Bluetooth?配置文件和版本?

    如何才能知道英飛凌Bluetooth?產品支持哪種Bluetooth?配置文件和版本? A2DP、AVRCP、HSP、HFP 等 是否有一個網頁或文檔解釋每個設備支持哪些配置文件和版本? 目前我想了解以下設備特別支持的配置文件
    發(fā)表于 06-27 06:04

    配置文件的差異介紹

    配置文件的差異 FA模型應用在config.json文件中描述應用的基本信息,一個應用工程中可以創(chuàng)建多個Module,每個Module中都有一份config.json文件。config.json由
    發(fā)表于 06-05 06:50

    干貨分享,profinet轉devicenet網關攜手伺服驅動的配置技巧

    穩(wěn)聯技術devicenet轉profinet網關模塊WL-PN-DVNM,連接PLC和伺服驅動器的通信配置。首先devicenet不需要組態(tài)軟件,只需要導入配置文件,即可使用,這也是devicenet協議被越來越多的生產現場選擇的優(yōu)勢之一。
    的頭像 發(fā)表于 05-27 13:53 ?445次閱讀
    干貨分享,profinet轉devicenet網關攜手伺服驅動的<b class='flag-5'>配置</b>技巧

    為什么在SDK 1.3.5中創(chuàng)建的配置文件是在SDK 1.3.4中創(chuàng)建的 打不開?

    為什么在 SDK 1.3.5 中創(chuàng)建的配置文件是在 SDK 1.3.4 中創(chuàng)建的 打不開?
    發(fā)表于 05-13 07:22

    如何在Linux中配置DNS服務器

    本文詳細介紹了如何在Linux中配置DNS服務器,包括DNS工作原理、本地緩存、DNS查詢過程,以及正向和反向查詢的配置。步驟包括服務器配置、編輯BIND配置文件、添加解析信息和客戶端
    的頭像 發(fā)表于 05-09 13:38 ?2623次閱讀
    如何在Linux中<b class='flag-5'>配置</b>DNS服務器

    Profibus DP主站轉Modbus TCP網關配置文件制作

    Profibus DP主站轉Modbus TCP網關配置文件制作
    的頭像 發(fā)表于 04-02 13:06 ?760次閱讀
    Profibus DP主站轉Modbus TCP網關<b class='flag-5'>配置文件</b>制作