91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

優(yōu)化 DSP 應(yīng)用程序的工具支持

劉剛 ? 來源:q153605268 ? 作者:h1654155957.9185 ? 2022-07-21 11:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我之前寫過關(guān)于編寫代碼和設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)以優(yōu)化嵌入式系統(tǒng)中的代碼大小、性能和功率時(shí)可以采取的步驟。這種壓縮軟件以適應(yīng)的需求在早期計(jì)算機(jī)上很常見,但現(xiàn)在在具有千兆字節(jié)內(nèi)存的普通 64 位系統(tǒng)上幾乎被遺忘了。嵌入式系統(tǒng)將我們帶回到未來,需要恢復(fù)這些技能以平衡代碼功能與高度受限的內(nèi)存容量。

pYYBAGLXUUuANssOAABtxomcvSM239.jpg


資料來源:CEVA

很多可能的優(yōu)化將取決于您對(duì)代碼的仔細(xì)設(shè)計(jì)和調(diào)整。但是構(gòu)建工具——尤其是編譯器和鏈接器——也可以提供幫助。在本博客中,我將討論可用于 CEVA 工具箱中這些步驟的選項(xiàng)。在所有情況下,我都將專注于優(yōu)化代碼大小,因?yàn)檫@將是您的主要約束。

編譯器選項(xiàng)

當(dāng)您設(shè)計(jì)和調(diào)試代碼時(shí),您幾乎肯定會(huì)使用-g選項(xiàng)運(yùn)行,要求生成調(diào)試信息。使用此選項(xiàng)運(yùn)行可防止編譯器執(zhí)行任何可能以使調(diào)試復(fù)雜化的方式扭曲代碼的優(yōu)化。當(dāng)您認(rèn)真考慮優(yōu)化代碼大小時(shí),您將不得不刪除該選項(xiàng)。

下一個(gè)考慮因素是編譯器如何選擇優(yōu)化。默認(rèn)情況下,它將通過多種方法優(yōu)化性能。一種方法將通過為循環(huán)的每次迭代復(fù)制代碼來展開(有限大?。ゝor循環(huán)。這避免了在每次迭代時(shí)設(shè)置和測(cè)試循環(huán)索引的開銷,但顯然會(huì)消耗更多內(nèi)存。使用-Oz選項(xiàng)將阻止展開,更喜歡較小且稍慢的實(shí)現(xiàn)。

編譯器可以用來優(yōu)化性能的另一個(gè)選項(xiàng)是內(nèi)聯(lián)某些函數(shù)(特別是小函數(shù))。這可以消除將參數(shù)推入和彈出堆棧以及跳入和跳出被調(diào)用函數(shù)的開銷。但是,如果多次調(diào)用該函數(shù),它將再次增加代碼大小。使用-INLINE=no選項(xiàng)來禁止這種自動(dòng)內(nèi)聯(lián)。

另一種優(yōu)化在傳統(tǒng)平臺(tái)上似乎不值得付出努力,但可以對(duì) DSP 上的代碼大小產(chǎn)生重要影響。這是為了禁用(視情況而定)編譯器對(duì)指針別名的保護(hù)。這種保護(hù)的目的是確保在選擇在VLIW機(jī)器上并平行一組指令(例如DSP)時(shí),編譯器將確保這些說明中的任何指針參考在兩個(gè)或更多的情況下都無法進(jìn)入比賽條件其中指向同一位數(shù)據(jù)。這會(huì)限制某些指令可以并行運(yùn)行的程度。您可以使用選項(xiàng)-alias=restrict強(qiáng)制解釋不會(huì)發(fā)生此類情況,這應(yīng)該允許推斷出更多的并行性。當(dāng)然,您應(yīng)該仔細(xì)檢查并完全回歸,以確保這種解釋是安全的。

鏈接器

鏈接器還可以執(zhí)行與大小相關(guān)的優(yōu)化。其中之一是刪除未引用的函數(shù)。這需要一些小心。一些函數(shù)可以通過數(shù)據(jù)指針甚至直接跳轉(zhuǎn)到硬編碼地址來調(diào)用。而中斷服務(wù)函數(shù)通常通過傳統(tǒng)的調(diào)用協(xié)議來訪問。因此這個(gè)選項(xiàng)必須考慮多種可能性。它將被自動(dòng)調(diào)用,并且可以使用-keepUnrefFuncs選項(xiàng)禁用。

另一個(gè)鏈接器優(yōu)化可以進(jìn)一步減小代碼的大小,其中某些符號(hào)未被匯編器解析,以便在鏈接時(shí)進(jìn)行尋址。由于它們開始未解析,因此匯編器必須假定最大可能的大小來尋址目標(biāo)處理器,當(dāng)最終在鏈接器中解析時(shí),這實(shí)際上可能是浪費(fèi)的。如果不采取特殊措施,許多此類符號(hào)可能會(huì)解析為非常小的地址,但仍會(huì)占用最大可能的地址字長。縮小這些位置可以顯著縮小總代碼大小。這是另一個(gè)微妙的任務(wù)。在縮小任何給定地址時(shí),必須調(diào)整代碼中任何位置對(duì)該符號(hào)后面位置的直接引用。還必須考慮數(shù)據(jù)對(duì)齊要求(有時(shí)是特定于處理器的)。每次減少都必須考慮最佳最小編碼,不僅對(duì)節(jié)省空間的影響,而且對(duì)其余代碼的影響。幸運(yùn)的是,這些優(yōu)化是默認(rèn)執(zhí)行的。

結(jié)合最佳編碼實(shí)踐,謹(jǐn)慎使用這些編譯器和鏈接器選項(xiàng)可以幫助進(jìn)一步縮小代碼和數(shù)據(jù)大小,以最具成本效益的方式適應(yīng)您的嵌入式系統(tǒng)。這反過來又增加了您作為經(jīng)驗(yàn)豐富的嵌入式系統(tǒng)程序員的價(jià)值,這始終是一個(gè)理想的目標(biāo)!

審核編輯 黃昊宇

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

    關(guān)注

    561

    文章

    8250

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    NORDIC藍(lán)牙芯片NRF54l15的dsp支持分享

    濾波等應(yīng)用。 ? 總結(jié) 特性 說明 處理器內(nèi)核 Arm Cortex-M33 (支持 DSP 指令集) 支持的庫 CMSIS-DSP(標(biāo)準(zhǔn)且官方支持
    發(fā)表于 12-17 16:03

    PYQT 應(yīng)用程序框架及開發(fā)工具

    大家好,本團(tuán)隊(duì)此次分享的內(nèi)容為開發(fā)過程中使用到的PYQT 應(yīng)用程序框架及開發(fā)工具。 pYqt 是一個(gè)多平臺(tái)的 python 圖形用戶界面應(yīng)用程序框架,由于其面向?qū)ο蟆? 易擴(kuò)展(可實(shí)現(xiàn)組件編程等
    發(fā)表于 10-29 07:15

    如何在應(yīng)用程序調(diào)試期間分析棧和堆使用情況

    ,并在 Unified IDE 中仍可使用。本文涵蓋了如何在 Vitis 中使用分析工具應(yīng)用程序調(diào)試期間對(duì)棧和堆進(jìn)行監(jiān)控。
    的頭像 發(fā)表于 10-24 16:54 ?922次閱讀
    如何在<b class='flag-5'>應(yīng)用程序</b>調(diào)試期間分析棧和堆使用情況

    蜂鳥E203內(nèi)核優(yōu)化方法

    提高程序的響應(yīng)速度和并行度。 應(yīng)用程序優(yōu)化:針對(duì)具體的應(yīng)用場(chǎng)景,優(yōu)化算法和程序實(shí)現(xiàn),減少資源占用,提高效率。例如,開發(fā)需要用到的驅(qū)動(dòng)
    發(fā)表于 10-21 07:55

    華大電子支持的主流開發(fā)工具有哪些

    華大電子支持的主流開發(fā)工具
    的頭像 發(fā)表于 09-28 10:43 ?570次閱讀
    華大電子<b class='flag-5'>支持</b>的主流開發(fā)<b class='flag-5'>工具</b>有哪些

    學(xué)生適合使用的SOLIDWORKS 云應(yīng)用程序

    SOLIDWORKS云應(yīng)用程序如何滿足學(xué)生的需求,并介紹其關(guān)鍵功能和優(yōu)勢(shì)。 SOLIDWORKS云應(yīng)用程序是SOLIDWORKS軟件與3DEXPERIENCE平臺(tái)云端設(shè)計(jì)應(yīng)用程序和人工智能設(shè)計(jì)輔助
    的頭像 發(fā)表于 09-15 10:39 ?816次閱讀
    學(xué)生適合使用的SOLIDWORKS 云<b class='flag-5'>應(yīng)用程序</b>

    電商API日志分析的實(shí)用工具

    、優(yōu)化用戶體驗(yàn)、檢測(cè)異?;顒?dòng),并提升整體業(yè)務(wù)效率。然而,海量日志數(shù)據(jù)的管理和分析需要高效的工具支持。本文將介紹幾種實(shí)用的電商API日志分析工具,并逐步解釋其應(yīng)用方法,幫助您快速上手。
    的頭像 發(fā)表于 07-23 15:50 ?673次閱讀
    電商API日志分析的實(shí)用<b class='flag-5'>工具</b>

    FX3 UVC 無法與 Ubuntu 24.04 Cheese 或 Snapshot 相機(jī)應(yīng)用程序配合使用,怎么處理?

    、PipeWire 和 libcamera??雌饋?VLC 和 guvcview(唯一可以正常運(yùn)行的應(yīng)用程序)僅通過 V4L2 支持視頻,而 cheese 和 snapper 使用 V4L2 并添加
    發(fā)表于 07-16 06:37

    使用 USB CDC 下載應(yīng)用程序固件,用時(shí)過長是為什么?

    我已經(jīng)在PSoC? 6 WIFI-BT Pioneer Kit 上嘗試了 DFU 示例代碼,發(fā)現(xiàn)了一件奇怪的事情。 如果我使用 UART-over-USB 下載應(yīng)用程序固件,則只需 20 秒。但是
    發(fā)表于 07-14 07:10

    CYBT-343026-01能否使用 HFP 和 AVRCP 制作應(yīng)用程序?

    我們計(jì)劃使用 CYBT-343026-01 制作使用 HFP 和 AVRCP 的應(yīng)用程序。 可以使用 CYBT-343026-01 制作使用 HFP 和 AVRCP 的應(yīng)用程序嗎? 根據(jù) QDID
    發(fā)表于 07-01 08:29

    使用英特爾? NPU 插件C++運(yùn)行應(yīng)用程序時(shí)出現(xiàn)錯(cuò)誤:“std::Runtime_error at memory location”怎么解決?

    使用OpenVINO?工具套件版本 2024.4.0 構(gòu)建C++應(yīng)用程序 使用英特爾? NPU 插件運(yùn)行了 C++ 應(yīng)用程序 遇到的錯(cuò)誤: Microsoft C++ exception: std::runtime_err
    發(fā)表于 06-25 08:01

    Lauterbach TRACE32開發(fā)工具現(xiàn)在支持PX5 RTOS

    Lauterbach TRACE32開發(fā)工具現(xiàn)在支持PX5 RTOS。這里TRACE32工具支持包括對(duì)PX5 RTOS內(nèi)部結(jié)構(gòu)和數(shù)據(jù)的訪問,使開發(fā)人員能夠更深入地了解其
    的頭像 發(fā)表于 06-12 16:38 ?1057次閱讀

    HarmonyOS優(yōu)化應(yīng)用內(nèi)存占用問題性能優(yōu)化

    應(yīng)用開發(fā)過程中注重內(nèi)存管理,積極采取措施來減少內(nèi)存占用,以優(yōu)化應(yīng)用程序的性能和用戶體驗(yàn)。 HarmonyOS提供了一些內(nèi)存管理的工具和接口,幫助開發(fā)者有效地管理內(nèi)存資源: onMemoryLevel接口
    發(fā)表于 05-21 11:27

    MCP:連接AI與應(yīng)用程序的開放標(biāo)準(zhǔn)!

    作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力 擴(kuò)展AI大模型的方式有兩種,第一種是通過訓(xùn)練增強(qiáng)AI大模型自身的能力;第二種是讓AI大模型與其它現(xiàn)有的應(yīng)用程序(例如:數(shù)據(jù)庫、瀏覽器、Gmail等)相互協(xié)作
    的頭像 發(fā)表于 03-21 18:21 ?2273次閱讀
    MCP:連接AI與<b class='flag-5'>應(yīng)用程序</b>的開放標(biāo)準(zhǔn)!

    英諾達(dá)推出RTL功耗優(yōu)化工具

    英諾達(dá)(成都)電子科技有限公司隆重推出芯片設(shè)計(jì)早期RTL級(jí)功耗優(yōu)化工具—EnFortius RTL Power Explorer(ERPE),該工具可以高效、全面地在RTL設(shè)計(jì)階段進(jìn)行功耗優(yōu)化機(jī)會(huì)
    的頭像 發(fā)表于 03-20 17:06 ?1203次閱讀