女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

如何正確使用MDK-ARM優化功能, 以及優化之后帶來的影響

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 作者:黃工的嵌入式技術 ? 2020-02-28 15:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

許多朋友使用MDK-ARM很長時間,卻不知它的優化選項到底該有什么用,或者說到底該如何使用。 本文圍繞MDK-ARM優化選項,以及相關拓展知識(微庫、實際應用、調試)進行講述,希望對你今后開發項目有所幫助。

1總述

我們所指的優化,主要兩方面:

代碼大小(Size)

代碼性能(運行時間)

在MDK-ARM中,優化相關的配置選項:

當然,如果選擇編譯器(AC5、AC6)不同,優化選項也有差異(下面講述)。 舉例:某些項目MCU容量有限時,你除了修改代碼(優化開支),同時你有必要使用優化選項。 某些項目(比如某算法)需要高效(最短時間)運行,此時有必要使用優化選項。

2優化選項說明

本節詳細講述優化相關選項,同時,編譯器選擇AC5和AC6時有差異,下面也會針對AC5和6分別講述。

1.Use Cross-Module Optimization:使用跨模塊優化使用跨模塊優化可以啟用鏈接器反饋文件(進行兩次編譯),從而允許進一步的代碼優化。

提示:A.不針對庫目標執行跨模塊優化。 B.跨模塊優化將增加構建項目所需的時間,因為會自動執行多個編譯和鏈接步驟。 2.Use MicroLIB:使用微庫它是ISO標準C運行時庫的子集(其中一部分),提供了性能和代碼大小之間的權衡。 微庫并不完全兼容ANSI,但對于大多數小型嵌入式應用程序來說已經足夠了。 3.Use Link-Time Code Generation:使用鏈接時代碼生成(優化)在V5版本之前有這個優化選項,多文件編譯,鏈接時進行優化:

函數跨模塊內聯

刪除未引用的變量和函數

通過重新排列變量優化內存訪問

在可能的情況下重用內存


4.Execute-only Code:生成只執行的代碼不包含未使用(函數、變量等)代碼段。 僅限于:

C、Thumb代碼

基于Cortex-M3、M4的處理器

編譯器5.04以上

5.Optimize for Time:優化時間以更大的代碼大小為代價,減少執行時間。比如:使用內聯函數。 編譯器為AC6時,此選項為【Link-Time Optimization】,在鏈接狀態下執行模塊間優化。 6.Split Load and Store Multiple:分割加載和多存儲指示編譯器將LDM和STM指令拆分為兩個或多個LDM或STM指令,以減少延遲,此選項可以提高系統的總體性能。 7.The One ELF Section per Function:每個函數一個ELF段ELF代碼段通常包含許多函數的代碼,此選項告訴編譯器將所有函數放入它們自己的ELF段,這允許鏈接器刪除未使用的ELF段(而不是未使用的函數)。

8.AC5時:Optimization優化選項:默認值,以優化性能為主。 Level 0 (-O0):關閉大部分優化,除了一些簡單的轉換,生成的代碼具有最佳的調試視圖。 Level 1 (-O1):應用受限優化。 比如:刪除未使用的內聯函數和靜態函數,刪除冗余代碼和重新排序指令等。生成的代碼經過合理優化,具有良好的調試視圖。 Level 2 (-O2):高度優化,目標代碼到源代碼的映射并不一定對應,因此,不利于調試。 Level 3 (-O3):最大級別優化,級別3與時間優化相結合可能生成比級別2更多的代碼。 9.AC6時:Optimization優化選項當編譯器選擇AC6時,優化選項有差異(有更多優化選項):

AC6優化選型中前面5項(default、-O0 ~ 3)和AC5的作用基本一樣,但AC6多了三個選項。 -Ofast:啟用-O3的所有優化,以及其他可能違反語言標準(嚴格遵守)的優化。 -Os balanced:平衡代碼大小與代碼速度。默認情況下,編譯器執行優化以提高性能,但可能會增加image文件大小。 -Oz image size:優化代碼大小。

3如何優化?

本節講述三種編譯優化,使其達到最優(代碼最小、性能最好)

代碼大小

代碼性能(速度)

代碼平衡(大小和速度)

1.優化代碼大小針對AC5編譯器:

Use MicroLIB

Use Cross-module optimization

Optimization:level 2 (-O2)

針對AC6編譯器:

Use MicroLIB

Optimization:-Oz image size

說明:A.代碼量大(ELF代碼段通常包含許多函數的代碼),可考慮使用The One ELF Section per Function選項減小代碼。 B.AC6編譯器改進了優化功能(可以理解為增加的3個選項集成了優化功能)。 代碼優化大小(對比):

2.優化代碼性能針對AC5編譯器:

Use Cross-module optimization

Optimization:level 3 (-O3)

Optimize for Time

針對AC6編譯器:

Optimization:-Ofast

Link-Time Optimization

代碼優化性能(對比):

3.代碼平衡這種情況下,在滿足代碼大小的同時,我們應盡量滿足性能。 這里其實就是一個相關平衡的關系,結合上面兩種優化方式根據自己實際情況出發,一般優化考慮如下配置。 針對AC5編譯器:

Use Cross-module optimization

Optimization:level 3 (-O3)

Optimize for Time

針對AC6編譯器:

Optimization:-Os balanced

Link-Time Optimization

當然,AC6中-Os balanced優化選項更智能

4拓展說明

MDK-ARM的優化功能需要結合項目實際情況進行優化。對一些項目能起到很大幫助作用,但優化之后也可能帶來一些影響。

1.使用高度優化(-O1以上),可能會影響Debug調試(因為優化之后,編譯輸出和實際代碼不匹配)。

2.指定源文件/文件組優化

有些代碼不需要優化,我們優化指定的源文件/文件組就行。

推薦閱讀:Keil系列教程

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

    關注

    134

    文章

    9349

    瀏覽量

    377362
  • 代碼
    +關注

    關注

    30

    文章

    4900

    瀏覽量

    70681
  • MDK
    MDK
    +關注

    關注

    4

    文章

    211

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    VirtualLab:光柵的優化與分析

    光柵是光學工程師使用的最基本的工具。為了設計和分析這類組件,快速物理光學建模和設計軟件VirtualLab Fusion為用戶提供了許多有用的工具。其中包括參數優化,以輕松優化系統,以及參數運行,它
    發表于 05-23 08:49

    OCAD應用:凸輪曲線的優化設計

    的組分數,比如含有一個前固定組、一個變焦組、一個補償組以及一個固定組的變焦系統被稱為三組分變焦系統。為保證各活動組分在變焦過程中按設計要求移動活動組分,保證其表面間隔尺寸,一般都使用凸輪結構驅動各組
    發表于 05-16 08:50

    OCAD應用:凸輪曲線的優化設計

    的組分數,比如含有一個前固定組、一個變焦組、一個補償組以及一個固定組的變焦系統被稱為三組分變焦系統。為保證各活動組分在變焦過程中按設計要求移動活動組分,保證其表面間隔尺寸,一般都使用凸輪結構驅動各組
    發表于 03-04 10:08

    VirtualLab Fusion應用:參數優化文檔介紹

    局部優化算法和一種全局優化算法。 參數優化文檔 可以為光學裝置生成參數優化文檔,該光學裝置通過探測器或分析儀輸出要優化的數字。 參數
    發表于 02-28 08:44

    嵌入式系統中的代碼優化與壓縮技術

    ,可能會在數據采集、處理以及無線傳輸過程中消耗過多電量,導致電池壽命大幅縮短,頻繁更換電池不僅給用戶帶來不便,也增加了使用成本。通過代碼優化,減少不必要的計算和內存訪問,可顯著提升該節點的運行效率
    發表于 02-26 15:00

    MPLS網絡性能優化技巧

    )均支持MPLS功能,并且配置正確。不兼容的設備可能會導致性能瓶頸或網絡故障。 硬件升級 :如果網絡設備性能成為瓶頸,考慮升級到性能更高的設備,以支持更大的網絡流量和更復雜的網絡拓撲。 二、優化路由協議 選擇合適的路由協議 :如
    的頭像 發表于 02-14 17:09 ?941次閱讀

    FRED應用:LED發光顏色優化

    。第四個無光線追跡面用于優化后的顏色對比。 優化變量 優化的第一步涉及到變量的定義,本例中,優化3個LED光源的光功率。因為沒有對應的光源功率優化
    發表于 01-17 09:39

    FRED應用:LED發光顏色優化

    。第四個無光線追跡面用于優化后的顏色對比。 優化變量 優化的第一步涉及到變量的定義,本例中,優化3個LED光源的光功率。因為沒有對應的光源功率優化
    發表于 01-07 08:51

    HVAC網關設計優化以及通用邏輯和電壓轉換用例

    電子發燒友網站提供《HVAC網關設計優化以及通用邏輯和電壓轉換用例.pdf》資料免費下載
    發表于 09-24 11:24 ?0次下載
    HVAC網關設計<b class='flag-5'>優化</b><b class='flag-5'>以及</b>通用邏輯和電壓轉換用例

    TI Arm內核三角函數的優化

    電子發燒友網站提供《TI Arm內核三角函數的優化.pdf》資料免費下載
    發表于 09-11 09:19 ?1次下載
    TI <b class='flag-5'>Arm</b>內核三角函數的<b class='flag-5'>優化</b>

    keil軟件實現編程仿真需要哪些步驟

    Keil MDK-ARM 是一款廣泛使用的集成開發環境(IDE),專為 ARM Cortex-M 微控制器編程而設計。它提供了代碼編輯、編譯、鏈接、調試和仿真等功能。 1. 安裝 Keil
    的頭像 發表于 09-02 10:28 ?2439次閱讀

    keil5怎么利用sys進行配置ti環境

    以下是一些關鍵步驟和建議: 安裝Keil MDK-ARM: 首先,您需要從Keil官方網站下載并安裝Keil MDK-ARM。這是一個集成開發環境(IDE),專為ARM Cortex-M微控制器
    的頭像 發表于 09-02 10:19 ?1213次閱讀

    keil5怎么給ti燒錄程序

    安裝Keil MDK-ARM軟件: 訪問Keil官方網站(https://www.keil.com/)并下載Keil MDK-ARM軟件。 安裝軟件并激活您的許可證。 創建新項目: 打開Keil
    的頭像 發表于 09-02 10:18 ?2242次閱讀

    keil5怎么把程序燒到板子上

    安裝Keil MDK-ARM: 從Keil官網下載Keil MDK-ARM安裝包。 按照安裝向導完成安裝。 連接開發板: 將開發板通過USB或其他接口連接到計算機。 配置開發環境: 打開Keil
    的頭像 發表于 08-22 09:30 ?5892次閱讀

    優化 FPGA HLS 設計

    ,可以通過使用 FPGA 工具設置優化設計本身來最大限度地減少性能損失。 高效找到正確的FPGA工具設置 盡管設計人員知道 FPGA 工具設置的存在,但這些設置往往沒有
    發表于 08-16 19:56