chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

如何正確使用MDK-ARM優(yōu)化功能, 以及優(yōu)化之后帶來(lái)的影響

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

掃碼添加小助手

加入工程師交流群

許多朋友使用MDK-ARM很長(zhǎng)時(shí)間,卻不知它的優(yōu)化選項(xiàng)到底該有什么用,或者說(shuō)到底該如何使用。 本文圍繞MDK-ARM優(yōu)化選項(xiàng),以及相關(guān)拓展知識(shí)(微庫(kù)、實(shí)際應(yīng)用、調(diào)試)進(jìn)行講述,希望對(duì)你今后開(kāi)發(fā)項(xiàng)目有所幫助。

1總述

我們所指的優(yōu)化,主要兩方面:

代碼大?。⊿ize)

代碼性能(運(yùn)行時(shí)間)

在MDK-ARM中,優(yōu)化相關(guān)的配置選項(xiàng):

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

2優(yōu)化選項(xiàng)說(shuō)明

本節(jié)詳細(xì)講述優(yōu)化相關(guān)選項(xiàng),同時(shí),編譯器選擇AC5和AC6時(shí)有差異,下面也會(huì)針對(duì)AC5和6分別講述。

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

提示:A.不針對(duì)庫(kù)目標(biāo)執(zhí)行跨模塊優(yōu)化。 B.跨模塊優(yōu)化將增加構(gòu)建項(xiàng)目所需的時(shí)間,因?yàn)闀?huì)自動(dòng)執(zhí)行多個(gè)編譯和鏈接步驟。 2.Use MicroLIB:使用微庫(kù)它是ISO標(biāo)準(zhǔn)C運(yùn)行時(shí)庫(kù)的子集(其中一部分),提供了性能和代碼大小之間的權(quán)衡。 微庫(kù)并不完全兼容ANSI,但對(duì)于大多數(shù)小型嵌入式應(yīng)用程序來(lái)說(shuō)已經(jīng)足夠了。 3.Use Link-Time Code Generation:使用鏈接時(shí)代碼生成(優(yōu)化)在V5版本之前有這個(gè)優(yōu)化選項(xiàng),多文件編譯,鏈接時(shí)進(jìn)行優(yōu)化:

函數(shù)跨模塊內(nèi)聯(lián)

刪除未引用的變量和函數(shù)

通過(guò)重新排列變量?jī)?yōu)化內(nèi)存訪問(wèn)

在可能的情況下重用內(nèi)存


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

C、Thumb代碼

基于Cortex-M3、M4的處理器

編譯器5.04以上

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

8.AC5時(shí):Optimization優(yōu)化選項(xiàng):默認(rèn)值,以優(yōu)化性能為主。 Level 0 (-O0):關(guān)閉大部分優(yōu)化,除了一些簡(jiǎn)單的轉(zhuǎn)換,生成的代碼具有最佳的調(diào)試視圖。 Level 1 (-O1):應(yīng)用受限優(yōu)化。 比如:刪除未使用的內(nèi)聯(lián)函數(shù)和靜態(tài)函數(shù),刪除冗余代碼和重新排序指令等。生成的代碼經(jīng)過(guò)合理優(yōu)化,具有良好的調(diào)試視圖。 Level 2 (-O2):高度優(yōu)化,目標(biāo)代碼到源代碼的映射并不一定對(duì)應(yīng),因此,不利于調(diào)試。 Level 3 (-O3):最大級(jí)別優(yōu)化,級(jí)別3與時(shí)間優(yōu)化相結(jié)合可能生成比級(jí)別2更多的代碼。 9.AC6時(shí):Optimization優(yōu)化選項(xiàng)當(dāng)編譯器選擇AC6時(shí),優(yōu)化選項(xiàng)有差異(有更多優(yōu)化選項(xiàng)):

AC6優(yōu)化選型中前面5項(xiàng)(default、-O0 ~ 3)和AC5的作用基本一樣,但AC6多了三個(gè)選項(xiàng)。 -Ofast:?jiǎn)⒂?O3的所有優(yōu)化,以及其他可能違反語(yǔ)言標(biāo)準(zhǔn)(嚴(yán)格遵守)的優(yōu)化。 -Os balanced:平衡代碼大小與代碼速度。默認(rèn)情況下,編譯器執(zhí)行優(yōu)化以提高性能,但可能會(huì)增加image文件大小。 -Oz image size:優(yōu)化代碼大小。

3如何優(yōu)化?

本節(jié)講述三種編譯優(yōu)化,使其達(dá)到最優(yōu)(代碼最小、性能最好)

代碼大小

代碼性能(速度)

代碼平衡(大小和速度)

1.優(yōu)化代碼大小針對(duì)AC5編譯器:

Use MicroLIB

Use Cross-module optimization

Optimization:level 2 (-O2)

針對(duì)AC6編譯器:

Use MicroLIB

Optimization:-Oz image size

說(shuō)明:A.代碼量大(ELF代碼段通常包含許多函數(shù)的代碼),可考慮使用The One ELF Section per Function選項(xiàng)減小代碼。 B.AC6編譯器改進(jìn)了優(yōu)化功能(可以理解為增加的3個(gè)選項(xiàng)集成了優(yōu)化功能)。 代碼優(yōu)化大?。▽?duì)比):

2.優(yōu)化代碼性能針對(duì)AC5編譯器:

Use Cross-module optimization

Optimization:level 3 (-O3)

Optimize for Time

針對(duì)AC6編譯器:

Optimization:-Ofast

Link-Time Optimization

代碼優(yōu)化性能(對(duì)比):

3.代碼平衡這種情況下,在滿足代碼大小的同時(shí),我們應(yīng)盡量滿足性能。 這里其實(shí)就是一個(gè)相關(guān)平衡的關(guān)系,結(jié)合上面兩種優(yōu)化方式根據(jù)自己實(shí)際情況出發(fā),一般優(yōu)化考慮如下配置。 針對(duì)AC5編譯器:

Use Cross-module optimization

Optimization:level 3 (-O3)

Optimize for Time

針對(duì)AC6編譯器:

Optimization:-Os balanced

Link-Time Optimization

當(dāng)然,AC6中-Os balanced優(yōu)化選項(xiàng)更智能。

4拓展說(shuō)明

MDK-ARM的優(yōu)化功能需要結(jié)合項(xiàng)目實(shí)際情況進(jìn)行優(yōu)化。對(duì)一些項(xiàng)目能起到很大幫助作用,但優(yōu)化之后也可能帶來(lái)一些影響。

1.使用高度優(yōu)化(-O1以上),可能會(huì)影響Debug調(diào)試(因?yàn)閮?yōu)化之后,編譯輸出和實(shí)際代碼不匹配)。

2.指定源文件/文件組優(yōu)化

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

推薦閱讀:Keil系列教程

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

    關(guān)注

    135

    文章

    9498

    瀏覽量

    388430
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4940

    瀏覽量

    73081
  • MDK
    MDK
    +關(guān)注

    關(guān)注

    4

    文章

    211

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    請(qǐng)問(wèn)Keil的優(yōu)化等級(jí)到底該如何選擇?

    在Keil MDK(Microcontroller Development Kit)中,優(yōu)化等級(jí)是編譯器的核心設(shè)置之一,它直接影響生成代碼的大小、執(zhí)行速度和調(diào)試便利性。選擇合適的優(yōu)化等級(jí)是平衡性
    發(fā)表于 11-20 07:51

    請(qǐng)問(wèn)如何在keil μVision 5上進(jìn)行ARM編譯器的代碼優(yōu)化

    如何在keil μVision 5上進(jìn)行ARM編譯器的代碼優(yōu)化?
    發(fā)表于 08-20 07:37

    MySQL 8.0性能優(yōu)化實(shí)戰(zhàn)指南

    作為一名運(yùn)維工程師,MySQL數(shù)據(jù)庫(kù)優(yōu)化是我們?nèi)粘9ぷ髦凶罹咛魬?zhàn)性的任務(wù)之一。MySQL 8.0作為當(dāng)前主流版本,在性能、安全性和功能上都有了顯著提升,但如何充分發(fā)揮其潛力,仍需要我們掌握正確
    的頭像 發(fā)表于 07-24 11:48 ?524次閱讀

    VirtualLab:光柵的優(yōu)化與分析

    光柵是光學(xué)工程師使用的最基本的工具。為了設(shè)計(jì)和分析這類組件,快速物理光學(xué)建模和設(shè)計(jì)軟件VirtualLab Fusion為用戶提供了許多有用的工具。其中包括參數(shù)優(yōu)化,以輕松優(yōu)化系統(tǒng),以及參數(shù)運(yùn)行,它
    發(fā)表于 05-23 08:49

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

    一、 概述 用戶功能的不斷增強(qiáng),應(yīng)用越來(lái)越復(fù)雜,占用的內(nèi)存也在不斷膨脹,而內(nèi)存作為系統(tǒng)的稀缺資源比較有限,當(dāng)應(yīng)用程序占用過(guò)多內(nèi)存時(shí),系統(tǒng)可能會(huì)頻繁進(jìn)行內(nèi)存回收和重新分配,導(dǎo)致應(yīng)用程序的性能下降,甚至
    發(fā)表于 05-21 11:27

    OCAD應(yīng)用:凸輪曲線的優(yōu)化設(shè)計(jì)

    的組分?jǐn)?shù),比如含有一個(gè)前固定組、一個(gè)變焦組、一個(gè)補(bǔ)償組以及一個(gè)固定組的變焦系統(tǒng)被稱為三組分變焦系統(tǒng)。為保證各活動(dòng)組分在變焦過(guò)程中按設(shè)計(jì)要求移動(dòng)活動(dòng)組分,保證其表面間隔尺寸,一般都使用凸輪結(jié)構(gòu)驅(qū)動(dòng)各組
    發(fā)表于 05-16 08:50

    OCAD應(yīng)用:凸輪曲線優(yōu)化設(shè)計(jì)

    曲線的陡度,避免運(yùn)動(dòng)中的卡滯現(xiàn)象,當(dāng)然還要考慮到凸輪加工的工藝性。 圖1.變焦系統(tǒng)凸輪優(yōu)化設(shè)計(jì)窗體 初始數(shù)據(jù)填寫以及各選擇項(xiàng)的選擇 本程序可以對(duì)機(jī)械補(bǔ)償式變焦系統(tǒng)進(jìn)行凸輪優(yōu)化設(shè)計(jì),因此只有在輸入機(jī)械
    發(fā)表于 04-28 10:11

    SiC MOSFET 開(kāi)關(guān)模塊RC緩沖吸收電路的參數(shù)優(yōu)化設(shè)計(jì)

    (高一個(gè)數(shù)量級(jí)),在開(kāi)關(guān)模塊關(guān)斷瞬間,由母排寄生電感和開(kāi)關(guān)模塊寄生電容引起的關(guān)斷尖峰電壓更高。關(guān)斷過(guò)電壓不僅給開(kāi)關(guān)模塊帶來(lái)更大的電壓應(yīng)力,縮短模塊工作壽命,而且會(huì)給系統(tǒng)帶來(lái)更大的損耗以及更嚴(yán)重的電磁干擾
    發(fā)表于 04-23 11:25

    OCAD應(yīng)用:凸輪曲線優(yōu)化設(shè)計(jì)

    曲線的陡度,避免運(yùn)動(dòng)中的卡滯現(xiàn)象,當(dāng)然還要考慮到凸輪加工的工藝性。 圖1.變焦系統(tǒng)凸輪優(yōu)化設(shè)計(jì)窗體 初始數(shù)據(jù)填寫以及各選擇項(xiàng)的選擇 本程序可以對(duì)機(jī)械補(bǔ)償式變焦系統(tǒng)進(jìn)行凸輪優(yōu)化設(shè)計(jì),因此只有在輸入機(jī)械
    發(fā)表于 03-28 08:53

    OCAD應(yīng)用:凸輪曲線的優(yōu)化設(shè)計(jì)

    的組分?jǐn)?shù),比如含有一個(gè)前固定組、一個(gè)變焦組、一個(gè)補(bǔ)償組以及一個(gè)固定組的變焦系統(tǒng)被稱為三組分變焦系統(tǒng)。為保證各活動(dòng)組分在變焦過(guò)程中按設(shè)計(jì)要求移動(dòng)活動(dòng)組分,保證其表面間隔尺寸,一般都使用凸輪結(jié)構(gòu)驅(qū)動(dòng)各組
    發(fā)表于 03-04 10:08

    VirtualLab Fusion應(yīng)用:參數(shù)優(yōu)化文檔介紹

    局部優(yōu)化算法和一種全局優(yōu)化算法。 參數(shù)優(yōu)化文檔 可以為光學(xué)裝置生成參數(shù)優(yōu)化文檔,該光學(xué)裝置通過(guò)探測(cè)器或分析儀輸出要優(yōu)化的數(shù)字。 參數(shù)
    發(fā)表于 02-28 08:44

    嵌入式系統(tǒng)中的代碼優(yōu)化與壓縮技術(shù)

    ,可能會(huì)在數(shù)據(jù)采集、處理以及無(wú)線傳輸過(guò)程中消耗過(guò)多電量,導(dǎo)致電池壽命大幅縮短,頻繁更換電池不僅給用戶帶來(lái)不便,也增加了使用成本。通過(guò)代碼優(yōu)化,減少不必要的計(jì)算和內(nèi)存訪問(wèn),可顯著提升該節(jié)點(diǎn)的運(yùn)行效率
    發(fā)表于 02-26 15:00

    MPLS網(wǎng)絡(luò)性能優(yōu)化技巧

    )均支持MPLS功能,并且配置正確。不兼容的設(shè)備可能會(huì)導(dǎo)致性能瓶頸或網(wǎng)絡(luò)故障。 硬件升級(jí) :如果網(wǎng)絡(luò)設(shè)備性能成為瓶頸,考慮升級(jí)到性能更高的設(shè)備,以支持更大的網(wǎng)絡(luò)流量和更復(fù)雜的網(wǎng)絡(luò)拓?fù)洹?二、優(yōu)化路由協(xié)議 選擇合適的路由協(xié)議 :如
    的頭像 發(fā)表于 02-14 17:09 ?1466次閱讀

    FRED應(yīng)用:LED發(fā)光顏色優(yōu)化

    。第四個(gè)無(wú)光線追跡面用于優(yōu)化后的顏色對(duì)比。 優(yōu)化變量 優(yōu)化的第一步涉及到變量的定義,本例中,優(yōu)化3個(gè)LED光源的光功率。因?yàn)闆](méi)有對(duì)應(yīng)的光源功率優(yōu)化
    發(fā)表于 01-17 09:39

    FRED應(yīng)用:LED發(fā)光顏色優(yōu)化

    。第四個(gè)無(wú)光線追跡面用于優(yōu)化后的顏色對(duì)比。 優(yōu)化變量 優(yōu)化的第一步涉及到變量的定義,本例中,優(yōu)化3個(gè)LED光源的光功率。因?yàn)闆](méi)有對(duì)應(yīng)的光源功率優(yōu)化
    發(fā)表于 01-07 08:51