在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)如何對(duì)內(nèi)存進(jìn)行管理

姚小熊27 ? 來源:雷小天博客 ? 作者:佚名 ? 2019-11-02 10:04 ? 次閱讀

內(nèi)存管理,是指軟件運(yùn)行時(shí)對(duì)計(jì)算機(jī)內(nèi)存資源的分配和使用的技術(shù)。其最主要的目的是如何高效,快速的分配,并且在適當(dāng)?shù)臅r(shí)候釋放和回收內(nèi)存資源。前面我們有介紹過如何使用FSMC外擴(kuò)SRAM,實(shí)現(xiàn)內(nèi)存容量的擴(kuò)展。通過擴(kuò)展后,我們可使用的內(nèi)存(外擴(kuò)SRAM容量是1MB,STM32F103ZET6內(nèi)部SRAM有64KB)就比較多了。

盡管有這么多可使用的內(nèi)存,但我們還是得使用某種方式來有效管理這些內(nèi)存,這種方式和我們學(xué)習(xí)C語言時(shí),使用malloc和free函數(shù)來申請(qǐng)內(nèi)存和內(nèi)存釋放類似,malloc用于申請(qǐng)內(nèi)存,free用于釋放內(nèi)存。本文我們就來介紹一種簡單的內(nèi)存管理方式:分塊內(nèi)存管理。該方法的實(shí)現(xiàn)原理如圖44.1.1所示:

單片機(jī)如何對(duì)內(nèi)存進(jìn)行管理

從上圖我們可以看出,內(nèi)存管理由內(nèi)存池和內(nèi)存管理表兩部分組成,內(nèi)存池被分成n個(gè)內(nèi)存塊,然后對(duì)應(yīng)內(nèi)存管理表,內(nèi)存管理表就是用來標(biāo)識(shí)相應(yīng)的內(nèi)存塊是否使用,我們可以對(duì)它進(jìn)行設(shè)置。當(dāng)相應(yīng)的內(nèi)存管理表設(shè)置為0的時(shí)候,表示該內(nèi)存塊沒有被使用;而當(dāng)內(nèi)存管理表設(shè)置為非零的時(shí)候,表示該內(nèi)存已被使用,而內(nèi)存管理表里面的數(shù)字表示當(dāng)前申請(qǐng)內(nèi)存塊的數(shù)量,且申請(qǐng)的內(nèi)存塊是連續(xù)的。

從上圖中我們還可以看出內(nèi)存分配的方向是從底到頂?shù)姆峙浞较颍词紫葟淖钅┒碎_始找空內(nèi)存。通常當(dāng)內(nèi)存管理剛初始化的時(shí)候,內(nèi)存表全部清零,表示沒有任何內(nèi)存塊被占用。

(1)內(nèi)存分配原理

當(dāng)指針p調(diào)用malloc申請(qǐng)內(nèi)存的時(shí)候,先判斷p要分配的內(nèi)存塊數(shù)(m),然后從第n項(xiàng)開始,向下查找,直到找到m塊連續(xù)的空內(nèi)存塊(即對(duì)應(yīng)內(nèi)存管理表項(xiàng)為0),然后將這m個(gè)內(nèi)存管理表項(xiàng)的值都設(shè)置為m(標(biāo)記被占用),最后,把最后的這個(gè)空內(nèi)存塊的地址返回指針p,完成一次分配。注意,如果當(dāng)內(nèi)存不夠的時(shí)候(找到最后也沒找到連續(xù)的m塊空閑內(nèi)存),則返回NULL給p,表示分配失敗。

(2)內(nèi)存釋放原理

當(dāng)p申請(qǐng)的內(nèi)存用完,需要釋放的時(shí)候,調(diào)用free函數(shù)實(shí)現(xiàn)。free函數(shù)先判斷p指向的內(nèi)存地址所對(duì)應(yīng)的內(nèi)存塊,然后找到對(duì)應(yīng)的內(nèi)存管理表項(xiàng)目,得到p所占用的內(nèi)存塊數(shù)目m(內(nèi)存管理表項(xiàng)目的值就是所分配內(nèi)存塊的數(shù)目),將這m個(gè)內(nèi)存管理表項(xiàng)目的值都清零,標(biāo)記釋放,完成一次內(nèi)存釋放。關(guān)于分塊式內(nèi)存管理,我們就介紹到這里,想要了解更多內(nèi)存管理的知識(shí)可以百度查找,網(wǎng)上也有很多這樣的介紹。

聲明:本文內(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)投訴
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7636

    瀏覽量

    90269
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3111

    瀏覽量

    75028
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux kernel內(nèi)存管理模塊結(jié)構(gòu)分析

    基于上面章節(jié)的需求,Linux kernel從虛擬內(nèi)存(VM)、DMA mapping以及DMA buffer sharing三個(gè)角度,對(duì)內(nèi)存進(jìn)行管理.
    發(fā)表于 09-19 11:55 ?2140次閱讀
    Linux kernel<b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>模塊結(jié)構(gòu)分析

    詳解單片機(jī)內(nèi)存分配

    對(duì)于初學(xué)者而言,對(duì)單片機(jī)內(nèi)存分配往往最讓人頭疼,很多人學(xué)了單片機(jī)幾年 都不知道單片機(jī)內(nèi)部的內(nèi)存使用情況是如何分配的。要了解 ROM(fla
    發(fā)表于 11-07 10:42 ?2579次閱讀

    STM32單片機(jī)內(nèi)存優(yōu)化策略

    單片機(jī)開發(fā)中,內(nèi)存優(yōu)化是至關(guān)重要的,它不僅能夠降低成本,還可以提高性能。本文將深入討論如何在STM32單片機(jī)和C語言的環(huán)境中實(shí)施內(nèi)存優(yōu)化策略,以確保項(xiàng)目的順利
    發(fā)表于 08-21 09:21 ?3285次閱讀
    STM32<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>內(nèi)存</b>優(yōu)化策略

    講解使用memheap內(nèi)存管理算法對(duì)內(nèi)部RAM和片外的SDRAM進(jìn)行管理的方法

    在開發(fā)中由于單片機(jī)自帶的 RAM 空間比較小,有時(shí)候需要擴(kuò)展片外的 RAM 以供使用,RT-Thread 提供了 memheap 管理算法來管理多塊不相鄰的內(nèi)存空間,本文以正點(diǎn)原子
    發(fā)表于 05-11 14:45

    實(shí)時(shí)單片機(jī)通訊網(wǎng)絡(luò)中的內(nèi)存管理

    摘要! 為提高單片機(jī)通訊的實(shí)時(shí)性 采用了動(dòng)態(tài)的內(nèi)存管理方法 并將其應(yīng)用到AUTO2000DCS, 系統(tǒng)中 獲得了滿意的效果 關(guān)鍵詞! 動(dòng)態(tài)分區(qū)靜態(tài)分區(qū)最先適應(yīng)法內(nèi)存
    發(fā)表于 03-26 16:17 ?138次下載
    實(shí)時(shí)<b class='flag-5'>單片機(jī)</b>通訊網(wǎng)絡(luò)中的<b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>

    51單片機(jī)如何使用動(dòng)態(tài)內(nèi)存

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)如何使用動(dòng)態(tài)內(nèi)存的詳細(xì)資料免費(fèi)下載。
    發(fā)表于 06-14 17:44 ?2次下載
    51<b class='flag-5'>單片機(jī)</b>如何使用動(dòng)態(tài)<b class='flag-5'>內(nèi)存</b>

    一個(gè)基于無操作系統(tǒng)的STM32單片機(jī)單片機(jī)內(nèi)存管理

    標(biāo)題:一個(gè)簡單而強(qiáng)大的單片機(jī)內(nèi)存管理器 文章出處:【微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。 ?
    的頭像 發(fā)表于 12-22 17:20 ?2758次閱讀
    一個(gè)基于無操作系統(tǒng)的STM32<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>單片機(jī)內(nèi)存</b><b class='flag-5'>管理</b>器

    分享可應(yīng)用于單片機(jī)內(nèi)存管理模塊mem_malloc

    本次給大家分享一位大佬寫的應(yīng)用于單片機(jī)內(nèi)存管理模塊mem_malloc,這個(gè)mem_malloc的使用不會(huì)產(chǎn)生內(nèi)存碎片,可以高效利用單片機(jī)ram空間。 mem_malloc代碼倉庫:
    的頭像 發(fā)表于 06-25 08:54 ?3280次閱讀
    分享可應(yīng)用于<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>模塊mem_malloc

    基于51單片機(jī)6264擴(kuò)展內(nèi)存仿真設(shè)計(jì)(proteus仿真+程序)

    基于51單片機(jī)6264擴(kuò)展內(nèi)存仿真設(shè)計(jì)(proteus仿真+程序)(單片機(jī)原理及應(yīng)用)-基于51單片機(jī)6264擴(kuò)展內(nèi)存仿真設(shè)計(jì)(proteu
    發(fā)表于 07-22 11:45 ?85次下載
    基于51<b class='flag-5'>單片機(jī)</b>6264擴(kuò)展<b class='flag-5'>內(nèi)存</b>仿真設(shè)計(jì)(proteus仿真+程序)

    單片機(jī)內(nèi)存及運(yùn)行原理

    一、單片機(jī)構(gòu)成:二、CPU的作用三、內(nèi)存管理 首先單片機(jī)內(nèi)存可以大小分為ram和rom,這里就不再解釋ram和rom的區(qū)別了,我們可以將其
    發(fā)表于 11-10 20:20 ?10次下載
    <b class='flag-5'>單片機(jī)內(nèi)存</b>及運(yùn)行原理

    【KEIL·單片機(jī)·掃盲貼】關(guān)于ARM單片機(jī)程序內(nèi)存使用情況的細(xì)致討論。

    【KEIL·單片機(jī)·掃盲貼】關(guān)于ARM單片機(jī)程序內(nèi)存使用情況的細(xì)致討論。
    發(fā)表于 11-25 12:06 ?9次下載
    【KEIL·<b class='flag-5'>單片機(jī)</b>·掃盲貼】關(guān)于ARM<b class='flag-5'>單片機(jī)</b>程序<b class='flag-5'>內(nèi)存</b>使用情況的細(xì)致討論。

    使用memheap內(nèi)存管理算法對(duì)片內(nèi)RAM和片外SDRAM進(jìn)行管理的方法

    ??在開發(fā)中由于單片機(jī)自帶的 RAM 空間比較小,有時(shí)候需要擴(kuò)展片外的 RAM 以供使用,RT-Thread 提供了 memheap 管理算法來管理多塊不相鄰的內(nèi)存空間,本文以正點(diǎn)原子
    的頭像 發(fā)表于 06-17 08:53 ?4171次閱讀
    使用memheap<b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>算法對(duì)片內(nèi)RAM和片外SDRAM<b class='flag-5'>進(jìn)行管理</b>的方法

    單片機(jī)內(nèi)存映射圖解析

    一、如何控制單片機(jī)單片機(jī)內(nèi)存映射圖解析 這里以STM32F429芯片為例,講解下單片機(jī)芯片內(nèi)存映射圖。從此圖中可以看到芯片的外設(shè)被分配
    的頭像 發(fā)表于 06-22 10:33 ?1559次閱讀
    <b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>內(nèi)存</b>映射圖解析

    單片機(jī)內(nèi)存映射圖解析

    一、如何控制單片機(jī)單片機(jī)內(nèi)存映射圖解析 這里以STM32F429芯片為例,講解下單片機(jī)芯片內(nèi)存映射圖。從此圖中可以看到芯片的外設(shè)被分配
    的頭像 發(fā)表于 06-22 10:18 ?2036次閱讀
    <b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>內(nèi)存</b>映射圖解析

    你知道嗎? 51單片機(jī)也有動(dòng)態(tài)內(nèi)存分配

    一、簡述其實(shí)在51單片機(jī)中也可以使用動(dòng)態(tài)內(nèi)存,動(dòng)態(tài)內(nèi)存其實(shí)就是劃出一塊內(nèi)存區(qū)域,將這塊內(nèi)存進(jìn)行管理
    的頭像 發(fā)表于 04-26 08:10 ?2157次閱讀
    你知道嗎? 51<b class='flag-5'>單片機(jī)</b>也有動(dòng)態(tài)<b class='flag-5'>內(nèi)存</b>分配
    主站蜘蛛池模板: 嘿嘿嘿视频在线观看 | 中文字幕亚洲综合久久2 | 国产视频分类 | 午夜精品久久久久久影视riav | 很黄很黄叫声床戏免费视频 | 天天鲁天天爽精品视频 | 四虎免费影院4hu永久免费 | 成人免费淫片95视频观看网站 | 国产高清一区二区三区 | 三a大片| 欧美乱淫| 日本三级免费网站 | 中文字幕第一区 | 快播久久 | 69性xxxxfreexxxx| 牛牛精品 | 国模大尺度酒店私拍视频拍拍 | 综合五月天婷婷丁香 | 国产毛片农村妇女aa板 | 日本aaaa毛片在线看 | 在线 你懂| 国产精品久久新婚兰兰 | 色多多高清在线观看视频www | 精品国产污污免费网站入口 | 91在线色 | 五月婷婷深爱五月 | 在线你懂的视频 | 国产真实野战在线视频 | 男女视频在线观看免费高清观看 | 欧美freesex10一|3 | 一级免费黄色片 | 久久国产成人精品国产成人亚洲 | 激情欧美在线 | 人人爱天天做夜夜爽毛片 | 国产一级真人毛爱做毛片 | 久久精品亚洲一区二区三区浴池 | 黄网站视频在线观看 | 国产日韩精品欧美一区色 | 欧美不卡一区 | 欧美一级特黄aa大片视频 | 偷操 |