一、簡述
其實在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)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關推薦
Fense 通過設立一個雙向鏈表(struct Head *stHead)來保存所有被分配的動態(tài)內(nèi)存塊的信息。鏈表中的每個節(jié)點對應一個動態(tài)內(nèi)存塊,節(jié)點中包括此內(nèi)存大小、
發(fā)表于 06-30 08:05
?2317次閱讀
動態(tài)內(nèi)存分配就 是指在程序執(zhí)行的過程中動態(tài)地分配或者回收存儲空間的分配內(nèi)存的方法。
發(fā)表于 10-24 15:52
?830次閱讀
對于初學者而言,對單片機的內(nèi)存分配往往最讓人頭疼,很多人學了單片機幾年 都不知道單片機內(nèi)部的
發(fā)表于 11-07 10:42
?2250次閱讀
C語言程序設計中,動態(tài)內(nèi)存分配如何實現(xiàn),需要注意哪些問題?
發(fā)表于 09-28 16:53
?1261次閱讀
第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
51單片機內(nèi)存動態(tài)分配序言最近玩51單片機碰到一個問題,51中malloc函數(shù)并不能像在PC上一
發(fā)表于 11-19 07:36
想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存分配安全嗎?”使用動態(tài)內(nèi)存分配安全嗎?在C語言程序開發(fā)中,動態(tài)
發(fā)表于 12-15 06:10
[導讀]想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存分配安全嗎?”想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存
發(fā)表于 12-15 07:44
所謂動態(tài)內(nèi)存分配(Dynamic Memory Allocation)就是指在程序執(zhí)行的過程中動態(tài)地分配或者回收存儲空間的分配
發(fā)表于 12-17 08:17
關于rtt的動態(tài)內(nèi)存空間分配,想問一下以下我的幾點理解是對的嗎1、我看RTT NANO和MASTER版本的動態(tài)內(nèi)存分配好像不太一樣,我的理解是MASTER版本的
發(fā)表于 08-31 14:34
怎么用51單片機實現(xiàn)動態(tài)內(nèi)存管理
發(fā)表于 10-15 12:43
內(nèi)存分配設計思想:我們設置動態(tài)內(nèi)存分配的初衷在于:有些單片機系統(tǒng)內(nèi)存資源比較少,便顯得特別珍貴,
發(fā)表于 09-30 17:13
?4次下載
本文檔的主要內(nèi)容詳細介紹的是51單片機如何使用動態(tài)內(nèi)存的詳細資料免費下載。
發(fā)表于 06-14 17:44
?0次下載
51單片機內(nèi)存動態(tài)分配序言最近玩51單片機碰到一個問題,51中malloc函數(shù)并不能像在PC上一
發(fā)表于 11-12 14:36
?11次下載
首先,malloc( )屬于標準C語言函數(shù),當然可以在單片機上使用,如STM32可以先在啟動文件中設置heap的大小,再使用動態(tài)內(nèi)存分配: Heap_Size EQU 0x00000200 \\也就
發(fā)表于 11-18 16:21
?14次下載
評論