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

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

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

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

嵌入式釋放RTOS內(nèi)存性能的使用技巧

電子工程師 ? 來(lái)源:嵌入式學(xué)習(xí)站 ? 作者:嵌入式學(xué)習(xí)站 ? 2022-09-27 11:50 ? 次閱讀

經(jīng)常從嵌入式開發(fā)人員那里聽到兩種拒絕使用RTOS的借口:

“RTOS內(nèi)存占用太大”

“RTOS開銷太大”

這些借口在以前可能有一些價(jià)值,但今天它們沒有任何分量。典型的RTOS對(duì)CPU的負(fù)載不到4%,需要不到16 KB的閃存空間和不到4 KB的RAM。在大多數(shù)情況下,性能和內(nèi)存問題與開發(fā)人員如何使用RTOS以及他們?cè)谌绾握_使用和配置RTOS方面的知識(shí)差距有關(guān)。下面是開發(fā)人員可以遵循的七個(gè)技巧,以優(yōu)化他們的RTOS應(yīng)用程序內(nèi)存使用。

技巧1:對(duì)每項(xiàng)任務(wù)進(jìn)行最壞情況堆棧分析

最大的內(nèi)存浪費(fèi)之一是為任務(wù)堆棧分配的內(nèi)存。默認(rèn)情況下,大多數(shù) RTOS 將分配一千字節(jié)來(lái)保存任務(wù)堆棧,其中包含諸如局部變量、數(shù)據(jù)結(jié)構(gòu)和函數(shù)調(diào)用返回地址等內(nèi)容。默認(rèn)大小的問題在于,不熟悉使用 RTOS 的開發(fā)人員通常不會(huì)檢查每個(gè)任務(wù)并正確調(diào)整堆棧的大小。一個(gè)只閃爍幾個(gè) LED 并且什么都不做的任務(wù)通常會(huì)有 1 千字節(jié)的堆棧,即使 64 字節(jié)就足夠了。未能檢查每個(gè)任務(wù)并正確調(diào)整堆棧大小可能會(huì)導(dǎo)致使用的 RAM 遠(yuǎn)遠(yuǎn)超過應(yīng)用程序?qū)嶋H所需的 RAM。

技巧2:避免過度使用堆棧

由于每個(gè)任務(wù)都有一個(gè)堆棧,因此任務(wù)堆棧成為運(yùn)行應(yīng)用程序所需的 RAM 的巨大貢獻(xiàn)者。當(dāng)嵌入式開發(fā)人員設(shè)計(jì)和實(shí)現(xiàn)他們的任務(wù)時(shí),他們應(yīng)該盡量減少堆棧的使用。這可以通過以下方式完成:

? 避免遞歸函數(shù)

? 最大限度減少函數(shù)調(diào)用

? 避免大型本地?cái)?shù)據(jù)結(jié)構(gòu)

開發(fā)人員不僅需要編寫代碼,還需要仔細(xì)考慮每個(gè)變量、數(shù)據(jù)結(jié)構(gòu)和函數(shù)調(diào)用對(duì)內(nèi)存和性能的影響。避免過度使用堆棧使用將允許開發(fā)人員縮小堆棧大小并節(jié)省 RAM 使用。

技巧3:使用內(nèi)存塊池

開發(fā)人員在開發(fā)基于 RTOS 的應(yīng)用程序時(shí)經(jīng)常會(huì)遇到的一個(gè)大問題是他們需要?jiǎng)討B(tài)分配內(nèi)存。動(dòng)態(tài)內(nèi)存分配的問題在于,內(nèi)存通常是從一個(gè)行為類似于字節(jié)池的堆中分配的。堆和字節(jié)池有許多缺點(diǎn),例如:

? 它們會(huì)破碎

? 內(nèi)存分配是不確定的

另一方面,塊池來(lái)自固定塊,不僅可以確定地分配,而且不會(huì)碎片。對(duì)于需要?jiǎng)討B(tài)分配內(nèi)存的開發(fā)人員來(lái)說(shuō),塊池是比堆或字節(jié)池更好的選擇。

技巧4:最小化 RTOS 對(duì)象

RTOS 可以幫助嵌入式開發(fā)人員將他們的應(yīng)用程序分解為可重用的半獨(dú)立程序,這些程序使用信號(hào)量、互斥體和消息隊(duì)列等 RTOS 對(duì)象來(lái)通信和同步任務(wù)執(zhí)行。每個(gè)RTOS對(duì)象都有一個(gè)使用少量?jī)?nèi)存的控制塊。在資源非常有限的應(yīng)用程序中,或者如果開發(fā)人員過度使用這些資源,則可以使用比實(shí)際需要更多的內(nèi)存。出于這個(gè)原因,開發(fā)人員應(yīng)該仔細(xì)設(shè)計(jì)他們的 RTOS 應(yīng)用程序,盡量減少RTOS對(duì)象的使用。

技巧5:考慮使用事件標(biāo)志而不是信號(hào)量

RTOS 的功能可能因一個(gè) RTOS 而異,但在作者使用的幾種不同的 RTOS 中,使用事件標(biāo)志而不是信號(hào)量可能會(huì)導(dǎo)致占用空間略小。信號(hào)量不僅包含一個(gè)控制塊,還包含一些基本代碼來(lái)執(zhí)行信號(hào)量操作,比如發(fā)送和接收信號(hào)量。通常,此代碼往往比事件標(biāo)志更慢并且使用更多內(nèi)存。事件標(biāo)志實(shí)際上只不過是一個(gè)內(nèi)存位置,其中內(nèi)存位置中的每一位都代表一個(gè)事件,例如按下按鈕或剛剛對(duì)溫度傳感器進(jìn)行采樣。

技巧6:最小化任務(wù)優(yōu)先級(jí)

實(shí)時(shí)操作系統(tǒng)允許嵌入式開發(fā)人員設(shè)置任務(wù)可以設(shè)置的優(yōu)先級(jí)。例如,許多系統(tǒng)的默認(rèn)值是 0 到 31。在某些情況下,默認(rèn)值的范圍可以從 0 到 128 甚至 0 到 1024。一般來(lái)說(shuō),一般來(lái)說(shuō),任務(wù)優(yōu)先級(jí)越低,性能越好,內(nèi)存使用越少。開發(fā)人員應(yīng)盡量將優(yōu)先級(jí)設(shè)置保持在 0 到 31 之間,除非有充分的理由進(jìn)行其他設(shè)置。

技巧7:優(yōu)化 RTOS 配置文件

RTOS 通常有一個(gè)配置文件,允許開發(fā)人員微調(diào) RTOS 行為。配置文件允許開發(fā)人員設(shè)置功能,例如默認(rèn)堆棧大小、可用的優(yōu)先級(jí)數(shù)量以及構(gòu)建中將包含哪些同步對(duì)象。在許多情況下,修改配置文件可以為開發(fā)人員提供更小的 RTOS 占用空間,甚至根據(jù)可用的配置選項(xiàng)提高性能。確保檢查 RTOS 配置文件并了解每個(gè)可用選項(xiàng)。

如果使用不當(dāng),RTOS 會(huì)導(dǎo)致應(yīng)用程序所需的內(nèi)存占用膨脹到無(wú)法使用的水平。在許多情況下,高內(nèi)存使用是由于開發(fā)人員使用 RTOS 的方式造成的,而不是 RTOS 本身的指示。在這篇文章中,我們研究了嵌入式開發(fā)人員可以遵循的幾個(gè)技巧,以幫助最小化他們自己的 RTOS 應(yīng)用程序占用空間。

聲明:本文內(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)注

    5095

    文章

    19189

    瀏覽量

    307987
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3064

    瀏覽量

    74382
  • RTOS
    +關(guān)注

    關(guān)注

    22

    文章

    820

    瀏覽量

    119915

原文標(biāo)題:嵌入式:管理 RTOS 內(nèi)存性能和使用的7個(gè)技巧

文章出處:【微信號(hào):嵌入式學(xué)習(xí)站,微信公眾號(hào):嵌入式學(xué)習(xí)站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式RTOS的 任務(wù)棧 和 系統(tǒng)棧

    簡(jiǎn)介明了帶你了解嵌入式RTOS的 任務(wù)棧 和 系統(tǒng)棧
    的頭像 發(fā)表于 05-16 09:57 ?3409次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>RTOS</b>的 任務(wù)棧 和 系統(tǒng)棧

    RTOS嵌入式系統(tǒng)的軟件開發(fā)平臺(tái)

    RTOS嵌入式系統(tǒng)的軟件開發(fā)平臺(tái)RTOS最關(guān)鍵的部分是實(shí)時(shí)多任務(wù)內(nèi)核,它的基本功能包括任務(wù)管理、定時(shí)器管理、存儲(chǔ)器管理、資源管理、事件管理、系統(tǒng)管理、消息管理、隊(duì)列管理、旗語(yǔ)管理等, 這些管理功能
    發(fā)表于 08-12 14:32

    基于嵌入式裸機(jī)或RTOS系統(tǒng)下內(nèi)存管理方法的探究

    嵌入式內(nèi)存管理探究-基于FreeRTOS文章封面本文基于嵌入式裸機(jī)或RTOS系統(tǒng)下內(nèi)存管理方法的探究,灰色方塊為正在使用的
    發(fā)表于 12-17 07:40

    嵌入式LINUX設(shè)計(jì)與應(yīng)用

    第一篇 基礎(chǔ)知識(shí)第1章 嵌入式系統(tǒng)與嵌入式的Linux1.1 無(wú)所不在的嵌入式系統(tǒng)1.1.1 身邊的嵌入式系統(tǒng)1.1.2 嵌入式系統(tǒng)的特點(diǎn)1
    發(fā)表于 09-10 09:46 ?25次下載
    <b class='flag-5'>嵌入式</b>LINUX設(shè)計(jì)與應(yīng)用

    基于RTOS嵌入式系統(tǒng)在Nexar中的實(shí)現(xiàn)

     構(gòu)建基于RTOS51操作系統(tǒng)的嵌入式軟件工程   在Nexar中創(chuàng)建基于RTOS嵌入式系統(tǒng)工程,需要?jiǎng)?chuàng)建一個(gè)嵌入式工程,其中包括一個(gè)
    發(fā)表于 07-01 10:25 ?926次閱讀
    基于<b class='flag-5'>RTOS</b>的<b class='flag-5'>嵌入式</b>系統(tǒng)在Nexar中的實(shí)現(xiàn)

    嵌入式RTOS內(nèi)存管理機(jī)制的實(shí)現(xiàn)方案和進(jìn)行改善設(shè)計(jì)

    內(nèi)存資源作為嵌入式系統(tǒng)中極為重要的資源之一,其管理機(jī)制歷來(lái)是嵌入式系統(tǒng)設(shè)計(jì)的重點(diǎn)和難點(diǎn)。內(nèi)存管理機(jī)制的優(yōu)劣程度極大地影響著嵌入式系統(tǒng)的整體
    的頭像 發(fā)表于 08-12 09:03 ?2600次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>RTOS</b>的<b class='flag-5'>內(nèi)存</b>管理機(jī)制的實(shí)現(xiàn)方案和進(jìn)行改善設(shè)計(jì)

    下面幾種主流嵌入式RTOS,你認(rèn)識(shí)幾種?

    滿足實(shí)時(shí)控制要求的嵌入式操作系統(tǒng)(RTOS)操作系統(tǒng),以下介紹14種主流的RTOS,分別為μClinux、μC/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX
    的頭像 發(fā)表于 04-06 16:02 ?4710次閱讀
    下面幾種主流<b class='flag-5'>嵌入式</b><b class='flag-5'>RTOS</b>,你認(rèn)識(shí)幾種?

    基于RTOS嵌入式系統(tǒng)軟件設(shè)計(jì)

    基于RTOS嵌入式系統(tǒng)軟件設(shè)計(jì)說(shuō)明。
    發(fā)表于 04-19 14:38 ?17次下載

    性能嵌入式堆棧Azure PTOS USBX概述

    Azure RTOS USBX 是一種高性能的 USB 主機(jī)、設(shè)備和移動(dòng) (OTG) 嵌入式堆棧。 Azure RTOS USBX 與 Azure
    發(fā)表于 05-24 10:55 ?10次下載

    喜歡嵌入式學(xué)RTOS的8個(gè)理由

    時(shí)響應(yīng) 基于優(yōu)先級(jí)搶占的RTOS,根據(jù)任務(wù)的實(shí)時(shí)需求,執(zhí)行優(yōu)先調(diào)度。有嚴(yán)格時(shí)序限制的任務(wù)可以優(yōu)先執(zhí)行,提高應(yīng)用程序?qū)r(shí)間關(guān)鍵事件的響應(yīng)。 2.系統(tǒng)性能最大化 針對(duì)大型的、復(fù)雜的嵌入式應(yīng)用,使用一個(gè)事件驅(qū)動(dòng)的
    的頭像 發(fā)表于 07-27 10:13 ?1683次閱讀

    基于RTOS嵌入式系統(tǒng)軟件的設(shè)計(jì)講解

    基于RTOS嵌入式系統(tǒng)軟件的設(shè)計(jì)講解(樹莓派嵌入式開發(fā)板)-該文檔為基于RTOS嵌入式系統(tǒng)軟件的設(shè)計(jì)講解文檔,是一份很不錯(cuò)的參考資料,具
    發(fā)表于 07-30 10:03 ?8次下載
    基于<b class='flag-5'>RTOS</b>的<b class='flag-5'>嵌入式</b>系統(tǒng)軟件的設(shè)計(jì)講解

    嵌入式linux和物聯(lián)網(wǎng),嵌入式Linux或RTOS:用于物聯(lián)網(wǎng)

    嵌入式Linux或RTOS:用于物聯(lián)網(wǎng)2021-05-10嵌入式Linux或RTOS:用于物聯(lián)網(wǎng)嵌入式Linux將Linux內(nèi)核用于
    發(fā)表于 11-01 16:33 ?15次下載
    <b class='flag-5'>嵌入式</b>linux和物聯(lián)網(wǎng),<b class='flag-5'>嵌入式</b>Linux或<b class='flag-5'>RTOS</b>:用于物聯(lián)網(wǎng)

    嵌入式linux和物聯(lián)網(wǎng),嵌入式Linux或RTOS:用于物聯(lián)網(wǎng)

    嵌入式Linux或RTOS:用于物聯(lián)網(wǎng)2021-05-10嵌入式Linux或RTOS:用于物聯(lián)網(wǎng)嵌入式Linux將Linux內(nèi)核用于
    發(fā)表于 11-01 17:37 ?16次下載
    <b class='flag-5'>嵌入式</b>linux和物聯(lián)網(wǎng),<b class='flag-5'>嵌入式</b>Linux或<b class='flag-5'>RTOS</b>:用于物聯(lián)網(wǎng)

    嵌入式系統(tǒng)和物聯(lián)網(wǎng)課程的RTOS游戲

    電子發(fā)燒友網(wǎng)站提供《嵌入式系統(tǒng)和物聯(lián)網(wǎng)課程的RTOS游戲.zip》資料免費(fèi)下載
    發(fā)表于 11-02 14:38 ?2次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)和物聯(lián)網(wǎng)課程的<b class='flag-5'>RTOS</b>游戲

    STM32嵌入式開發(fā)中的RTOS,你用過哪些?

    STM32嵌入式開發(fā)中的RTOS,你用過哪些?
    的頭像 發(fā)表于 09-18 16:21 ?2362次閱讀
    STM32<b class='flag-5'>嵌入式</b>開發(fā)中的<b class='flag-5'>RTOS</b>,你用過哪些?
    主站蜘蛛池模板: 天天操天天弄 | 国产拍拍1000部ww | 婷婷色站| 久久不射影院 | www.久久综合 | 在线观看国产精美视频 | 九九热视频免费在线观看 | 性生交大片免费一级 | 色咪网 | 丁香花在线视频观看免费 | 欧美激情亚洲精品日韩1区2区 | 国产h视频在线观看网站免费 | 高清一级| 特黄一级黄色片 | 我想看一级播放片一级的 | 亚洲精品国产自在久久出水 | 国产毛片农村妇女aa板 | 色综合色综合色综合色综合网 | 激情五月综合婷婷 | 四虎影视色费永久在线观看 | 欧美黄色三级视频 | 456主播喷水在线观看 | 综合网天天| 黄色毛片免费看 | 一区二区三区视频在线 | 在线免费看黄的网站 | 天天插天天爽 | 欧美成人免费夜夜黄啪啪 | 天天拍夜夜添久久精品免费 | 亚洲色图27p | 四虎最新入口 | 俄罗斯一级成人毛片 | 日本免费观看完整视频 | 香焦视频在线观看黄 | 天天插日日干 | 国产又爽又黄又粗又大 | 免费精品一区二区三区在线观看 | 国产裸体美女视频全黄 | 亚洲天天在线 | 国产精品777 | 一级毛片真人免费播放视频 |