0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FreeRTOS_006_FreeRTOSConfig.h配置文件 (三)

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-14 11:10 次阅读

写在前面

关于FreeRTOSConfig.h配置文件里面的内容除了“通用配置”之外,其他配置的内容初学者用的相对较少,理解起来也相对难一点。为了让初学者有一个大概的了解,本文依然继续讲述关于FreeRTOSConfig.h配置的内容,后期会结合应用更进一步讲述关于FreeRTOSConfig.h的内容。

TIMERS配置

TIMER即定时器,在RTOS中的TIMER属于软件定时。FreeRTOS的定时器精度不高,会随着定时的增加而改变,特别是TIMER任务优先级较低,高优先级占用资源的情况下。

若要使用高精度的定时,还是最后使用硬件的定时器(现在处理器一般都有多个硬件TIMER)。

1.configUSE_TIMERS

是否使用软件定时器

配置为0:不使用

配置为1:使用

其他许多相关的功能都需要结合该配置才能使用,使用时需要注意是否关联。

2.configTIMER_TASK_PRIORITY

软件定时器任务优先级

软件定时器其实也是需要创建一个任务,创建方式和我们常规的一样,只是它是有系统内核完成,不用我们自己写创建任务代码。

这里的这个优先级就是定时器任务的优先级。

3.configTIMER_QUEUE_LENGTH

软件定时器命令队列长度

关于TIMER的命令队列牵涉的知识相对复杂点,后期进一步讲述,可看下图:

4.configTIMER_TASK_STACK_DEPTH

分配给软件定时器的堆栈空间

CO_ROUTINES配置

CO_ROUTINES这个不好翻译,网上都叫协同程序,或者合作程序,理解为协同一起使用的程序,后期结合应用讲述。

1.configUSE_CO_ROUTINES

是否使用CO_ROUTINES

配置为0:不使用

配置为1:使用

2.configMAX_CO_ROUTINE_PRIORITIES

CO_ROUTINE优先级

MEMORY配置

内存分配相关的配置,这里的配置与heap_x.c有关,后面会再次进行讲述。

1.configSUPPORT_STATIC_ALLOCATION

是否支持静态分配

配置为0:不支持

配置为1:支持

2.configSUPPORT_DYNAMIC_ALLOCATION

是否支持动态分配

配置为0:不支持

配置为1:支持

3.configTOTAL_HEAP_SIZE

分配给系统的堆栈

创建任务,堆栈,静态、动态都分配的内存都来自这里。

4.configAPPLICATION_ALLOCATED_HEAP

APP使用哪里分配的堆

配置为0:使用系统分配的堆

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

默认使用系统分配的堆,见下面定义:

#if(configAPPLICATION_ALLOCATED_HEAP == 1 )

extern uint8_t ucHeap[configTOTAL_HEAP_SIZE];

#else

static uint8_t ucHeap[configTOTAL_HEAP_SIZE];

#endif

RUN_TIME_STATS配置

运行时信息统计配置

1.configGENERATE_RUN_TIME_STATS

是否生成统计信息

配置为0:否

配置为1:是

2.configUSE_TRACE_FACILITY

是否协助执行可视化和跟踪

配置为0:否

配置为1:是

这里会添加额外的结构体来实现。

3.configUSE_STATS_FORMATTING_FUNCTIONS

是否统计相关的功能

配置为0:否

配置为1:是

设置宏configUSE_TRACE_FACILITY和configUSE_STATS_FORMATTING_FUNCTIONS为1会编译vTaskList()和vTaskGetRunTimeStats()函数。如果将这两个宏任意一个设置为0,上述两个函数不会被编译。

其他配置

这里简单综合讲述一下各项配置

1.configASSERT

断言配置

2.Interrupt相关

configKERNEL_INTERRUPT_PRIORITY:内核中断优先级

configMAX_SYSCALL_INTERRUPT_PRIORITY:系统调用最大的优先级

configMAX_API_CALL_INTERRUPT_PRIORITY:API调用的最大优先级

这一节与(Cortex)内核硬件中断有关。

3.INCLUDE配置

#define INCLUDE_vTaskPrioritySet 1

#define INCLUDE_uxTaskPriorityGet 1

#define INCLUDE_vTaskDelete 1

这里很好理解,是否包含这一些内容,在UCOS中比较常见。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定时器
    +关注

    关注

    23

    文章

    3249

    浏览量

    114842
  • FreeRTOS
    +关注

    关注

    12

    文章

    484

    浏览量

    62192
  • config
    +关注

    关注

    0

    文章

    15

    浏览量

    4630
收藏 人收藏

    评论

    相关推荐

    linux网卡配置文件

    网卡配置文件     网卡目录[root@localhost opt]# ls /etc/sysconfig/network-scripts/网卡文件名字,和我们ifconfig看到的一样
    的头像 发表于 12-10 10:09 225次阅读

    springboot的项目如何既要用jar包启动,同时还可以为不同的机房设置不同的配置文件

    作者:京东科技 李意文 1、首先先把配置文件从jar中抽离 示例代码:   org.apache.maven.plugins maven-jar-plugin 3.2.0
    的头像 发表于 10-19 16:48 516次阅读
    springboot的项目如何既要用jar包启动,同时还可以为不同的机房设置不同的<b class='flag-5'>配置文件</b>

    HID over GATT配置文件(HOGP)低功耗蓝牙

    电子发烧友网站提供《HID over GATT配置文件(HOGP)低功耗蓝牙.pdf》资料免费下载
    发表于 09-26 11:01 1次下载
    HID over GATT<b class='flag-5'>配置文件</b>(HOGP)低功耗蓝牙

    确定LDO的任务配置文件兼容性

    电子发烧友网站提供《确定LDO的任务配置文件兼容性.pdf》资料免费下载
    发表于 09-24 10:44 0次下载
    确定LDO的任务<b class='flag-5'>配置文件</b>兼容性

    freertos最多支持多少个任务

    以下几个因素: 系统资源 :FreeRTOS能够支持的任务数量受到系统硬件资源的限制,特别是处理器的RAM大小和性能。RAM用于存储任务的控制块(TCB)和任务堆栈,因此RAM越大,理论上可以支持的任务数量就越多。 配置选项 :Free
    的头像 发表于 09-02 14:21 919次阅读

    InModbus2配置文件的注意事项

    大家好,由于最近经常有人问我InModbus2的配置文件如何编辑来达到想要的结果,所以发布一些关于InModbus2的配置文件注意事项,后期我还会发布一些示例来供大家参考让大家都掌握一些简单
    发表于 07-26 07:21

    在Nucleo-H743ZI2板上运行wifi_scan示例,启用FreeRTOS时堆部分被禁用,为什么?

    设备或上下文兼容性问题" 。 此外,当我尝试生成代码时,一些重要文件丢失了,包括 lwipopts.hFreeRTOSConfig.h. 您能否告诉我解决这些问题的必要步骤?
    发表于 07-03 08:17

    鸿蒙开发Ability Kit程序框架服务:FA模型应用配置文件

    应用配置文件中包含应用配置信息、应用组件信息、权限信息、开发者自定义信息等,这些信息在编译构建、分发和运行解决分别提供给编译工具、应用市场和操作系统使用。
    的头像 发表于 06-24 14:49 361次阅读
    鸿蒙开发Ability Kit程序框架服务:FA模型应用<b class='flag-5'>配置文件</b>

    鸿蒙开发:【Stage模型应用配置文件

    应用配置文件中包含应用配置信息、应用组件信息、权限信息、开发者自定义信息等,这些信息在编译构建、分发和运行解决分别提供给编译工具、应用市场和操作系统使用。
    的头像 发表于 06-15 09:15 1684次阅读
    鸿蒙开发:【Stage模型应用<b class='flag-5'>配置文件</b>】

    请问如何修改FreeRTOS的configTICK_RATE_HZ?

    /esp_additions/include/freertos/FreeRTOSConfig.h\", \"owner\": \"cpp\"
    发表于 06-12 06:34

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

    CYW4373 是否支持 SPP 和 GATT 配置文件
    发表于 05-31 06:13

    鸿蒙OpenHarmony:【配置代理】

    新建代理配置文件
    的头像 发表于 04-29 22:17 823次阅读
    鸿蒙OpenHarmony:【<b class='flag-5'>配置</b>代理】

    BlueRNG-M2SA运用FreeRTOS空间不足怎么解决?

    溢出1788bytes FreeRTOSConfig.h 其中的参数有牵扯到空间大小,所以我进行调整尺寸后即可以编译过,但烧录完后并不会有动作,请问有人有试过合拼FreeRTOS成功的案例吗?
    发表于 03-22 07:26

    支持CiA402驱动器配置文件的示例程序用于通过EtherCAT®通信进行电机控制

    电子发烧友网站提供《支持CiA402驱动器配置文件的示例程序用于通过EtherCAT®通信进行电机控制.pdf》资料免费下载
    发表于 02-21 14:21 2次下载
    支持CiA402驱动器<b class='flag-5'>配置文件</b>的示例程序用于通过EtherCAT®通信进行电机控制

    Linux系统中的配置文件

    系统文件,用于配置主机名与 IP 地址的映射关系。当系统需要解析主机名时,会首先查找 /etc/hosts 文件,如果在该文件中找到了相应的映射关系,则直接使用对应的 IP 地址进行通
    发表于 02-19 17:36 1264次阅读