日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

pYYBAGK9RKuAQrwQAAB-d-GRdEM349.png

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

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

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

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

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

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

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

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5210

    文章

    20700

    瀏覽量

    337705
  • RTOS
    +關(guān)注

    關(guān)注

    25

    文章

    871

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    嵌入式軟件開發(fā)工具市場新動向:訂閱制趨勢下的中國開發(fā)者選擇

    面對軟件業(yè)從永久授權(quán)模式廣泛轉(zhuǎn)向訂閱制的行業(yè)趨勢,作為行業(yè)兩大主流嵌入式軟件開發(fā)工具,即Keil MDK與IAR Embedded Workbench也推出了不同的市場策略,正在為中國開發(fā)
    的頭像 發(fā)表于 01-30 17:20 ?970次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>工具市場新動向:訂閱制趨勢下的中國<b class='flag-5'>開發(fā)</b>者選擇

    RT-Thread Vector軟件包:嵌入式開發(fā)動態(tài)數(shù)組容器 | 技術(shù)集結(jié)

    RT-Thread Vector軟件包:嵌入式開發(fā)動態(tài)數(shù)組容器 | 技術(shù)集結(jié)
    的頭像 發(fā)表于 01-25 09:33 ?5706次閱讀
    RT-Thread Vector<b class='flag-5'>軟件</b>包:<b class='flag-5'>嵌入式開發(fā)</b>的<b class='flag-5'>動態(tài)</b>數(shù)組容器 | 技術(shù)集結(jié)

    keil中c語言的動態(tài)分配內(nèi)存

    于處理器的指令集中,效率很高,但是分配內(nèi)存容量有限。另外,當(dāng)函數(shù)運(yùn)行結(jié)束時(shí),棧區(qū)的空間會被自動釋放。 (3)內(nèi)存映射段。該部分內(nèi)存主要用于文件映射、
    發(fā)表于 01-21 06:04

    嵌入式驅(qū)動開發(fā),需要掌握哪些技能?

    單元測試、集成測試、系統(tǒng)測試等,并學(xué)會使用調(diào)試工具進(jìn)行問題排查。 6、 其他嵌入式驅(qū)動開發(fā),實(shí)質(zhì)也是軟件開發(fā),還需要掌握開發(fā)文檔的編輯、軟件
    發(fā)表于 01-20 16:46

    什么是嵌入式應(yīng)用開發(fā)

    概述 所謂的嵌入式應(yīng)用開發(fā)就是在嵌入式操作系統(tǒng)下進(jìn)行開發(fā)、軟硬件綜合開發(fā) ?嵌入式應(yīng)用
    發(fā)表于 01-12 16:13

    嵌入式系統(tǒng)中,動態(tài)分配內(nèi)存可能發(fā)生的問題是什么?

    盡管不像非嵌入式計(jì)算機(jī)那么常見,嵌入式系統(tǒng)還是有從堆(heap)中動態(tài)分配內(nèi)存的過程的。 那么嵌入式系統(tǒng)中,
    發(fā)表于 12-22 09:42

    C語言單元測試在嵌入式軟件開發(fā)中的作用及專業(yè)工具的應(yīng)用

    功能包括: 測試通過/失敗統(tǒng)計(jì) 代碼覆蓋率可視化 執(zhí)行時(shí)間分析 缺陷跟蹤和報(bào)告生成 winAMS的圖形化界面可以直觀展示測試結(jié)果和覆蓋率數(shù)據(jù)。 七、總結(jié)與展望 C語言單元測試在嵌入式軟件開發(fā)中具有不可
    發(fā)表于 12-18 11:46

    CW32嵌入式軟件開發(fā)的必備知識

    嵌入式軟件開發(fā)作為計(jì)算機(jī)科學(xué)和電子工程的交叉領(lǐng)域,要求開發(fā)人員具備一系列的專業(yè)知識和技能。 而基于CW32的嵌入式軟件開發(fā)必備知識包括以下
    發(fā)表于 11-28 07:48

    為什么單片機(jī)中很少使用malloc,而PC程序頻繁使用呢?

    來進(jìn)行內(nèi)存管理,尤其是在處理復(fù)雜數(shù)據(jù)結(jié)構(gòu)和應(yīng)用時(shí)。 開發(fā)的復(fù)雜度單片機(jī):在嵌入式開發(fā)中,開發(fā)者往往需要在有限的資源和對實(shí)時(shí)性的嚴(yán)格要求下設(shè)計(jì)和調(diào)試系統(tǒng)。
    發(fā)表于 11-20 06:55

    嵌入式開發(fā)的關(guān)鍵點(diǎn)介紹

    需要考慮嵌入式系統(tǒng)的資源限制,例如:內(nèi)存、CPU處理能力等等。因此,嵌入式開發(fā)需要開發(fā)人員具備優(yōu)化代碼的能力。嵌入式系統(tǒng)的安全性非常重要,
    發(fā)表于 11-13 08:12

    嵌入式軟件測試與專業(yè)測試工具的必要性深度解析

    嵌入式系統(tǒng)作為控制、監(jiān)視或輔助裝置運(yùn)行的專用計(jì)算機(jī)系統(tǒng),其軟件測試面臨著獨(dú)特的挑戰(zhàn)和嚴(yán)格的要求。專業(yè)測試工具在嵌入式軟件開發(fā)過程中發(fā)揮著不可替代的作用,是確保系統(tǒng)可靠性和安全性的關(guān)鍵保
    發(fā)表于 09-28 17:42

    嵌入式達(dá)到什么水平才能就業(yè)?

    工具定位問題具備嵌入式軟件模塊化設(shè)計(jì)能力:能按功能劃分代碼模塊,編寫規(guī)范的頭文件與源文件,實(shí)現(xiàn)模塊間低耦合調(diào)用會使用Git 進(jìn)行版本管理:能提交代碼、解決沖突、回滾版本,熟悉敏捷開發(fā)流程中需求拆解與任務(wù)
    發(fā)表于 09-15 10:20

    新一代嵌入式開發(fā)平臺 AMD嵌入式軟件和工具2025.1版現(xiàn)已推出

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統(tǒng)開發(fā)而打造的綜合平臺,全面加速概念構(gòu)想到部署落地。 2025.1 版嵌入式
    的頭像 發(fā)表于 08-20 09:15 ?4285次閱讀

    2025“芯原杯”全國嵌入式軟件開發(fā)大賽圓滿落幕

    此前,2025年7月20日至26日,第四屆“芯原杯”全國嵌入式軟件開發(fā)大賽決賽在海口成功舉辦。
    的頭像 發(fā)表于 08-06 09:51 ?1625次閱讀

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

    對于初學(xué)嵌入式的朋友們,會想要了解嵌入式軟件開發(fā)常用的軟件有些,有什么用。那么看以下常用的軟件介紹。 1.Visual Studio Cod
    發(fā)表于 07-03 17:06
    酉阳| 沐川县| 肃宁县| 报价| 本溪市| 荣成市| 平凉市| 谢通门县| 大城县| 皋兰县| 鲁山县| 南宁市| 柞水县| 福贡县| 乐东| 崇阳县| 报价| 南宫市| 彭泽县| 武义县| 疏附县| 万山特区| 长春市| 乌苏市| 从化市| 阿巴嘎旗| 新河县| 台中县| 新绛县| 无棣县| 长沙县| 晋中市| 台安县| 濮阳市| 柞水县| 舞阳县| 惠东县| 台中县| 通道| 韩城市| 阜新市|