你知道吗? 51单片机也有动态内存分配

描述

 

一、简述

其实在51单片机中也可以使用动态内存,动态内存其实就是划出一块内存区域,将这块内存进行管理,称为内存管理。51单片机可以使用c语言自带的标准内存管理API:malloc、calloc、realloc、free。他们的头文件在中,所以使用内存管理必须包含该头文件。

二、使用方法

51单片机需要使用内存管理API必须要手动调用初始化堆内存管理函数:init_mempool

ARM32单片机在MDK5开发环境中,由“__main”函数进行堆内存管理初始化,__main函数执行完之后才会执行main函数(这里不细讲),所以开发32单片机可直接使用内存管理API进行内存申请和释放。

init_mempool函数说明在keil安装目录下的“C51\Hlp\c51.chm”,在索引“Library Reference/Library Files/Source Code”下,如下图:

API

  • 函数原型讲解
  • p:表示用来做动态内存区域的首地址
  • size:表示动态内存区域的大小,单位byte

API

  • 函数使用
  • 建议51单片机动态内存区域的范围使用xdata区域,因为片内RAM只有256字节可用,所以chm手册给的示例代码也是使用的xdata区域。
  • init_mempool函数建议在main函数开始进行初始化。

API

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分