一、簡述
其實在51單片機中也可以使用動態(tài)內存,動態(tài)內存其實就是劃出一塊內存區(qū)域,將這塊內存進行管理,稱為內存管理。51單片機可以使用c語言自帶的標準內存管理API:malloc、calloc、realloc、free。他們的頭文件在中,所以使用內存管理必須包含該頭文件。
二、使用方法
51單片機需要使用內存管理API必須要手動調用初始化堆內存管理函數:init_mempool
ARM32單片機在MDK5開發(fā)環(huán)境中,由“__main”函數進行堆內存管理初始化,__main函數執(zhí)行完之后才會執(zhí)行main函數(這里不細講),所以開發(fā)32單片機可直接使用內存管理API進行內存申請和釋放。
init_mempool函數說明在keil安裝目錄下的“C51\Hlp\c51.chm”,在索引“Library Reference/Library Files/Source Code”下,如下圖:
- 函數原型講解
- p:表示用來做動態(tài)內存區(qū)域的首地址
- size:表示動態(tài)內存區(qū)域的大小,單位byte
- 函數使用
- 建議51單片機動態(tài)內存區(qū)域的范圍使用xdata區(qū)域,因為片內RAM只有256字節(jié)可用,所以chm手冊給的示例代碼也是使用的xdata區(qū)域。
- init_mempool函數建議在main函數開始進行初始化。
-
API
+關注
關注
2文章
1620瀏覽量
64059 -
51單片機
+關注
關注
277文章
5711瀏覽量
127411 -
動態(tài)內存
+關注
關注
1文章
25瀏覽量
8118
發(fā)布評論請先 登錄
動態(tài)內存管理模塊的設計原理與實現

C語言知識總結:動態(tài)內存分配
內存的動態(tài)內存分配實現
請問使用動態(tài)內存分配安全嗎?
使用動態(tài)內存分配安全嗎
動態(tài)內存分配是什么意思
RTThread的動態(tài)內存空間該如何去分配呢
單片機系統(tǒng)進行動態(tài)內存分配和任務調度思想的資料和代碼實例說明

關于stm32 MCU申請動態(tài)內存malloc的認識

評論