首页 > 系统相关 >freertos的基础(二)内存管理:堆和栈

freertos的基础(二)内存管理:堆和栈

时间:2025-01-13 18:32:55浏览次数:3  
标签:FreeRTOS freertos 管理 基础 任务 内存 分配 定义


1. 堆(Heap)

定义

堆是 FreeRTOS 中用于动态内存分配的内存区域。FreeRTOS 提供了多种堆管理方案(如 heap_1、heap_2、heap_4 等),开发者可以根据需求选择合适的内存管理策略。

作用

  • 用于动态分配内存,例如创建任务、队列、信号量等内核对象时,从堆中分配内存。

  • 堆的大小由开发者定义,通常在 FreeRTOS 配置文件(如 FreeRTOSConfig.h)中设置。

特点

  • 堆是全局共享的内存区域。

  • 动态分配的内存需要手动释放(取决于堆管理方案)。

 malloc free(注意有 malloc一定要有free)

      malloc:从堆里划出一块空间给程序使用

       free:使用完,将这块内存空间标记为“空闲”,可以再次使用


2. 栈(Stack)

定义

栈是每个任务独立拥有的内存区域,用于存储任务的局部变量、函数调用信息、中断上下文等。

作用

  • 用于任务运行时保存临时数据。

  • 每个任务都有自己的栈空间,栈的大小在创建任务时指定。

特点

  • 栈是任务私有的内存区域。

  • 栈空间不足会导致栈溢出,可能引发系统崩溃。


堆和栈的区别

特性堆(Heap)栈(Stack)
用途动态内存分配(如任务、队列、信号量)存储任务局部变量、函数调用信息
内存管理全局共享,由 FreeRTOS 内存管理方案管理每个任务独立拥有
分配方式动态分配,手动释放(取决于堆管理方案)自动分配,任务结束时自动释放
大小设置在配置文件中定义堆大小在创建任务时定义栈大小
溢出影响可能导致内存分配失败导致栈溢出,系统崩溃

总结

  • :用于动态内存分配,全局共享,由 FreeRTOS 管理。低地址,内存增长方向向上。

  • :用于任务运行时存储临时数据,每个任务独立拥有。高地址,内存增长方向向下。

标签:FreeRTOS,freertos,管理,基础,任务,内存,分配,定义
From: https://blog.csdn.net/JK03820/article/details/145120711

相关文章

  • Tauri教程-基础篇-第六节 Tauri的调试与测试
    “如果结果不如你所愿,就在尘埃落定前奋力一搏。”——《夏目友人帐》“有些事不是看到了希望才去坚持,而是因为坚持才会看到希望。”——《十宗罪》“维持现状意味着空耗你的努力和生命。”——纪伯伦Tauri技术教程*第四章Tauri的基础教程第六节Tauri的调试与......
  • 【网络安全渗透测试零基础入门】一文带你0基础挖到逻辑漏洞(非常详细),轻松成为朋友眼中
    前言这是七海给粉丝盆友们整理的网络安全渗透测试入门阶段逻辑漏洞渗透与防御教程本文主要讲解如何从零基础带你挖到逻辑漏洞喜欢的朋友们,记得给我点赞支持和收藏一下,关注我,学习黑客技术。逻辑漏洞概述由于程序逻辑不严谨或逻辑太过复杂,导致一些逻辑分支不能正常处理或......
  • 万字详解内网渗透该怎么学!黑客技术零基础入门到精通实战教程建议收藏!
    前言:本文主要记录了作者之前在内网渗透的一个全方面的学习过程,包括如何从外网找到入口点,之后如何提权,然后如何在内网中进行一个信息收集,当存在域的情况下又是怎么收集信息,然后通过代理来进一步横向,不论是一层代理还是两层,本文都有涉及,以及一些常见的代理工具的使用方法、权......
  • 实战自动化加解密&加密场景下的暴力破解,黑客技术零基础入门到精通实战教程!
    场景拿到一个站,请求和响应中的数据均经过加密,但是我们想在测试中看到明文数据并可以修改前两天看到有个师傅的使用双层mitmproxy代理实现自动化加解密的思路,今天来实现一下。顺便回忆一下该场景下使用Yakit热加载进行数据暴力破解。思路请求:设置下游代理捕获浏览器......
  • OpenCV基础:色彩空间之YUV
    YUV色彩模型YUV是另一种常见的色彩空间,主要用于视频处理和图像压缩。与RGB色彩模型不同,YUV是基于亮度(Luminance)和色度(Chrominance)来描述颜色的模型。在YUV中:Y代表亮度分量(Luminance),也就是图像的灰度信息。U和V代表色度分量(Chrominance),用于表示图像的颜色信息。......
  • OpenCV基础:色彩空间之HSV
    HSV(色调、饱和度、明度)模型HSV是一种用于表示颜色的色彩空间模型,它通过三个分量来描述颜色:H(Hue,色调):表示颜色的类型,通常是一个角度值,范围是0°到360°,对应不同的颜色。例如:0°对应红色,120°对应绿色,240°对应蓝色。S(Saturation,饱和度):表示颜色的纯度或强度,范围......
  • Stable Diffusion基础介绍
    前言❝在人工智能生成内容(AIGC)领域,StableDiffusion是一个具有里程碑意义的创新技术,它重新定义了如何通过AI生成高质量图像。该技术通过其独特的扩散模型,不仅在技术层面上取得了重要突破,更是在广告、游戏开发、医学影像等多个行业中得到了广泛的实际应用。作为一名深耕AI......
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
       这篇文章没有什么套路。就是一套自学理论和方向,具体的需要配合网络黑白去学习。毕竟是有网络才会有黑白!有自学也有培训!1.打死也不要相信什么分分钟钟教你成为大黑阔的,各种包教包会的教程,就算打不死也不要去购买那些......
  • 大模型项目必备:零基础到精通的实战整理,值得收藏
    一、大模型开发整理流程1.1、什么是大模型开发我们将开发以大语言模型为功能核心、通过大语言模型的强大理解能力和生成能力、结合特殊的数据或业务逻辑来提供独特功能的应用称为大模型开发。开发大模型相关应用,其技术核心点虽然在大语言模型上,但一般通过调用API或开源......
  • 爬虫基础之爬取歌曲宝歌曲批量下载
    声明:本案列仅供学习交流使用任何用于非法用途均与本作者无关需求分析:网站:邓紫棋-mp3在线免费下载-歌曲宝-找歌就用歌曲宝-MP3音乐高品质在线免费下载(gequbao.com)     爬取歌曲名 歌曲实现歌手名称下载所有歌曲 本案列所使用的模块requests(发送HTTP......