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

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

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

3天內不再提示

uC/OS-II內存管理方法詳解

冬至子 ? 來源:硬件工程師技術干貨 ? 作者:硬件工程師技術干 ? 2023-09-11 15:32 ? 次閱讀

ucos內存管理方法十分小巧,實時性好,非常值得借鑒。大致原理如下:

ucos把內存初始化成相同大小的內存塊,使用單向鏈表的方式連接起來,使用時從鏈表摘下,釋放時重新插入鏈表。

當然可以存在多條鏈表,根據用戶需求配置,同一個鏈表內內存塊是相同大小的。比如,以100或200字節為內存塊的內存鏈表。

每條內存鏈表使用一個結構體(OS_MEM)控制,這個結構體描述了這一條鏈表中的內存屬性,比如內存塊大小,剩余內存塊的數量,內存塊總數量等等。

1、

此函數由系統內部調用,用戶不必理會,主要是一些初始化動作,前面說了每條鏈表都有一個結構體OS_MEM控制。

ucos建立了一個OS_MEM結構體數組,這個函數就是把這個結構體數組成員使用單向鏈表連接起來,并且對結構體進行初始化。

ucos使用一個全局指針指向表頭,方便結構體取用。每一個結構體都可以控制一個內存鏈表。結構體數量用戶可以通過宏定義配置。

2、

此函數初始化并創建內存塊鏈表。主要過程是從結構體鏈表中取下一個空閑結構體。根據參數提供的內存起始地址和內存塊大小,把整個內存分為大小一致的內存塊,使用單向鏈表連接起來。

再把內存塊鏈表的屬性信息填寫到結構體中。此函數返回一個結構體指針。找到這個結構體就找到了這條鏈表。

3、

根據OS_MEM類型指針找到對應的鏈表結構體,如果空閑的內存塊數量大于0,那么從鏈表中摘下一個內存塊,然后修改OS_MEM結構體信息,返回內存首地址。

4、

這個簡單,獲得內存塊鏈表的名稱。

5、

這個簡單,設置內存塊鏈表的名稱。

6、

釋放內存,把用完的內存塊,插入pmem對應的鏈表中,然后修改pmem結構體信息。

7、

查詢指定的內存鏈表中的內存使用情況,查詢結果放在OS_MEM_DATA 結構體中。

優點:

仔細閱讀源碼就會發現,每次取出內存塊的時間是一樣的,速度非常快,放入內存塊消耗的時間也是一樣,運行時間可控,實時性非常好,代碼量很小。

缺點:

每條鏈表中的內存塊都是一樣大小,使用時會有些浪費。

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

    關注

    113

    文章

    16793

    瀏覽量

    181903
  • 內存管理
    +關注

    關注

    0

    文章

    168

    瀏覽量

    14394
  • ucos-ii
    +關注

    關注

    1

    文章

    11

    瀏覽量

    3697
收藏 人收藏

    評論

    相關推薦

    uC/OS-II簡介

    知名的CPU 上。嚴格地說uC/OS-II只是一個實時操作系統內核,它僅僅包含了任務調度,任務管理,時間管理內存
    發表于 10-08 09:11

    uC/OS-II簡介

    知名的CPU 上。嚴格地說uC/OS-II只是一個實時操作系統內核,它僅僅包含了任務調度,任務管理,時間管理內存
    發表于 10-11 09:26

    uC/OS-II簡介

    知名的CPU 上。嚴格地說uC/OS-II只是一個實時操作系統內核,它僅僅包含了任務調度,任務管理,時間管理內存
    發表于 10-15 11:03

    uC/OS-II簡介

    知名的CPU 上。嚴格地說uC/OS-II只是一個實時操作系統內核,它僅僅包含了任務調度,任務管理,時間管理內存
    發表于 10-20 09:35

    uC/OS-II簡介

    知名的CPU 上。嚴格地說uC/OS-II只是一個實時操作系統內核,它僅僅包含了任務調度,任務管理,時間管理內存
    發表于 10-25 09:59

    uC/OS-II簡介

    知名的CPU 上。嚴格地說uC/OS-II只是一個實時操作系統內核,它僅僅包含了任務調度,任務管理,時間管理內存
    發表于 10-27 09:29

    如何去解決uC/OS-II中優先級翻轉問題?

    uC/OS-II的運行機制是什么?uC/OS-II中的優先級翻轉問題有哪些?如何去解決uC/OS-II
    發表于 04-25 07:07

    uC/OS-II源碼包的下載

    ? STM32F107——uC/OS-II 源碼包的下載一、微內核 uC/OS-II 的構成實時微內核 uC/
    發表于 08-05 08:09

    uC/OS-II移植過程記錄

    怎么去移植uC/OS-II系統呢?移植uC/OS-II系統的過程是怎樣的?
    發表于 11-01 07:38

    為什么想學uc/OS-II

    請大家先想一下,為什么想學uc/OS-II?在通過例程學習單片機的時候有沒有這樣的疑問,為什么例程是一個個孤立的呢,能否整合在一起?RTOS就是這樣一個多線程運行的好工具,我選取UCOS來實現
    發表于 02-18 07:16

    不受uc/os-ii管理的中斷和受管理的中斷是否具有相同的響應方式?

    不受 uc/os-ii 管理的中斷和受管理的中斷是否具有相同的響應方式,即不受管理的中斷在中斷 uc
    發表于 02-27 15:03

    The uC/OS-II port for Keil C V

    The uC/OS-II port for Keil C V6.20, V6.21 or higher
    發表于 03-25 14:18 ?57次下載

    基于uc/os-ii 的嵌入式GUI研究與應用

    目前,uc/os-ii 在嵌入式系統中得到了廣泛的應用,但適用于uc/os-ii 的圖形界面卻很少。本文介紹了一種適用于uc/
    發表于 08-24 08:17 ?21次下載

    uC/OS-II—郵箱介紹

    uC/OS-II中郵箱是線程(任務)通訊的一種,使用郵箱能夠發送一個指針,當然也可以發送指針大小的數據。
    的頭像 發表于 09-11 15:35 ?2205次閱讀

    優化MSP430上用于uC/OS-II內存

    電子發燒友網站提供《優化MSP430上用于uC/OS-II內存.pdf》資料免費下載
    發表于 10-18 10:16 ?0次下載
    優化MSP430上用于<b class='flag-5'>uC</b>/<b class='flag-5'>OS-II</b>的<b class='flag-5'>內存</b>
    主站蜘蛛池模板: 精品日韩一区二区三区 | 国产精品午夜久久久久久99热 | 精品国产中文一级毛片在线看 | 免费不卡毛片 | 综合伊人久久 | aaa一区二区三区 | 天天槽任我槽免费 | 五月丁香| 色婷五月综激情亚洲综合 | 黄色毛片播放 | h网站亚洲 | 亚洲最新在线观看 | 免费一级特黄特色黄大任片 | 午夜网站免费版在线观看 | 亚洲欧美日韩特级毛片 | 劳拉淫欲护士bd字幕 | 国产自在自线午夜精品视频在 | 一级免费看 | 日本免费网站在线观看 | 美女免费黄 | 欧美三级第一页 | 中文字幕 亚洲一区 | 高清视频一区 | 丁香六月色婷婷 | 国产成人福利夜色影视 | 高清视频一区二区 | 一级做a爱片就在线看 | 天天爽夜夜爽精品视频一 | 高清视频一区 | www.天天色| 亚洲视频在线一区二区 | 欧美一区二区精品 | 黄色免费大全 | 在线视频黄 | 色婷婷精品综合久久狠狠 | 国产精品李雅在线观看 | 特级深夜a级毛片免费观看 特级生活片 | 又粗又硬又大久久久 | 夜夜操天天爽 | 特级淫片aaaa毛片aa视频 | 久久伦子沙发 |