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

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>DSP>DSP編程技巧之五大使用代碼優(yōu)化的問題解析

DSP編程技巧之五大使用代碼優(yōu)化的問題解析

2017-10-17 | rar | 0.1 MB | 次下載 | 免費

資料介紹

  1. 小心使用匯編表達(dá)式

  在C/C++代碼中,有時候一些操作難免會對某些CPU寄存器進(jìn)行操作,此時要使用內(nèi)嵌的匯編表達(dá)式,例如asm(“EALLOW”),或者重置某個中斷的掩碼寄存器等。在優(yōu)化代碼時,編譯器會重新調(diào)整某些代碼段的順序,自己決定使用某些寄存器(例如AR0-AR7這樣的輔助寄存器),甚至刪除某些編譯器認(rèn)為無用的變量、函數(shù)等,但是編譯器一般情況下并不會對內(nèi)嵌的匯編代碼進(jìn)行任何優(yōu)化(除非這段匯編代碼被編譯器認(rèn)為是永遠(yuǎn)不會執(zhí)行到的無用代碼),這就造成了編譯器的優(yōu)化效果在這段匯編代碼和它的上下文代碼中無法進(jìn)行有效的優(yōu)化,特別是匯編代碼和C/C++代碼直接存在變量調(diào)用的情況下。所以非必要的情況下,要盡量避免C/C++和匯編語句的混用,如果確實需要的,也要在編譯之后檢查生成的匯編代碼是不是保證了我們代碼原意的完整性。

  2. 為必要的內(nèi)存存取使用volatile關(guān)鍵字

  在C/C++代碼的編譯過程中,編譯器會分析數(shù)據(jù)流,從而盡量避免對存儲空間的直接存取。但是如果我們要在C/C++代碼中直接對內(nèi)存地址進(jìn)行操作的話,需要使用volatile關(guān)鍵字來定義變量,編譯器在優(yōu)化時不會對volatile類型的變量進(jìn)行優(yōu)化。

  例如,在下面的代碼中,循環(huán)的結(jié)束條件為指針指向的地址為0xFF:

  unsigned int *ctrl;

  while (*ctrl !=0xFF);

  因為*ctrl是一個不變的表達(dá)式,這個循環(huán)會被優(yōu)化為一次內(nèi)存讀取。為了正確實現(xiàn)我們的代碼意圖,需要把ctrl定義為volatile類型:

  volatile unsigned int *ctrl

  使用volatile類型定義的類型在調(diào)試的時候還有一個極大的優(yōu)勢,就是我們可以直接在CCS的debug窗口里改變變量的值,極大地方便我們的調(diào)試。

  3. 小心使用Alias變量

  Alias(別名)在一個變量可以被至少兩種方式存取的時候會用到,例如,當(dāng)兩個指針指向同一塊區(qū)域或?qū)ο髸r,我們稱一個指針 alias 另一個指針。Alias變量的使用要非常謹(jǐn)慎,因為會涉及到非直接的引用,從而破壞了優(yōu)化效果。編譯器在優(yōu)化時會分析代碼來決定在哪些地方會產(chǎn)生alias引用,然后在保持代碼正確性的基礎(chǔ)上“保守”地優(yōu)化代碼。

  一般情況下,編譯器會假設(shè),如果一個本地變量的地址被傳遞給某個函數(shù),則這個函數(shù)有可能會通過指針操作改變這個本地變量的內(nèi)容,但是這個函數(shù)不能在該地址被返回后仍然可以被別的指針操作所示使用,例如把這個本地變量的地址分配給一個全局變量或者返回它。如果這種假設(shè)被打破,則需要在編譯器選項里使用-ma強(qiáng)制編譯器按照最壞情況的別名引用來進(jìn)行一定的優(yōu)化,在這種情況下,任何非直接的引用(例如使用指針)都可以引用到這個變量。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1489次下載  |  免費
  3. 2單片機(jī)典型實例介紹
  4. 18.19 MB  |  91次下載  |  1 積分
  5. 3S7-200PLC編程實例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  9次下載  |  免費
  11. 6基于AT89C2051/4051單片機(jī)編程器的實驗
  12. 0.11 MB  |  4次下載  |  免費
  13. 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計
  14. 0.23 MB  |  3次下載  |  免費
  15. 8基于單片機(jī)的紅外風(fēng)扇遙控
  16. 0.23 MB  |  3次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30319次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關(guān)電源設(shè)計實例指南
  16. 未知  |  21539次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費
主站蜘蛛池模板: 特级一级毛片| 特级毛片网站| 亚洲一在线| 男人和女人做a免费视频| 在线成人亚洲| 伊人蕉久| 轻点灬大ji巴太粗太大了小说| 亚洲一区二区三区首页| 国内一区二区| 又粗又大又爽又色又过瘾视频| 午夜.dj高清在线观看免费8| 色吧首页dvd| 亚洲高清一区二区三区四区| 国产在线h| 西西人体大胆高清啪啪欧洲| 69xxxxtube日本免费| 久久久久激情免费观看| 久久国产免费观看精品| 一级欧美在线的视频| 色狠狠色综合久久8狠狠色| 天堂中文在线免费观看| 亚洲日韩图片专区第1页| 成 人 在 线 免费 8888 www| 又粗又长又爽又长黄免费视频| 日本一区二区三区视频在线 | 成人影院在线观看| 91天天干| 欧美成人亚洲| 四虎影院永久| 久久黄网站| 亚洲国产精品热久久2022| 国产亚洲片| 国产福利午夜| 四虎免费大片aⅴ入口| 婷婷丁香在线| 久久成人免费网站| 天天干天天草天天| 黄色xxxx| 天堂社区在线观看| 狠狠躁夜夜躁人人爽天天段| 黄色大片免费观看|