一、簡(jiǎn)述
其實(shí)在51單片機(jī)中也可以使用動(dòng)態(tài)內(nèi)存,動(dòng)態(tài)內(nèi)存其實(shí)就是劃出一塊內(nèi)存區(qū)域,將這塊內(nèi)存進(jìn)行管理,稱為內(nèi)存管理。51單片機(jī)可以使用c語言自帶的標(biāo)準(zhǔn)內(nèi)存管理API:malloc、calloc、realloc、free。他們的頭文件在中,所以使用內(nèi)存管理必須包含該頭文件。
二、使用方法
51單片機(jī)需要使用內(nèi)存管理API必須要手動(dòng)調(diào)用初始化堆內(nèi)存管理函數(shù):init_mempool
ARM32單片機(jī)在MDK5開發(fā)環(huán)境中,由“__main”函數(shù)進(jìn)行堆內(nèi)存管理初始化,__main函數(shù)執(zhí)行完之后才會(huì)執(zhí)行main函數(shù)(這里不細(xì)講),所以開發(fā)32單片機(jī)可直接使用內(nèi)存管理API進(jìn)行內(nèi)存申請(qǐng)和釋放。
init_mempool函數(shù)說明在keil安裝目錄下的“C51\Hlp\c51.chm”,在索引“Library Reference/Library Files/Source Code”下,如下圖:
- 函數(shù)原型講解
- p:表示用來做動(dòng)態(tài)內(nèi)存區(qū)域的首地址
- size:表示動(dòng)態(tài)內(nèi)存區(qū)域的大小,單位byte
- 函數(shù)使用
- 建議51單片機(jī)動(dòng)態(tài)內(nèi)存區(qū)域的范圍使用xdata區(qū)域,因?yàn)槠瑑?nèi)RAM只有256字節(jié)可用,所以chm手冊(cè)給的示例代碼也是使用的xdata區(qū)域。
- init_mempool函數(shù)建議在main函數(shù)開始進(jìn)行初始化。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
API
-
51單片機(jī)
-
動(dòng)態(tài)內(nèi)存
相關(guān)推薦
Fense 通過設(shè)立一個(gè)雙向鏈表(struct Head *stHead)來保存所有被分配的動(dòng)態(tài)內(nèi)存塊的信息。鏈表中的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)動(dòng)態(tài)內(nèi)存塊,節(jié)點(diǎn)中包括此內(nèi)存大小、
發(fā)表于 06-30 08:05
?2331次閱讀
動(dòng)態(tài)內(nèi)存分配就 是指在程序執(zhí)行的過程中動(dòng)態(tài)地分配或者回收存儲(chǔ)空間的分配內(nèi)存的方法。
發(fā)表于 10-24 15:52
?839次閱讀
對(duì)于初學(xué)者而言,對(duì)單片機(jī)的內(nèi)存分配往往最讓人頭疼,很多人學(xué)了單片機(jī)幾年 都不知道單片機(jī)內(nèi)部的
發(fā)表于 11-07 10:42
?2272次閱讀
C語言程序設(shè)計(jì)中,動(dòng)態(tài)內(nèi)存分配如何實(shí)現(xiàn),需要注意哪些問題?
發(fā)表于 09-28 16:53
?1282次閱讀
第27章 STM32H7的TCM,SRAM等五塊內(nèi)存的動(dòng)態(tài)內(nèi)存分配實(shí)現(xiàn)本章教程為大家分享一種DTCM,SRAM1,SRAM2,SRAM3和SRAM4可以獨(dú)立管理的動(dòng)態(tài)內(nèi)存管理方案,在實(shí)
發(fā)表于 08-03 07:14
51單片機(jī)內(nèi)存動(dòng)態(tài)分配序言最近玩51單片機(jī)碰到一個(gè)問題,51中malloc函數(shù)并不能像在PC上一
發(fā)表于 11-19 07:36
想在C語言程序員之間開始一個(gè)激烈的,或者說有爭(zhēng)議的討論很簡(jiǎn)單,只需要問:“使用動(dòng)態(tài)內(nèi)存分配安全嗎?”使用動(dòng)態(tài)內(nèi)存分配安全嗎?在C語言程序開發(fā)中,動(dòng)態(tài)
發(fā)表于 12-15 06:10
[導(dǎo)讀]想在C語言程序員之間開始一個(gè)激烈的,或者說有爭(zhēng)議的討論很簡(jiǎn)單,只需要問:“使用動(dòng)態(tài)內(nèi)存分配安全嗎?”想在C語言程序員之間開始一個(gè)激烈的,或者說有爭(zhēng)議的討論很簡(jiǎn)單,只需要問:“使用動(dòng)態(tài)內(nèi)存
發(fā)表于 12-15 07:44
所謂動(dòng)態(tài)內(nèi)存分配(Dynamic Memory Allocation)就是指在程序執(zhí)行的過程中動(dòng)態(tài)地分配或者回收存儲(chǔ)空間的分配
發(fā)表于 12-17 08:17
關(guān)于rtt的動(dòng)態(tài)內(nèi)存空間分配,想問一下以下我的幾點(diǎn)理解是對(duì)的嗎1、我看RTT NANO和MASTER版本的動(dòng)態(tài)內(nèi)存分配好像不太一樣,我的理解是MASTER版本的
發(fā)表于 08-31 14:34
怎么用51單片機(jī)實(shí)現(xiàn)動(dòng)態(tài)內(nèi)存管理
發(fā)表于 10-15 12:43
內(nèi)存分配設(shè)計(jì)思想:我們?cè)O(shè)置動(dòng)態(tài)內(nèi)存分配的初衷在于:有些單片機(jī)系統(tǒng)內(nèi)存資源比較少,便顯得特別珍貴,
發(fā)表于 09-30 17:13
?4次下載
本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)如何使用動(dòng)態(tài)內(nèi)存的詳細(xì)資料免費(fèi)下載。
發(fā)表于 06-14 17:44
?0次下載
51單片機(jī)內(nèi)存動(dòng)態(tài)分配序言最近玩51單片機(jī)碰到一個(gè)問題,51中malloc函數(shù)并不能像在PC上一
發(fā)表于 11-12 14:36
?11次下載
首先,malloc( )屬于標(biāo)準(zhǔn)C語言函數(shù),當(dāng)然可以在單片機(jī)上使用,如STM32可以先在啟動(dòng)文件中設(shè)置heap的大小,再使用動(dòng)態(tài)內(nèi)存分配: Heap_Size EQU 0x00000200 \\也就
發(fā)表于 11-18 16:21
?14次下載
評(píng)論