女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

嵌入式軟件開發的動態內存分配解決問題

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Colin Walls ? 2022-06-30 14:36 ? 次閱讀

越來越多的嵌入式軟件開發人員意識到動態內存分配——在需要時獲取大塊內存并在以后放棄它們——雖然方便靈活,但也充滿了問題。這些問題不僅限于嵌入式代碼,許多桌面應用程序都存在影響性能和可靠性的內存泄漏。但在這里我想專注于嵌入式。

質疑使用標準malloc()庫函數的三個關鍵原因:

內存分配可能會失敗。這可能是因為沒有足夠的可用內存(在堆中)來滿足請求。也可能是碎片造成的;有足夠的可用內存,但沒有連續的塊足夠大。

該函數通常是不可重入的。在多線程(多任務)系統中,如果函數被多個任務調用,則它們必須是可重入的。這確保了,如果調用被中斷,對該函數的另一次調用不會危及第一次調用。

它不是確定性的。在實時系統中,可預測性(確定性)至關重要。標準malloc()函數的執行時間非常多變且無法預測。

pYYBAGK9RKuAQrwQAAB-d-GRdEM349.png

這些都是有效的點,并且有解決它們的方法,這通常是使用實時操作系統 (RTOS) 提供的功能的問題。

然而,盡管它們是有效的,但問題可能并不總是像看起來那么重要:

如果發生分配失敗,該函數將返回一個NULL指針。這很容易檢查,并且可以采取行動。

在許多應用程序中,所有內存分配和釋放都在單個任務中執行。這使得重入是不必要的。

并非所有嵌入式系統都是實時的,因此可能不需要確定性。

malloc()可能會帶來另一個挑戰:它相當慢。一些系統需要速度,而不是可預測性,因此需要考慮找到一種方法來提供此功能的功能并具有更高的性能。

該函數性能不佳的主要原因是它提供了很多功能。不同大小的內存塊的管理是相當復雜的。對于許多應用程序來說,這實際上是多余的,因為所需的內存分配都是相同的大?。ɑ蛏倭坎煌囊阎笮。?。為固定大小的塊編寫內存分配器非常簡單;只是一個帶有使用標志的數組或者一個鏈表。代碼肯定會更快,甚至可以確定地完成。分配失敗仍然可能發生,但管理起來很簡單。這種類型的內存分配通常由流行的 RTOS 產品提供。

審核編輯:郭婷

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

    關注

    5141

    文章

    19528

    瀏覽量

    314930
  • RTOS
    +關注

    關注

    24

    文章

    841

    瀏覽量

    120757
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何成為一名嵌入式軟件工程師?

    、Java等)和軟件開發工具,還需要對硬件的工作原理有深入的理解。 在團隊中,嵌入式軟件工程師往往扮演著核心角色,他們的工作直接關系到產品的性能、穩定性和用戶體驗。 02掌握核心技能與知識
    發表于 04-15 14:37

    如何使用LAX_CODEGEN啟用動態內存分配?

    我目前正在探索NXP_MBDToolbox_LAX。lax_codegen 生成的代碼基于靜態分配。我想管理大型向量,如何使用 LAX_CODEGEN 啟用動態內存分配?
    發表于 04-10 08:09

    IAR發布云端平臺,助力現代嵌入式軟件開發團隊

    該平臺為嵌入式軟件開發人員提供前所未有的自由度與靈活性,助力開發團隊在工具選擇和日常工作流中實現更高效的協作與創新。
    的頭像 發表于 03-12 11:56 ?290次閱讀

    打破技術壁壘!AWFlow讓嵌入式軟件開發觸手可及

    嵌入式軟件開發中,創意和技術創新常常難以融合。AWFlow通過其圖形化組態方法,利用拖拽節點構建業務流程圖,幫助用戶實現奇思妙想。在嵌入式軟件開發中,創意和技術創新常常難以融合。一方
    的頭像 發表于 02-10 16:44 ?399次閱讀
    打破技術壁壘!AWFlow讓<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>觸手可及

    嵌入式機器學習的應用特性與軟件開發環境

    設備和智能傳感器)上,這些設備通常具有有限的計算能力、存儲空間和功耗。本文將您介紹嵌入式機器學習的應用特性,以及常見的機器學習開發軟件開發環境。 嵌入式機器學習的應用特性與優勢 由于
    的頭像 發表于 01-25 17:05 ?538次閱讀
    <b class='flag-5'>嵌入式</b>機器學習的應用特性與<b class='flag-5'>軟件開發</b>環境

    嵌入式軟件開發符合ISO 26262 功能安全標準

    )的符合性呢?現在,您可以通過 “如何遵守 ISO 26262 標準 ”白皮書在 ISO 26262 合規性方面搶占先機。了解如何以最佳方式加快嵌入式軟件開發符合
    發表于 01-15 12:04 ?2次下載

    嵌入式系統開發與硬件的關系 嵌入式系統開發常見問題解決

    系統開發與硬件關系的幾個關鍵點: 硬件依賴性 :嵌入式系統的軟件必須能夠在特定的硬件上運行,這包括處理器、內存、輸入/輸出接口等。軟件必須能
    的頭像 發表于 12-09 09:38 ?833次閱讀

    一文了解嵌入式軟件開發的對象

    以前應用場景很單一,嵌入式開發可能談不上面向對象開發。但現在,做嵌入式開發,沒有面向對象開發,你就有點落伍了。 本文結合個人經驗和周立功《抽象接口技術和組件
    的頭像 發表于 11-15 10:31 ?740次閱讀
    一文了解<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>的對象

    你認為嵌入式軟件開發的盡頭是什么?

    嵌入式軟件開發的“盡頭”是一個富有哲理且多維度的概念,因為它不僅關乎技術發展的極限,還涉及到行業應用、市場需求、技術融合與創新等多個方面。從幾個不同的視角來看
    的頭像 發表于 09-18 09:42 ?717次閱讀
    你認為<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>的盡頭是什么?

    EsDA,一站嵌入式軟件

    ,旨在提高嵌入式軟件開發的效率、性能和可擴展性。EsDA全稱是嵌入式系統設計自動化,它是一個由AWorksLP、AWStudio、AXPI、AWTK、ZWS等多種軟件
    的頭像 發表于 09-15 08:10 ?641次閱讀
    EsDA,一站<b class='flag-5'>式</b><b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>

    嵌入式開發常用軟件有哪些?

    嵌入式開發常用軟件有哪些? 對于初學嵌入式的朋友們,會想要了解嵌入式軟件開發常用的軟件有些,有什
    發表于 09-09 15:22

    節點、跨平臺開發,AWFlow讓嵌入式開發變得更簡單

    國產化趨勢對嵌入式軟件開發構成挑戰,導致軟件移植和適配需求激增,影響開發效率。AWFlow軟件通過節點化和跨平臺
    的頭像 發表于 08-02 08:25 ?634次閱讀
    節點<b class='flag-5'>式</b>、跨平臺<b class='flag-5'>開發</b>,AWFlow讓<b class='flag-5'>嵌入式開發</b>變得更簡單

    嵌入式軟件開發與AI整合

    嵌入式軟件開發與AI整合是當前技術發展的重要趨勢之一。隨著人工智能技術的快速發展,嵌入式系統越來越多地集成了AI算法,以實現更復雜的智能功能。以下是關于嵌入式
    的頭像 發表于 07-31 09:25 ?1229次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>與AI整合

    嵌入式軟件開發招聘

    本帖最后由 jf_19082533 于 2024-7-26 13:56 編輯 尋求:嵌入式軟件工程師 要求:3年以上開發經驗,音視頻領域應用層開發 地址:北京市昌平區 郵箱:10
    發表于 07-26 13:44

    嵌入式開發者的未來

    和測試這些產品的硬件和軟件。汽車行業:現代汽車包含大量的嵌入式系統,例如車載娛樂系統、發動機控制單元、自動駕駛系統等。在這個領域,工程師可以從事嵌入式軟件開發、系統集
    的頭像 發表于 06-23 08:10 ?648次閱讀
    <b class='flag-5'>嵌入式開發</b>者的未來