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

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

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

3天內不再提示

優化 DSP 應用程序的工具支持

劉剛 ? 來源:q153605268 ? 作者:h1654155957.9185 ? 2022-07-21 11:34 ? 次閱讀

我之前寫過關于編寫代碼和設計數據結構以優化嵌入式系統中的代碼大小、性能和功率時可以采取的步驟。這種壓縮軟件以適應的需求在早期計算機上很常見,但現在在具有千兆字節內存的普通 64 位系統上幾乎被遺忘了。嵌入式系統將我們帶回到未來,需要恢復這些技能以平衡代碼功能與高度受限的內存容量。

pYYBAGLXUUuANssOAABtxomcvSM239.jpg


資料來源:CEVA

很多可能的優化將取決于您對代碼的仔細設計和調整。但是構建工具——尤其是編譯器和鏈接器——也可以提供幫助。在本博客中,我將討論可用于 CEVA 工具箱中這些步驟的選項。在所有情況下,我都將專注于優化代碼大小,因為這將是您的主要約束。

編譯器選項

當您設計和調試代碼時,您幾乎肯定會使用-g選項運行,要求生成調試信息。使用此選項運行可防止編譯器執行任何可能以使調試復雜化的方式扭曲代碼的優化。當您認真考慮優化代碼大小時,您將不得不刪除該選項。

下一個考慮因素是編譯器如何選擇優化。默認情況下,它將通過多種方法優化性能。一種方法將通過為循環的每次迭代復制代碼來展開(有限大小)for循環。這避免了在每次迭代時設置和測試循環索引的開銷,但顯然會消耗更多內存。使用-Oz選項將阻止展開,更喜歡較小且稍慢的實現。

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

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

鏈接器

鏈接器還可以執行與大小相關的優化。其中之一是刪除未引用的函數。這需要一些小心。一些函數可以通過數據指針甚至直接跳轉到硬編碼地址來調用。而中斷服務函數通常通過傳統的調用協議來訪問。因此這個選項必須考慮多種可能性。它將被自動調用,并且可以使用-keepUnrefFuncs選項禁用。

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

結合最佳編碼實踐,謹慎使用這些編譯器和鏈接器選項可以幫助進一步縮小代碼和數據大小,以最具成本效益的方式適應您的嵌入式系統。這反過來又增加了您作為經驗豐富的嵌入式系統程序員的價值,這始終是一個理想的目標!

審核編輯 黃昊宇

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

    關注

    556

    文章

    8151

    瀏覽量

    355890
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    HarmonyOS優化應用內存占用問題性能優化

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

    如何部署OpenVINO?工具套件應用程序

    編寫代碼并測試 OpenVINO? 工具套件應用程序后,必須將應用程序安裝或部署到生產環境中的目標設備。 OpenVINO?部署管理器指南包含有關如何輕松使用部署管理器將應用程序打包并
    發表于 03-06 08:23

    請問OpenVINO?工具套件中的驗證應用程序是什么?

    OpenVINO?工具套件中的驗證應用程序是什么?
    發表于 03-06 06:54

    使用Ozone調試基于nRF9160 Zephyr應用程序

    Ozone是SEGGER免費的嵌入式軟件調試器。它是一個強大的工具,可以讓你深入了解嵌入式系統中發生的事情。它在調試nRF9160 Zephyr應用程序時特別有用。整理多個線程和多映像構建可能很困難,但這就是你想要的工具
    的頭像 發表于 02-25 17:07 ?803次閱讀
    使用Ozone調試基于nRF9160 Zephyr<b class='flag-5'>應用程序</b>

    基于HPM_SDK_ENV開發應用程序的升級處理

    基于HPM_SDK_ENV開發應用程序的方式HPM_SDK_ENV是先楫半導體MCU的Windows集成開發環境,其包含HPM_SDK,工具鏈,依賴工具(cmake,ninja,openocd等
    的頭像 發表于 02-08 13:38 ?951次閱讀
    基于HPM_SDK_ENV開發<b class='flag-5'>應用程序</b>的升級處理

    ANACONDA——關于發布數據應用程序的新簡單方法

    我們推出了一款用于發布數據應用程序的開創性解決方案:具有 Panel 應用程序部署功能的 Anaconda Cloud Notebooks。Panel 是一種開源 Python 工具,現在
    的頭像 發表于 01-17 11:39 ?390次閱讀
    ANACONDA——關于發布數據<b class='flag-5'>應用程序</b>的新簡單方法

    BQ78412應用程序編程接口

    電子發燒友網站提供《BQ78412應用程序編程接口.pdf》資料免費下載
    發表于 12-18 14:46 ?0次下載
    BQ78412<b class='flag-5'>應用程序</b>編程接口

    TAS2521應用程序參考指南

    電子發燒友網站提供《TAS2521應用程序參考指南.pdf》資料免費下載
    發表于 12-10 13:49 ?0次下載
    TAS2521<b class='flag-5'>應用程序</b>參考指南

    android手機上emulate應用程序的方法

    在Android手機上模擬(emulate)應用程序的方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android環境,以便在沒有實際物理設備的情況下運行和測試應用程序
    的頭像 發表于 12-05 15:33 ?1116次閱讀

    AWTK-WEB 快速入門(2) - JS 應用程序

    導讀AWTK可以使用相同的技術棧開發各種平臺的應用程序。有時我們需要使用Web界面與設備進行交互,本文介紹一下如何使用JS語言開發AWTK-WEB應用程序。用AWTKDesigner新建一個應用程序先安裝AWTKDesigner
    的頭像 發表于 12-05 01:04 ?442次閱讀
    AWTK-WEB 快速入門(2) - JS <b class='flag-5'>應用程序</b>

    AWTK-WEB 快速入門(1) - C 語言應用程序

    導讀AWTK可以使用相同的技術棧開發各種平臺的應用程序。有時我們需要使用Web界面與設備進行交互,本文介紹一下如何使用C語言開發AWTK-WEB應用程序。用AWTKDesigner新建一個應用程序
    的頭像 發表于 11-27 11:46 ?652次閱讀
    AWTK-WEB 快速入門(1) - C 語言<b class='flag-5'>應用程序</b>

    TPS659xx應用程序自定義工具

    電子發燒友網站提供《TPS659xx應用程序自定義工具.pdf》資料免費下載
    發表于 11-06 10:02 ?0次下載
    TPS659xx<b class='flag-5'>應用程序</b>自定義<b class='flag-5'>工具</b>

    PCM2912應用程序的操作環境

    電子發燒友網站提供《PCM2912應用程序的操作環境.pdf》資料免費下載
    發表于 10-21 09:33 ?0次下載
    PCM2912<b class='flag-5'>應用程序</b>的操作環境

    Adobe將推出全新免費應用程序

    Adobe近日宣布了一項令人振奮的新舉措——從明年起,將推出一款免費的基于網絡的應用程序。這款應用的主要功能是為圖像、視頻和音頻創作者提供便捷的“內容憑證”管理工具
    的頭像 發表于 10-10 16:54 ?727次閱讀

    DSP/BIOS 5應用程序遷移到SYS/BIOS 6

    電子發燒友網站提供《將DSP/BIOS 5應用程序遷移到SYS/BIOS 6.pdf》資料免費下載
    發表于 09-27 10:54 ?0次下載
    將<b class='flag-5'>DSP</b>/BIOS 5<b class='flag-5'>應用程序</b>遷移到SYS/BIOS 6
    主站蜘蛛池模板: 亚洲婷婷综合色高清在线 | 亚洲黄色网址大全 | 热re99久久国产精品 | 女人成午夜大片7777在线 | 性无码专区无码 | 国产黄色a三级三级三级 | 久久婷婷激情综合色综合也去 | 亚洲 欧洲 日韩 | 六月丁香综合网 | 俺来也俺来也天天夜夜视频 | 你懂的在线视频网站 | 日本免费不卡在线一区二区三区 | 性欧美大战久久久久久久久 | 国产一区二区三区欧美精品 | 永久免费看毛片 | 丝袜美腿一区 | 她也啪97在线视频 | 成人免费一区二区三区 | 一级特黄特黄的大片免费 | 午夜国产高清精品一区免费 | 久久毛片视频 | 中文字幕一区二区三区免费视频 | 亚洲精品欧洲久久婷婷99 | 明日花绮罗snis-862在线播放 | 天天操夜夜操夜夜操 | 色婷婷在线视频 | 天天夜夜人人 | 中文字幕在线二区 | 4虎影视国产在线观看精品 4虎影院永久地址www | 天天爽天天爱 | 日本三级日本三级人妇三级四 | 91在线播放免费不卡无毒 | 久久综合狠狠综合久久综合88 | 精品免费视在线观看 | 免费人成在线观看网站品爱网日本 | 看视频免费网站 | 色婷婷婷丁香亚洲综合不卡 | 日本系列 1页 亚洲系列 | 国产www色 | 亚洲一区二区三区网站 | 国产精品久久久久久免费播放 |