一、簡述
其實在51單片機中也可以使用動態(tài)內(nèi)存,動態(tài)內(nèi)存其實就是劃出一塊內(nèi)存區(qū)域,將這塊內(nèi)存進行管理,稱為內(nèi)存管理。51單片機可以使用c語言自帶的標準內(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ù)(這里不細講),所以開發(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ù)開始進行初始化。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
API
+關注
關注
2文章
2368瀏覽量
66752 -
51單片機
+關注
關注
278文章
5714瀏覽量
134257 -
動態(tài)內(nèi)存
+關注
關注
1文章
25瀏覽量
8241
發(fā)布評論請先 登錄
相關推薦
熱點推薦
動態(tài)內(nèi)存管理模塊的設計原理與實現(xiàn)
Fense 通過設立一個雙向鏈表(struct Head *stHead)來保存所有被分配的動態(tài)內(nèi)存塊的信息。鏈表中的每個節(jié)點對應一個動態(tài)內(nèi)存塊,節(jié)點中包括此內(nèi)存大小、
C語言知識總結(jié):動態(tài)內(nèi)存分配
動態(tài)內(nèi)存分配就 是指在程序執(zhí)行的過程中動態(tài)地分配或者回收存儲空間的分配內(nèi)存的方法。
發(fā)表于 10-24 15:52
?1292次閱讀
詳解單片機的內(nèi)存分配
對于初學者而言,對單片機的內(nèi)存分配往往最讓人頭疼,很多人學了單片機幾年 都不知道單片機內(nèi)部的
發(fā)表于 11-07 10:42
?2996次閱讀
C語言程序設計中動態(tài)內(nèi)存分配如何實現(xiàn)
C語言程序設計中,動態(tài)內(nèi)存分配如何實現(xiàn),需要注意哪些問題?
發(fā)表于 09-28 16:53
?2250次閱讀
內(nèi)存的動態(tài)內(nèi)存分配實現(xiàn)
第27章 STM32H7的TCM,SRAM等五塊內(nèi)存的動態(tài)內(nèi)存分配實現(xiàn)本章教程為大家分享一種DTCM,SRAM1,SRAM2,SRAM3和SRAM4可以獨立管理的動態(tài)內(nèi)存管理方案,在實
發(fā)表于 08-03 07:14
如何在單片機上也可正常使用動態(tài)內(nèi)存分配
51單片機內(nèi)存動態(tài)分配序言最近玩51單片機碰到一個問題,51中malloc函數(shù)并不能像在PC上一
發(fā)表于 11-19 07:36
請問使用動態(tài)內(nèi)存分配安全嗎?
想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存分配安全嗎?”使用動態(tài)內(nèi)存分配安全嗎?在C語言程序開發(fā)中,動態(tài)
發(fā)表于 12-15 06:10
使用動態(tài)內(nèi)存分配安全嗎
[導讀]想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存分配安全嗎?”想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存
發(fā)表于 12-15 07:44
動態(tài)內(nèi)存分配是什么意思
所謂動態(tài)內(nèi)存分配(Dynamic Memory Allocation)就是指在程序執(zhí)行的過程中動態(tài)地分配或者回收存儲空間的分配
發(fā)表于 12-17 08:17
RTThread的動態(tài)內(nèi)存空間該如何去分配呢
關于rtt的動態(tài)內(nèi)存空間分配,想問一下以下我的幾點理解是對的嗎1、我看RTT NANO和MASTER版本的動態(tài)內(nèi)存分配好像不太一樣,我的理解是MASTER版本的
發(fā)表于 08-31 14:34
單片機系統(tǒng)進行動態(tài)內(nèi)存分配和任務調(diào)度思想的資料和代碼實例說明
內(nèi)存分配設計思想:我們設置動態(tài)內(nèi)存分配的初衷在于:有些單片機系統(tǒng)內(nèi)存資源比較少,便顯得特別珍貴,
發(fā)表于 09-30 17:13
?4次下載
51單片機如何使用動態(tài)內(nèi)存
本文檔的主要內(nèi)容詳細介紹的是51單片機如何使用動態(tài)內(nèi)存的詳細資料免費下載。
發(fā)表于 06-14 17:44
?2次下載
51單片機內(nèi)存動態(tài)分配
51單片機內(nèi)存動態(tài)分配序言最近玩51單片機碰到一個問題,51中malloc函數(shù)并不能像在PC上一
發(fā)表于 11-12 14:36
?11次下載
關于stm32 MCU申請動態(tài)內(nèi)存malloc的認識
首先,malloc( )屬于標準C語言函數(shù),當然可以在單片機上使用,如STM32可以先在啟動文件中設置heap的大小,再使用動態(tài)內(nèi)存分配: Heap_Size EQU 0x00000200 \\也就
發(fā)表于 11-18 16:21
?14次下載
你知道嗎? 51單片機也有動態(tài)內(nèi)存分配
評論