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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機如何對內存進行管理

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

內存管理,是指軟件運行時對計算機內存資源的分配和使用的技術。其最主要的目的是如何高效,快速的分配,并且在適當的時候釋放和回收內存資源。前面我們有介紹過如何使用FSMC外擴SRAM,實現內存容量的擴展。通過擴展后,我們可使用的內存(外擴SRAM容量是1MB,STM32F103ZET6內部SRAM有64KB)就比較多了。

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

單片機如何對內存進行管理

從上圖我們可以看出,內存管理由內存池和內存管理表兩部分組成,內存池被分成n個內存塊,然后對應內存管理表,內存管理表就是用來標識相應的內存塊是否使用,我們可以對它進行設置。當相應的內存管理表設置為0的時候,表示該內存塊沒有被使用;而當內存管理表設置為非零的時候,表示該內存已被使用,而內存管理表里面的數字表示當前申請內存塊的數量,且申請的內存塊是連續的。

從上圖中我們還可以看出內存分配的方向是從底到頂的分配方向,即首先從最末端開始找空內存。通常當內存管理剛初始化的時候,內存表全部清零,表示沒有任何內存塊被占用。

(1)內存分配原理

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

(2)內存釋放原理

當p申請的內存用完,需要釋放的時候,調用free函數實現。free函數先判斷p指向的內存地址所對應的內存塊,然后找到對應的內存管理表項目,得到p所占用的內存塊數目m(內存管理表項目的值就是所分配內存塊的數目),將這m個內存管理表項目的值都清零,標記釋放,完成一次內存釋放。關于分塊式內存管理,我們就介紹到這里,想要了解更多內存管理的知識可以百度查找,網上也有很多這樣的介紹。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7494

    瀏覽量

    87953
  • 內存
    +關注

    關注

    8

    文章

    3025

    瀏覽量

    74047
收藏 人收藏

    評論

    相關推薦

    Linux kernel內存管理模塊結構分析

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

    詳解單片機內存分配

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

    STM32單片機內存優化策略

    單片機開發中,內存優化是至關重要的,它不僅能夠降低成本,還可以提高性能。本文將深入討論如何在STM32單片機和C語言的環境中實施內存優化策略,以確保項目的順利
    發表于 08-21 09:21 ?2593次閱讀
    STM32<b class='flag-5'>單片機</b>的<b class='flag-5'>內存</b>優化策略

    講解使用memheap內存管理算法對內部RAM和片外的SDRAM進行管理的方法

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

    實時單片機通訊網絡中的內存管理

    摘要! 為提高單片機通訊的實時性 采用了動態的內存管理方法 并將其應用到AUTO2000DCS, 系統中 獲得了滿意的效果 關鍵詞! 動態分區靜態分區最先適應法內存
    發表于 03-26 16:17 ?138次下載
    實時<b class='flag-5'>單片機</b>通訊網絡中的<b class='flag-5'>內存</b><b class='flag-5'>管理</b>

    51單片機如何使用動態內存

    本文檔的主要內容詳細介紹的是51單片機如何使用動態內存的詳細資料免費下載。
    發表于 06-14 17:44 ?0次下載
    51<b class='flag-5'>單片機</b>如何使用動態<b class='flag-5'>內存</b>

    一個基于無操作系統的STM32單片機單片機內存管理

    標題:一個簡單而強大的單片機內存管理器 文章出處:【微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。 ?
    的頭像 發表于 12-22 17:20 ?2553次閱讀
    一個基于無操作系統的STM32<b class='flag-5'>單片機</b>的<b class='flag-5'>單片機內存</b><b class='flag-5'>管理</b>器

    分享可應用于單片機內存管理模塊mem_malloc

    本次給大家分享一位大佬寫的應用于單片機內存管理模塊mem_malloc,這個mem_malloc的使用不會產生內存碎片,可以高效利用單片機ram空間。 mem_malloc代碼倉庫:
    的頭像 發表于 06-25 08:54 ?3028次閱讀
    分享可應用于<b class='flag-5'>單片機</b>的<b class='flag-5'>內存</b><b class='flag-5'>管理</b>模塊mem_malloc

    基于51單片機6264擴展內存仿真設計(proteus仿真+程序)

    基于51單片機6264擴展內存仿真設計(proteus仿真+程序)(單片機原理及應用)-基于51單片機6264擴展內存仿真設計(proteu
    發表于 07-22 11:45 ?82次下載
    基于51<b class='flag-5'>單片機</b>6264擴展<b class='flag-5'>內存</b>仿真設計(proteus仿真+程序)

    單片機內存及運行原理

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

    【KEIL·單片機·掃盲貼】關于ARM單片機程序內存使用情況的細致討論。

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

    使用memheap內存管理算法對片內RAM和片外SDRAM進行管理的方法

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

    單片機內存映射圖解析

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

    單片機內存映射圖解析

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

    你知道嗎? 51單片機也有動態內存分配

    一、簡述其實在51單片機中也可以使用動態內存,動態內存其實就是劃出一塊內存區域,將這塊內存進行管理
    的頭像 發表于 04-26 08:10 ?1543次閱讀
    你知道嗎? 51<b class='flag-5'>單片機</b>也有動態<b class='flag-5'>內存</b>分配
    主站蜘蛛池模板: 午夜高清视频在线观看| 天天爽天天| 免费国产午夜高清在线视频| 公开免费视频| 四虎影视在线播放| 国产三级 在线播放| 久久久午夜| 字幕网中文aⅴ资源站| 美女被拍拍拍拍拍拍拍拍| 性毛片| 毛片特黄| 日日做日日摸夜夜爽| 美女扒开尿口给男人桶爽视频| 日韩a毛片| 天天摸天天| 免费看18污黄| 久久综合香蕉久久久久久久| 理论片午夜| 亚洲综合春色另类久久| 国产伦子一区二区三区四区| a一级日本特黄aaa大片| 亚洲成人免费| 最新大黄网站免费| 欧美日操| 曰本毛片| 综合网天天操天天射| 亚洲高清一区二区三区四区| 欧美成人精品一级高清片| 日本在线一本| 亚洲成人高清| 又粗又爽又色男女乱淫播放男女| 在线视频亚洲一区| 免费一级欧美片片线观看| 国产一级毛片午夜| 色偷偷成人| 日本加勒比高清一本大道| 一级特黄aa毛片免费观看| 藏经阁在线| 久久久婷婷| 国产成人久视频免费| 亚洲一区二区三区免费在线观看|