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

    文章

    3195

    浏览量

    113032
  • FreeRTOS
    +关注

    关注

    12

    文章

    475

    浏览量

    61559
  • config
    +关注

    关注

    0

    文章

    15

    浏览量

    4585
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    labview生成exe文件如何配置文件

    可执行文件之前,您需要确保正确配置文件,以便应用程序能够在不同计算机上正确运行。 下面是一个详尽、详实、细致的步骤指南,告诉您如何配置LabVIEW生成的可执行文件: 确保您的应用程序
    的头像 发表于 12-27 16:28 1350次阅读

    labview的opc生成配置文件

    的数据交互和通信。在 LabVIEW 中生成 OPC 配置文件有助于实现与其他设备的数据传输和共享,本文将详细介绍如何生成 OPC 配置文件。 首先,在 LabVIEW 中生成 OPC 配置文件,我们
    的头像 发表于 12-26 17:57 1006次阅读

    oracle配置文件类型关联

    Oracle是一种业界领先的关系型数据库管理系统,它在大型企业中被广泛使用。Oracle的配置文件对于数据库的稳定运行和性能优化至关重要。在这篇文章中,我们将详细讨论Oracle的一些重要配置文件
    的头像 发表于 12-06 10:17 323次阅读

    oracle配置文件tnsnames怎么配置

    Oracle配置文件tnsnames.ora是一个文本文件,用于定义数据库连接的别名和连接信息。通过配置文件,可以在应用程序中使用别名来连接数据库,而不必直接给出数据库的具体连接信息
    的头像 发表于 12-06 10:15 2822次阅读

    php的配置文件是什么

    PHP的配置文件是一种用于配置PHP解释器的文本文件。它包含了一系列的指令和选项,用于影响PHP的行为和性能。通过修改配置文件,可以改变PHP解释器的默认行为,从而满足不同的需求。 在
    的头像 发表于 12-04 15:55 1185次阅读

    zookeeper的核心配置文件是什么

    Zookeeper是一个常用的分布式协调服务,它被广泛应用于大型分布式系统中。Zookeeper的核心配置文件是zoo.cfg,它包含了Zookeeper服务器的各种配置参数,可以通过修改这些参数
    的头像 发表于 12-04 10:33 448次阅读

    springboot的核心配置文件有哪些

    的工作量。 Spring Boot的核心配置文件主要有以下几个: application.properties:Spring Boot应用程序的主要配置文件。它使用Java的键值对格式来定义各种配置属性
    的头像 发表于 12-03 15:30 840次阅读

    springboot的全局配置文件有几种

    Spring Boot是一种快速开发框架,其通过提供配置文件来实现对应用程序的配置。全局配置文件在Spring Boot中起着非常重要的作用,可以用于配置各种不同的属性,包括数据库连接
    的头像 发表于 12-03 15:28 780次阅读

    ROS编写参数配置文件示例程序

    _config.yaml这文件中,这文件均位于下图所示的目录下,下面依次进行详细的介绍 1、编写user_config.yaml参数配置文
    的头像 发表于 11-26 17:35 958次阅读
    ROS编写参数<b class='flag-5'>配置文件</b>示例程序

    linux修改网卡ip配置文件

    Linux是一种开源的操作系统,因此,它给用户提供了很高的自由度,可以根据个人需要进行各种定制和配置。其中,修改网络接口配置文件是常见的操作,可以通过修改网卡ip配置文件来设置网络接口的IP地址
    的头像 发表于 11-17 10:51 1616次阅读

    KT142C语音芯片配置文件总是不起作用?配置文件的问题集中归纳

    KT142C语音芯片配置文件总是不起作用?配置文件的问题集中归纳
    的头像 发表于 10-20 15:04 383次阅读
    KT142C语音芯片<b class='flag-5'>配置文件</b>总是不起作用?<b class='flag-5'>配置文件</b>的问题集中归纳

    Eureka Server面向接口的方式读取配置文件

    } 初始化环境和加载配置文件在方法 initEurekaEnvironment 方法中,一起来看看吧。 String dataCenter
    的头像 发表于 10-09 17:05 414次阅读
    Eureka Server面向接口的方式读取<b class='flag-5'>配置文件</b>

    AMBA® 自适应流量配置文件

    流量配置文件是对接口的事务特性的定义。AMBA自适应交通Profile(ATP)是接口动态特性的规范。AMBA ATP包括交易的类型以及这些交易的时间特征。 流量配置文件的主要用途是描述系统中主组
    发表于 08-02 07:39