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

    文章

    3360

    浏览量

    121743
  • FreeRTOS
    +关注

    关注

    14

    文章

    497

    浏览量

    66354
  • config
    +关注

    关注

    0

    文章

    15

    浏览量

    4934
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    求助各位大佬,关于如何读写编码格式为UTF-16LE的配置文件

    如题,小白求助各位大佬,要怎么实现对编码为UTF-16LE的配置文件的读写。 使用读配置文件的vi读不出内容。 使用读文本的方式写入异常,文件的编码变成UTF-8且内容也不对。
    发表于 09-14 12:54

    哪些芯片支持蓝牙经典 A2DP 配置文件和 LE 音频?

    哪些芯片支持蓝牙经典 A2DP 配置文件和 LE 音频?
    发表于 07-01 06:41

    CYW920820M2EVB-01开发套件可以与蓝牙的免提配置文件一起使用吗?

    我有英飞凌 CYW920820M2EVB-01 开发套件,我想将它与蓝牙的免提配置文件一起使用。 是否可以。 该套件是否支持该配置文件? 我无法在任何地方找到该套件支持的配置文件。 如果是,那么我可以得到一些关于如何执行此操作的
    发表于 06-30 06:15

    如何才能知道英飞凌Bluetooth®产品支持哪种Bluetooth®配置文件和版本?

    如何才能知道英飞凌Bluetooth®产品支持哪种Bluetooth®配置文件和版本? A2DP、AVRCP、HSP、HFP 等 是否有一个网页或文档解释每个设备支持哪些配置文件和版本? 目前我想了解以下设备特别支持的配置文件
    发表于 06-27 06:04

    【RA4L1-SENSOR】4、移植FreeRTOS-CLI

    方式为动态分配。 在配置中设置自定义的FreeRTOSConfig.h文件路径,可以在工程中使用自定义的FreeRTOSConfig.h文件
    发表于 06-26 22:30

    配置文件的差异介绍

    配置文件的差异 FA模型应用在config.json文件中描述应用的基本信息,一个应用工程中可以创建多个Module,每个Module中都有一份config.json文件。config.json由
    发表于 06-05 06:50

    为什么在SDK 1.3.5中创建的配置文件是在SDK 1.3.4中创建的 打不开?

    为什么在 SDK 1.3.5 中创建的配置文件是在 SDK 1.3.4 中创建的 打不开?
    发表于 05-13 07:22

    Profibus DP主站转Modbus TCP网关配置文件制作

    Profibus DP主站转Modbus TCP网关配置文件制作
    的头像 发表于 04-02 13:06 522次阅读
    Profibus DP主站转Modbus TCP网关<b class='flag-5'>配置文件</b>制作

    嵌入式开发避坑指南|FreeRTOS的5个\"反直觉\"小技巧

    512B,但因接收NMEA语句时缓冲区溢出,最终导致系统崩溃。修复后堆栈扩容至1KB 技巧5:配置文件藏着\"隐藏技能\" 冷知识: 修改configTICK_RATE_HZ
    发表于 03-20 13:57

    是否有用于OpenVINO™工具套件的配置文件工具呢?

    是否有用于OpenVINO™工具套件的配置文件工具?
    发表于 03-06 07:29

    Web Bluetooth SPP(串行端口配置文件)示例

    电缆替代(Cable Replacement)通常指的是通过无线技术,如低功耗蓝牙(Bluetooth LE)替代传统的有线连接,例如串行端口配置文件(Serial Port Profile,简称SPP)。
    的头像 发表于 02-28 09:40 1072次阅读

    DLPC3478怎么去做ini配置文件和firmware呢 ?

    你好我们现在是用其他厂商的芯片做的开发板加上dlpc3478 2005dmd3010,我们不是官网那个evm,我们要自己开发我们怎么去做ini配置文件 和firmware呢 ?之后我们是用特殊
    发表于 02-24 06:35

    如何导出交换机的配置文件

    在网络管理中,导出交换机的配置文件是一项关键任务,它有助于备份、审计、迁移或恢复网络配置。本文将详细介绍如何导出交换机配置文件,涵盖多种方法,适用于不同场景和需求。文章内容将围绕几种常见的导出方法展开,包括通过命令行接口(CLI
    的头像 发表于 02-02 17:20 6435次阅读

    迅为RK3568开发板篇OpenHarmony配置HDF驱动控制LED-配置创建私有配置文件

    私有配置文件,用来填写一些驱动的默认配置信息。HDF 框架在加载驱动时,会获取相应的配置信息并将其保存在 HdfDeviceObject 的 property 中。这些配置信息通过 B
    发表于 01-10 11:13

    linux网卡配置文件

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