99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

嵌入式軟件開發(fā)的動(dòng)態(tài)內(nèi)存分配解決問題

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Colin Walls ? 2022-06-30 14:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

質(zhì)疑使用標(biāo)準(zhǔn)malloc()庫(kù)函數(shù)的三個(gè)關(guān)鍵原因:

內(nèi)存分配可能會(huì)失敗。這可能是因?yàn)闆]有足夠的可用內(nèi)存(在堆中)來滿足請(qǐng)求。也可能是碎片造成的;有足夠的可用內(nèi)存,但沒有連續(xù)的塊足夠大。

該函數(shù)通常是不可重入的。在多線程(多任務(wù))系統(tǒng)中,如果函數(shù)被多個(gè)任務(wù)調(diào)用,則它們必須是可重入的。這確保了,如果調(diào)用被中斷,對(duì)該函數(shù)的另一次調(diào)用不會(huì)危及第一次調(diào)用。

它不是確定性的。在實(shí)時(shí)系統(tǒng)中,可預(yù)測(cè)性(確定性)至關(guān)重要。標(biāo)準(zhǔn)malloc()函數(shù)的執(zhí)行時(shí)間非常多變且無法預(yù)測(cè)。

pYYBAGK9RKuAQrwQAAB-d-GRdEM349.png

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

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

如果發(fā)生分配失敗,該函數(shù)將返回一個(gè)NULL指針。這很容易檢查,并且可以采取行動(dòng)。

在許多應(yīng)用程序中,所有內(nèi)存分配和釋放都在單個(gè)任務(wù)中執(zhí)行。這使得重入是不必要的。

并非所有嵌入式系統(tǒng)都是實(shí)時(shí)的,因此可能不需要確定性。

malloc()可能會(huì)帶來另一個(gè)挑戰(zhàn):它相當(dāng)慢。一些系統(tǒng)需要速度,而不是可預(yù)測(cè)性,因此需要考慮找到一種方法來提供此功能的功能并具有更高的性能。

該函數(shù)性能不佳的主要原因是它提供了很多功能。不同大小的內(nèi)存塊的管理是相當(dāng)復(fù)雜的。對(duì)于許多應(yīng)用程序來說,這實(shí)際上是多余的,因?yàn)樗璧膬?nèi)存分配都是相同的大?。ɑ蛏倭坎煌囊阎笮。?。為固定大小的塊編寫內(nèi)存分配器非常簡(jiǎn)單;只是一個(gè)帶有使用標(biāo)志的數(shù)組或者一個(gè)鏈表。代碼肯定會(huì)更快,甚至可以確定地完成。分配失敗仍然可能發(fā)生,但管理起來很簡(jiǎn)單。這種類型的內(nèi)存分配通常由流行的 RTOS 產(chǎn)品提供。

審核編輯:郭婷

聲明:本文內(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)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317577
  • RTOS
    +關(guān)注

    關(guān)注

    24

    文章

    851

    瀏覽量

    121174
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    嵌入式軟件開發(fā)常用的軟件有哪些?

    對(duì)于初學(xué)嵌入式的朋友們,會(huì)想要了解嵌入式軟件開發(fā)常用的軟件有些,有什么用。那么看以下常用的軟件介紹。 1.Visual Studio Cod
    發(fā)表于 07-03 17:06

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

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

    如何使用LAX_CODEGEN啟用動(dòng)態(tài)內(nèi)存分配?

    我目前正在探索NXP_MBDToolbox_LAX。lax_codegen 生成的代碼基于靜態(tài)分配。我想管理大型向量,如何使用 LAX_CODEGEN 啟用動(dòng)態(tài)內(nèi)存分配
    發(fā)表于 04-10 08:09

    IAR發(fā)布云端平臺(tái),助力現(xiàn)代嵌入式軟件開發(fā)團(tuán)隊(duì)

    該平臺(tái)為嵌入式軟件開發(fā)人員提供前所未有的自由度與靈活性,助力開發(fā)團(tuán)隊(duì)在工具選擇和日常工作流中實(shí)現(xiàn)更高效的協(xié)作與創(chuàng)新。
    的頭像 發(fā)表于 03-12 11:56 ?361次閱讀

    打破技術(shù)壁壘!AWFlow讓嵌入式軟件開發(fā)觸手可及

    嵌入式軟件開發(fā)中,創(chuàng)意和技術(shù)創(chuàng)新常常難以融合。AWFlow通過其圖形化組態(tài)方法,利用拖拽節(jié)點(diǎn)構(gòu)建業(yè)務(wù)流程圖,幫助用戶實(shí)現(xiàn)奇思妙想。在嵌入式軟件開發(fā)中,創(chuàng)意和技術(shù)創(chuàng)新常常難以融合。一方
    的頭像 發(fā)表于 02-10 16:44 ?490次閱讀
    打破技術(shù)壁壘!AWFlow讓<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>觸手可及

    嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與軟件開發(fā)環(huán)境

    設(shè)備和智能傳感器)上,這些設(shè)備通常具有有限的計(jì)算能力、存儲(chǔ)空間和功耗。本文將您介紹嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性,以及常見的機(jī)器學(xué)習(xí)開發(fā)軟件開發(fā)環(huán)境。 嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與優(yōu)勢(shì) 由于
    的頭像 發(fā)表于 01-25 17:05 ?660次閱讀
    <b class='flag-5'>嵌入式</b>機(jī)器學(xué)習(xí)的應(yīng)用特性與<b class='flag-5'>軟件開發(fā)</b>環(huán)境

    嵌入式軟件開發(fā)符合ISO 26262 功能安全標(biāo)準(zhǔn)

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

    嵌入式系統(tǒng)開發(fā)與硬件的關(guān)系 嵌入式系統(tǒng)開發(fā)常見問題解決

    系統(tǒng)開發(fā)與硬件關(guān)系的幾個(gè)關(guān)鍵點(diǎn): 硬件依賴性 :嵌入式系統(tǒng)的軟件必須能夠在特定的硬件上運(yùn)行,這包括處理器、內(nèi)存、輸入/輸出接口等。軟件必須能
    的頭像 發(fā)表于 12-09 09:38 ?966次閱讀

    一文了解嵌入式軟件開發(fā)的對(duì)象

    以前應(yīng)用場(chǎng)景很單一,嵌入式開發(fā)可能談不上面向?qū)ο?b class='flag-5'>開發(fā)。但現(xiàn)在,做嵌入式開發(fā),沒有面向?qū)ο?b class='flag-5'>開發(fā),你就有點(diǎn)落伍了。 本文結(jié)合個(gè)人經(jīng)驗(yàn)和周立功《抽象接口技術(shù)和組件
    的頭像 發(fā)表于 11-15 10:31 ?847次閱讀
    一文了解<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>的對(duì)象

    你認(rèn)為嵌入式軟件開發(fā)的盡頭是什么?

    嵌入式軟件開發(fā)的“盡頭”是一個(gè)富有哲理且多維度的概念,因?yàn)樗粌H關(guān)乎技術(shù)發(fā)展的極限,還涉及到行業(yè)應(yīng)用、市場(chǎng)需求、技術(shù)融合與創(chuàng)新等多個(gè)方面。從幾個(gè)不同的視角來看
    的頭像 發(fā)表于 09-18 09:42 ?780次閱讀
    你認(rèn)為<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>的盡頭是什么?

    EsDA,一站嵌入式軟件

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

    嵌入式開發(fā)常用軟件有哪些?

    嵌入式開發(fā)常用軟件有哪些? 對(duì)于初學(xué)嵌入式的朋友們,會(huì)想要了解嵌入式軟件開發(fā)常用的軟件有些,有什
    發(fā)表于 09-09 15:22

    節(jié)點(diǎn)、跨平臺(tái)開發(fā),AWFlow讓嵌入式開發(fā)變得更簡(jiǎn)單

    國(guó)產(chǎn)化趨勢(shì)對(duì)嵌入式軟件開發(fā)構(gòu)成挑戰(zhàn),導(dǎo)致軟件移植和適配需求激增,影響開發(fā)效率。AWFlow軟件通過節(jié)點(diǎn)化和跨平臺(tái)
    的頭像 發(fā)表于 08-02 08:25 ?761次閱讀
    節(jié)點(diǎn)<b class='flag-5'>式</b>、跨平臺(tái)<b class='flag-5'>開發(fā)</b>,AWFlow讓<b class='flag-5'>嵌入式開發(fā)</b>變得更簡(jiǎn)單

    嵌入式軟件開發(fā)與AI整合

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

    嵌入式軟件開發(fā)招聘

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