当前位置: 首页 > news >正文

RT-Thread入门笔记2-动态内存堆的使用

栈(stack): 由编译器自动分配释放
堆(heap) : 一般由程序员分配和释放

rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
#define HEAP_BEGIN  ((void *)&Image??RW_IRAM1??ZI??Limit) //ZI段的结束地址,执行地址,也就是程序执行区的RAM结束后的地址,反过来也就是我们执行区的RAM未使用的区域的起始地址
#define HEAP_END    STM32_SRAM_END

PS:一个ARM程序包含3部分:RO,RW和ZI
RO是程序中的指令和常量
RW是程序中的已初始化变量
ZI是程序中的未初始化的变量

  • void *rt_malloc(rt_size_t nbytes):rt_malloc函数会从系统堆空间中找到合适大小的内存块.
  • void rt_free(void *ptr):为用户将malloc、realloc、calloc申请的内存释放,每次申请内存用完后必须进行释放,否则会造成内存泄漏.
  • void *rt_realloc(void *rmem, rt_size_t newsize):在已分配内存块的基础上重新分配内存块的大小(增加或缩小),在进行重新分配内存块时,原来的内存块数据保持不变(缩小的情况下, 后面的数据被自动截断).
  • void *rt_calloc(rt_size_t count, rt_size_t size):从内存堆中分配连续内存地址的多个内存块.

相关文章:

  • Docker安装Nacos2.2.3并鉴权、Prometheus监听Nacos、Grafana监控Nacos【亲测可用】
  • Redis 7.0性能大揭秘:如何优化缓存命中率?
  • react+AntDesign 之 pc端项目案例
  • SpikingJelly笔记之泊松编码
  • Linux备忘手册
  • ML:2-4理解python如何实现forward prop
  • TypeScript使用技巧内置工具类型详解
  • 抛弃安卓,追赶iOS,鸿蒙能否成为中国第二大系统?
  • vue.js环境在window和linux安装
  • springcloud gateway动态路由
  • LeetCode[105] 从前序与中序遍历序列构造二叉树
  • 10+设计素材网站推荐,PSD文件及海量背景素材免费下载!
  • How to build a localized sdkman mirror service
  • [UI5] ODATA V4中的CRUD
  • uniapp 文字超出多少字,显示收起全文按钮效果demo(整理)
  • @jsonView过滤属性
  • AHK 中 = 和 == 等比较运算符的用法
  • CAP理论的例子讲解
  • java8 Stream Pipelines 浅析
  • Java新版本的开发已正式进入轨道,版本号18.3
  • mockjs让前端开发独立于后端
  • 程序员该如何有效的找工作?
  • 从0到1:PostCSS 插件开发最佳实践
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 欢迎参加第二届中国游戏开发者大会
  • 基于 Babel 的 npm 包最小化设置
  • 简单易用的leetcode开发测试工具(npm)
  • 前端面试之闭包
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 数据科学 第 3 章 11 字符串处理
  • 原生js练习题---第五课
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​水经微图Web1.5.0版即将上线
  • #{} 和 ${}区别
  • $GOPATH/go.mod exists but should not goland
  • (C#)一个最简单的链表类
  • (Note)C++中的继承方式
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (六)激光线扫描-三维重建
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • .NET 事件模型教程(二)
  • @Autowired和@Resource装配
  • [《百万宝贝》观后]To be or not to be?
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [android] 看博客学习hashCode()和equals()
  • [android] 切换界面的通用处理
  • [Android]使用Git将项目提交到GitHub
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [BZOJ4010]菜肴制作
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [flask]http请求//获取请求头信息+客户端信息
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误