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

C語言知識總結(jié):動態(tài)內(nèi)存分配
詳解單片機的內(nèi)存分配
C語言程序設(shè)計中動態(tài)內(nèi)存分配如何實現(xiàn)
內(nèi)存的動態(tài)內(nèi)存分配實現(xiàn)
如何在單片機上也可正常使用動態(tài)內(nèi)存分配
請問使用動態(tài)內(nèi)存分配安全嗎?
使用動態(tài)內(nèi)存分配安全嗎
動態(tài)內(nèi)存分配是什么意思
RTThread的動態(tài)內(nèi)存空間該如何去分配呢
單片機系統(tǒng)進行動態(tài)內(nèi)存分配和任務(wù)調(diào)度思想的資料和代碼實例說明

51單片機如何使用動態(tài)內(nèi)存

51單片機內(nèi)存動態(tài)分配

關(guān)于stm32 MCU申請動態(tài)內(nèi)存malloc的認(rèn)識

評論