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

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

3天内不再提示

一文解读FreeRTOS任务内存设置的大小

工程师邓生 来源:硬件会 作者:硬件会 2022-09-14 15:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

首先来了解几个API函数:

ESP.getHeapSize();//获取堆容量

ESP.getFreeHeap();//获取剩余的空闲内存 uxTaskGetStackHighWaterMark(任务句柄);//FreeRTOS使用此函数,查看任务堆栈空间使用情况。

任务堆栈的“高水位线”值,也就是堆栈的历史剩余最小值。这个值越小说明任务堆栈溢出的可能性就越大! 示例如下:

3154bbee-3051-11ed-ba43-dac502259ad0.png

打印的结果如下:

317ce8b2-3051-11ed-ba43-dac502259ad0.png

如果将任务中的变量加上,此变量是占用1000byte,加上408,则超出分配的1024内存,会出错。


审核编辑:刘清

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

    关注

    2

    文章

    2153

    浏览量

    66243
  • ESP
    ESP
    +关注

    关注

    0

    文章

    194

    浏览量

    36100
  • FreeRTOS
    +关注

    关注

    14

    文章

    497

    浏览量

    66360

原文标题:任务内存设置大小

文章出处:【微信号:硬件会,微信公众号:硬件会】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FreeRTOS 空闲任务

    FreeRTOS 中很多人会注意到为什么有个叫IDLE task的任务占用了CPU百分之九十多的使用权,但是这个任务并没有自己手动创建。原因就是这个空闲
    发表于 12-04 07:35

    FreeRTOS和uC/OS-II的功能特性

    。 多核支持 (FreeRTOS SMP): 有官方对称多处理 (SMP) 版本,支持多核处理器。 MPU 支持: 支持内存保护单元 (MPU),用于任务隔离和提升可靠性/安全性。 POSIX 兼容层
    发表于 11-17 08:17

    freertos关闭任务调度的方法

    #include \"FreeRTOS.h\" #include \"task.h\" /* 关闭任务调度 */ void
    发表于 11-17 06:47

    FreeRTOS与uC/OS-II如何选择?

    是加分项,尽管开源后需确认)。 你需要高效、无碎片的内存管理(内存分区非常适合固定大小对象)。 你偏好其清晰、结构化的代码风格和文档。 FreeRTOS 是目前嵌入式领域的绝对主流和
    发表于 11-13 07:15

    FreeRTOS任务调度及优先级问题

    大家好,最近本人在学习FreeRTOS ,之前有过些裸机开发的经验,目前知道了FreeRTOS任务是基于时间片轮转来调度,也就是知道了任务
    发表于 11-06 02:18

    【RA4L1-SENSOR】电压检测器第个程序增加 FreeRTOS显示量程0-3300 mV和量程0-15000mV]

    ,Stack Size为256,优先级2,内存分配为Dynamic。展开内存分配可以修改Total Heap Size堆大小为30720 在线程配置上方是FreeRTOS 配置,有
    发表于 07-11 10:53

    【RA4L1-SENSOR】04 用FreeRTOS重构工程

    1. 前言 之前几个实验都是在裸机开发,随着项目的推进,裸机开发很难去保证各个功能的实时性,因此,本次实验借助FreeRTOS来整合之前的项目,给每个功能都设置任务。另外,还要加入
    发表于 06-16 22:28

    FreeRTOS任务中发送事件队列是有什么限制吗?

    到了TMC的芯片,但是在到位上报的信息中少了卡死电机的上报。所以有的电机的到位中断并没有成功写入任务开始是每个电机都开启了个定时器查询,后续改成个定时器查六个电机并将定时器
    发表于 06-11 07:57

    FreeRTOS读取ADS1299数据有误

    您好,请问,用stm32的FreeRTOS的队列对ADS1299传感器读取数据,已设置采样率为2khz 在采集任务中:通过spi读取数据——滤波(-DSP库)——将数据写入队列——延时
    发表于 05-05 22:48

    【RA-Eco-RA4M2开发板评测】RA-Eco-RA4M2 移植FreeRTOS

    FreeRTOS、Threadx,这里选择FreeRTOS。 Figure 2‑5 选择RTOS 接下来就是选择工程模板。 Figure 2‑6 工程模板选择 接下来在新建个空任务
    发表于 05-03 23:24

    FreeRTOS进阶使用之流缓冲区:高效处理字节流的秘密武器

    工具,通过合理设置触发阈值和缓冲区大小,可显著提升系统性能。实际开发中需注意多核同步、阻塞策略及数据格式设计,必要时结合消息缓冲区实现更复杂的通信需求。掌握这机制,将助你在嵌入式开发中游刃有余!关注“逸云客嵌入式”获取更多嵌入
    发表于 03-24 11:37

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

    技巧1:堆内存配置不是越大越好! 进阶原理: FreeRTOS内存分配存在\"碎片黑洞\"现象,即使总内存充足,碎片化仍可能导致分配失败。例如某项目堆
    发表于 03-20 13:57

    stm32F407平台上使用freertos,使用pvPortMalloc申请内存,发现内存中的数据总被修改,怎么解决?

    如题,我现在在stm32F407平台上打开FREERTOS,然后使用pvPortMalloc动态申请内存的时候,发现这块内存中的数据总是变化,后面改为malloc申请,内存中的数据就符
    发表于 03-07 09:03

    hyper v 内存,hyper v 内存设置的操作步骤和方法是什么?

    在利用Hyper-V搭建和管理虚拟机的过程中,合理设置虚拟机的内存至关重要。内存分配是否恰当,会直接影响到虚拟机的运行性能和稳定性。若内存分配过少,虚拟机可能运行缓慢甚至频繁卡顿;而分
    的头像 发表于 01-24 15:22 1104次阅读
    hyper v <b class='flag-5'>内存</b>,hyper v <b class='flag-5'>内存</b><b class='flag-5'>设置</b>的操作步骤和方法是什么?

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】05、FreeRTOS

    的malloc()和free()函数来管理内存,因此堆的大小由链接器配置决定,而不是由FreeRTOS的配置文件设置。 Heap_4:Heap_4在Heap_2的基础上进行了改进,它会
    发表于 12-17 11:53