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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FreeRTOS_006_FreeRTOSConfig.h配置文件 (三)

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-14 11:10 ? 次閱讀

寫在前面

關(guān)于FreeRTOSConfig.h配置文件里面的內(nèi)容除了“通用配置”之外,其他配置的內(nèi)容初學(xué)者用的相對較少,理解起來也相對難一點(diǎn)。為了讓初學(xué)者有一個(gè)大概的了解,本文依然繼續(xù)講述關(guān)于FreeRTOSConfig.h配置的內(nèi)容,后期會(huì)結(jié)合應(yīng)用更進(jìn)一步講述關(guān)于FreeRTOSConfig.h的內(nèi)容。

TIMERS配置

TIMER即定時(shí)器,在RTOS中的TIMER屬于軟件定時(shí)。FreeRTOS的定時(shí)器精度不高,會(huì)隨著定時(shí)的增加而改變,特別是TIMER任務(wù)優(yōu)先級較低,高優(yōu)先級占用資源的情況下。

若要使用高精度的定時(shí),還是最后使用硬件的定時(shí)器(現(xiàn)在處理器一般都有多個(gè)硬件TIMER)。

1.configUSE_TIMERS

是否使用軟件定時(shí)器

配置為0:不使用

配置為1:使用

其他許多相關(guān)的功能都需要結(jié)合該配置才能使用,使用時(shí)需要注意是否關(guān)聯(lián)。

2.configTIMER_TASK_PRIORITY

軟件定時(shí)器任務(wù)優(yōu)先級

軟件定時(shí)器其實(shí)也是需要?jiǎng)?chuàng)建一個(gè)任務(wù),創(chuàng)建方式和我們常規(guī)的一樣,只是它是有系統(tǒng)內(nèi)核完成,不用我們自己寫創(chuàng)建任務(wù)代碼。

這里的這個(gè)優(yōu)先級就是定時(shí)器任務(wù)的優(yōu)先級。

3.configTIMER_QUEUE_LENGTH

軟件定時(shí)器命令隊(duì)列長度

關(guān)于TIMER的命令隊(duì)列牽涉的知識(shí)相對復(fù)雜點(diǎn),后期進(jìn)一步講述,可看下圖:

4.configTIMER_TASK_STACK_DEPTH

分配給軟件定時(shí)器的堆??臻g

CO_ROUTINES配置

CO_ROUTINES這個(gè)不好翻譯,網(wǎng)上都叫協(xié)同程序,或者合作程序,理解為協(xié)同一起使用的程序,后期結(jié)合應(yīng)用講述。

1.configUSE_CO_ROUTINES

是否使用CO_ROUTINES

配置為0:不使用

配置為1:使用

2.configMAX_CO_ROUTINE_PRIORITIES

CO_ROUTINE優(yōu)先級

MEMORY配置

內(nèi)存分配相關(guān)的配置,這里的配置與heap_x.c有關(guān),后面會(huì)再次進(jìn)行講述。

1.configSUPPORT_STATIC_ALLOCATION

是否支持靜態(tài)分配

配置為0:不支持

配置為1:支持

2.configSUPPORT_DYNAMIC_ALLOCATION

是否支持動(dòng)態(tài)分配

配置為0:不支持

配置為1:支持

3.configTOTAL_HEAP_SIZE

分配給系統(tǒng)的堆棧

創(chuàng)建任務(wù),堆棧,靜態(tài)、動(dòng)態(tài)都分配的內(nèi)存都來自這里。

4.configAPPLICATION_ALLOCATED_HEAP

APP使用哪里分配的堆

配置為0:使用系統(tǒng)分配的堆

配置為1:使用外部分配的堆

默認(rèn)使用系統(tǒng)分配的堆,見下面定義:

#if(configAPPLICATION_ALLOCATED_HEAP == 1 )

extern uint8_t ucHeap[configTOTAL_HEAP_SIZE];

#else

static uint8_t ucHeap[configTOTAL_HEAP_SIZE];

#endif

RUN_TIME_STATS配置

運(yùn)行時(shí)信息統(tǒng)計(jì)配置

1.configGENERATE_RUN_TIME_STATS

是否生成統(tǒng)計(jì)信息

配置為0:否

配置為1:是

2.configUSE_TRACE_FACILITY

是否協(xié)助執(zhí)行可視化和跟蹤

配置為0:否

配置為1:是

這里會(huì)添加額外的結(jié)構(gòu)體來實(shí)現(xiàn)。

3.configUSE_STATS_FORMATTING_FUNCTIONS

是否統(tǒng)計(jì)相關(guān)的功能

配置為0:否

配置為1:是

設(shè)置宏configUSE_TRACE_FACILITY和configUSE_STATS_FORMATTING_FUNCTIONS為1會(huì)編譯vTaskList()和vTaskGetRunTimeStats()函數(shù)。如果將這兩個(gè)宏任意一個(gè)設(shè)置為0,上述兩個(gè)函數(shù)不會(huì)被編譯。

其他配置

這里簡單綜合講述一下各項(xiàng)配置

1.configASSERT

斷言配置

2.Interrupt相關(guān)

configKERNEL_INTERRUPT_PRIORITY:內(nèi)核中斷優(yōu)先級

configMAX_SYSCALL_INTERRUPT_PRIORITY:系統(tǒng)調(diào)用最大的優(yōu)先級

configMAX_API_CALL_INTERRUPT_PRIORITY:API調(diào)用的最大優(yōu)先級

這一節(jié)與(Cortex)內(nèi)核硬件中斷有關(guān)。

3.INCLUDE配置

#define INCLUDE_vTaskPrioritySet 1

#define INCLUDE_uxTaskPriorityGet 1

#define INCLUDE_vTaskDelete 1

這里很好理解,是否包含這一些內(nèi)容,在UCOS中比較常見。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3250

    瀏覽量

    114918
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62216
  • config
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    4634
收藏 人收藏

    評論

    相關(guān)推薦

    linux網(wǎng)卡配置文件

    網(wǎng)卡配置文件 ? ? 網(wǎng)卡目錄[root@localhost opt]# ls /etc/sysconfig/network-scripts/網(wǎng)卡文件名字,和我們ifconfig看到的一樣
    的頭像 發(fā)表于 12-10 10:09 ?233次閱讀

    springboot的項(xiàng)目如何既要用jar包啟動(dòng),同時(shí)還可以為不同的機(jī)房設(shè)置不同的配置文件

    作者:京東科技 李意文 1、首先先把配置文件從jar中抽離 示例代碼: ? org.apache.maven.plugins maven-jar-plugin 3.2.0
    的頭像 發(fā)表于 10-19 16:48 ?527次閱讀
    springboot的項(xiàng)目如何既要用jar包啟動(dòng),同時(shí)還可以為不同的機(jī)房設(shè)置不同的<b class='flag-5'>配置文件</b>

    HID over GATT配置文件(HOGP)低功耗藍(lán)牙

    電子發(fā)燒友網(wǎng)站提供《HID over GATT配置文件(HOGP)低功耗藍(lán)牙.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 11:01 ?1次下載
    HID over GATT<b class='flag-5'>配置文件</b>(HOGP)低功耗藍(lán)牙

    確定LDO的任務(wù)配置文件兼容性

    電子發(fā)燒友網(wǎng)站提供《確定LDO的任務(wù)配置文件兼容性.pdf》資料免費(fèi)下載
    發(fā)表于 09-24 10:44 ?0次下載
    確定LDO的任務(wù)<b class='flag-5'>配置文件</b>兼容性

    freertos最多支持多少個(gè)任務(wù)

    以下幾個(gè)因素: 系統(tǒng)資源 :FreeRTOS能夠支持的任務(wù)數(shù)量受到系統(tǒng)硬件資源的限制,特別是處理器的RAM大小和性能。RAM用于存儲(chǔ)任務(wù)的控制塊(TCB)和任務(wù)堆棧,因此RAM越大,理論上可以支持的任務(wù)數(shù)量就越多。 配置選項(xiàng) :Free
    的頭像 發(fā)表于 09-02 14:21 ?950次閱讀

    InModbus2配置文件的注意事項(xiàng)

    大家好,由于最近經(jīng)常有人問我InModbus2的配置文件如何編輯來達(dá)到想要的結(jié)果,所以發(fā)布一些關(guān)于InModbus2的配置文件注意事項(xiàng),后期我還會(huì)發(fā)布一些示例來供大家參考讓大家都掌握一些簡單
    發(fā)表于 07-26 07:21

    在Nucleo-H743ZI2板上運(yùn)行wifi_scan示例,啟用FreeRTOS時(shí)堆部分被禁用,為什么?

    設(shè)備或上下文兼容性問題" 。 此外,當(dāng)我嘗試生成代碼時(shí),一些重要文件丟失了,包括 lwipopts.hFreeRTOSConfig.h. 您能否告訴我解決這些問題的必要步驟?
    發(fā)表于 07-03 08:17

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型應(yīng)用配置文件

    應(yīng)用配置文件中包含應(yīng)用配置信息、應(yīng)用組件信息、權(quán)限信息、開發(fā)者自定義信息等,這些信息在編譯構(gòu)建、分發(fā)和運(yùn)行解決分別提供給編譯工具、應(yīng)用市場和操作系統(tǒng)使用。
    的頭像 發(fā)表于 06-24 14:49 ?370次閱讀
    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型應(yīng)用<b class='flag-5'>配置文件</b>

    鴻蒙開發(fā):【Stage模型應(yīng)用配置文件

    應(yīng)用配置文件中包含應(yīng)用配置信息、應(yīng)用組件信息、權(quán)限信息、開發(fā)者自定義信息等,這些信息在編譯構(gòu)建、分發(fā)和運(yùn)行解決分別提供給編譯工具、應(yīng)用市場和操作系統(tǒng)使用。
    的頭像 發(fā)表于 06-15 09:15 ?1697次閱讀
    鴻蒙開發(fā):【Stage模型應(yīng)用<b class='flag-5'>配置文件</b>】

    請問如何修改FreeRTOS的configTICK_RATE_HZ?

    /esp_additions/include/freertos/FreeRTOSConfig.h\", \"owner\": \"cpp\"
    發(fā)表于 06-12 06:34

    CYW4373是否支持SPP和GATT配置文件?

    CYW4373 是否支持 SPP 和 GATT 配置文件
    發(fā)表于 05-31 06:13

    鴻蒙OpenHarmony:【配置代理】

    新建代理配置文件。
    的頭像 發(fā)表于 04-29 22:17 ?827次閱讀
    鴻蒙OpenHarmony:【<b class='flag-5'>配置</b>代理】

    BlueRNG-M2SA運(yùn)用FreeRTOS空間不足怎么解決?

    溢出1788bytes FreeRTOSConfig.h 其中的參數(shù)有牽扯到空間大小,所以我進(jìn)行調(diào)整尺寸后即可以編譯過,但燒錄完后并不會(huì)有動(dòng)作,請問有人有試過合拼FreeRTOS成功的案例嗎?
    發(fā)表于 03-22 07:26

    支持CiA402驅(qū)動(dòng)器配置文件的示例程序用于通過EtherCAT?通信進(jìn)行電機(jī)控制

    電子發(fā)燒友網(wǎng)站提供《支持CiA402驅(qū)動(dòng)器配置文件的示例程序用于通過EtherCAT?通信進(jìn)行電機(jī)控制.pdf》資料免費(fèi)下載
    發(fā)表于 02-21 14:21 ?2次下載
    支持CiA402驅(qū)動(dòng)器<b class='flag-5'>配置文件</b>的示例程序用于通過EtherCAT?通信進(jìn)行電機(jī)控制

    Linux系統(tǒng)中的配置文件

    系統(tǒng)文件,用于配置主機(jī)名與 IP 地址的映射關(guān)系。當(dāng)系統(tǒng)需要解析主機(jī)名時(shí),會(huì)首先查找 /etc/hosts 文件,如果在該文件中找到了相應(yīng)的映射關(guān)系,則直接使用對應(yīng)的 IP 地址進(jìn)行通
    發(fā)表于 02-19 17:36 ?1297次閱讀