国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

DSP編程技巧之28---答疑解惑哪家強(qiáng)之(3)

發(fā)布時(shí)間:2014-12-15 11:50    發(fā)布者:看門狗
關(guān)鍵詞: DSP編程
作者:paradoxfx 來(lái)源:電子產(chǎn)品世界

  17. 如何把RTS庫(kù)添加到工程文件中?

  如果使用命令行腳本的方式添加庫(kù)文件,則使用-l <庫(kù)文件名>來(lái)添加即可。

  在圖形化界面下,填加RTS庫(kù)文件的選項(xiàng)在不同版本的CCS中是不一樣的,在此把它們一一列出。

  在CCS6.x和5.x版本下:

  在工程管理器中的工程名上點(diǎn)擊右鍵,選擇"properties",然后切換到如下視圖。



  在CCS4.x版本下:



  在CCS3.3版本以及更低的版本下:



  針對(duì)比CCS3.3更古老的版本:如果不習(xí)慣使用Eclipse樣式的開發(fā)環(huán)境,或者某些仿真器不兼容CCS4.x以及以上版本,或者你還在使用最古老的TMS320VC33這樣的芯片,否則至少應(yīng)該升級(jí)到CCS3.3這樣的版本了。

  18. 在對(duì)庫(kù)文件進(jìn)行修改,或者使用不同版本的編譯器時(shí),如何重新編譯庫(kù)文件?

  在編譯器版本不低于6.0.2的情況下,我們可以直接使用編譯器提供的工具來(lái)重新編譯RTS庫(kù)文件,即Mklib程序。如需使用此工具,請(qǐng)參考它的幫助說(shuō)明文檔。

  在編譯器版本低于6.0.2的情況下,我們需要進(jìn)入編譯器codegen的庫(kù)文件目錄中,找到rtssrc.zip這個(gè)文件并解壓,然后根據(jù)其中rtssrc_zip_README.txt里面描述的步驟進(jìn)行庫(kù)文件的重新編譯。

  19. 編譯器的優(yōu)化選項(xiàng)那么多,有什么通用的模版可以既快速配置優(yōu)化選項(xiàng),又能達(dá)到較為合適的優(yōu)化效果?

  關(guān)于編譯器的優(yōu)化選項(xiàng),我們確實(shí)講了很多,對(duì)很多初學(xué)者來(lái)說(shuō)可能面臨“選擇恐懼癥”。所以我們?nèi)匀挥斜匾贫ㄒ恍┝鞒袒姆桨,方便大家的使用。例如?br />
  1) 把代碼盡可能根據(jù)功能劃分到多個(gè)獨(dú)立的文件中,這樣在優(yōu)化時(shí)可具有更多的級(jí)別供選擇。這樣做不光對(duì)優(yōu)化有好處,對(duì)代碼的模塊化也是有利的。

  2) 使能符號(hào)調(diào)試功能--symdebug:dwarf或者 -g

  在不啟用優(yōu)化器的情況下,編寫、編譯和調(diào)試代碼,這樣做的目的是在編譯之前首先能保證代碼的功能是正確的。

  3) 啟用優(yōu)化功能,并再次驗(yàn)證代碼的功能。如果有需要,還得對(duì)代碼進(jìn)行一定的調(diào)試。

  a) 優(yōu)化的級(jí)別有0,1,2和3等不同級(jí)別,對(duì)應(yīng)了不同類型和不同程度的代碼優(yōu)化。

   在啟用優(yōu)化的情況下,必須指定優(yōu)化級(jí)別,否則優(yōu)化選項(xiàng)會(huì)被編譯器給忽略,同時(shí)顯示給你一個(gè)警告信息。

   優(yōu)化級(jí)別0 (--opt_level=0 或 -o0)是最低程度的優(yōu)化。

   優(yōu)化級(jí)別3 (--opt_level=3 或 –o3)是最高程度的優(yōu)化。

  Ø 考慮從最低的優(yōu)化級(jí)別開始進(jìn)行驗(yàn)證。

  b) 從編譯器版本6.0.1開始,又添加了優(yōu)化級(jí)別4的支持,即(--opt_level=4 或 -o4)

  這個(gè)級(jí)別的優(yōu)化針對(duì)的是鏈接之后的代碼,它在鏈接完成之后,從整個(gè)應(yīng)用程序的角度來(lái)進(jìn)行可能的優(yōu)化,具有進(jìn)一步提高程序性能的潛力。與所有的優(yōu)化選項(xiàng)一樣,為了實(shí)現(xiàn)優(yōu)化的效果,就需要多付出一定的編譯時(shí)間,當(dāng)然這個(gè)時(shí)間花費(fèi)與DSP的代碼效率相比還是值得的。

  4) 為了調(diào)試優(yōu)化過(guò)的代碼,需要在使用--opt_level的同時(shí)開啟符號(hào)調(diào)試選項(xiàng)-g。這保證了在保持代碼調(diào)試功能的同時(shí),仍然可以實(shí)現(xiàn)最大程度的代碼優(yōu)化。

  老版本的編譯器中還可使用-mn選項(xiàng),它可以在開啟符號(hào)調(diào)試選項(xiàng)的同時(shí)提供一定的優(yōu)化效果,但是此選項(xiàng)如今已經(jīng)廢止,再使用它不能起到任何效果了。

  5) 去掉符號(hào)調(diào)試選項(xiàng)(-g)

  a) 在已經(jīng)驗(yàn)證了代碼的功能之后,可以移除符號(hào)調(diào)試選項(xiàng)了。這是因?yàn)殡m然符號(hào)調(diào)試選項(xiàng)對(duì)代碼的效率影響非常小,但是在某些情況下可能會(huì)影響到特定代碼的執(zhí)行。例如,編譯器在使用某些FPU32指令的情況下,可以對(duì)代碼進(jìn)行并行度更高的處理,或者減少NOP空指令的使用,這對(duì)應(yīng)提高代碼運(yùn)行速度是有幫助的;在使用-g選項(xiàng)的情況下,則有可能會(huì)妨礙編譯器充分發(fā)揮這一能力。如果對(duì)稱不是特別“強(qiáng)迫”的話,也可以干脆不去管它。

  b) 在比較老版本的編譯器手冊(cè)中,建議在此步驟中使用--symdebug:skeletal選項(xiàng)。但是這是個(gè)已經(jīng)廢棄的參數(shù),不再建議使用,即使使能了也不會(huì)再產(chǎn)生任何效果。

  c) 不開啟-ss選項(xiàng)。

  這個(gè)選項(xiàng)可以把C/C++的表達(dá)式生成交叉列表,以注釋的形式插入到編譯生成的匯編代碼中,方便我們查看/閱讀生成的匯編代碼。這個(gè)功能雖然方便了調(diào)試,但是顯然也妨礙了對(duì)代碼的優(yōu)化。

  如果你希望把優(yōu)化器所做的改動(dòng)以注釋的形式插入到編譯生成的匯編代碼中的話,則可以在開啟了-g選項(xiàng)的前提下,使用-s選項(xiàng)。如果不使用-g,則-s與-ss的效果是相同的。

  20. 為什么開啟代碼優(yōu)化之后,程序就無(wú)法實(shí)現(xiàn)正確的功能了?

   在開啟代碼優(yōu)化之后,代碼中的一些功能有可能會(huì)被編譯器改變,例如:

   未初始化的變化會(huì)被優(yōu)化掉;

   未正確使用volatile關(guān)鍵詞的變量功能不正常;

   與標(biāo)準(zhǔn)ANSI C的結(jié)果有出入

   匯編函數(shù)沒能正確保存/恢復(fù)寄存器的

  所以為了保證程序在代碼優(yōu)化之后仍然能正確地執(zhí)行我們的意圖,一定要認(rèn)真閱讀一下相關(guān)編譯器選項(xiàng)的使用說(shuō)明。

  21. volatile關(guān)鍵字能對(duì)我們有什么幫助?

  volatile提醒編譯器它后面所定義的變量隨時(shí)都有可能改變,因此編譯后的程序每次需要存儲(chǔ)或讀取這個(gè)變量的時(shí)候,都會(huì)直接從變量地址中讀取數(shù)據(jù)。如果沒有volatile關(guān)鍵字,則編譯器可能優(yōu)化讀取和存儲(chǔ),可能暫時(shí)使用寄存器中的值,如果這個(gè)變量由別的程序更新了的話,將出現(xiàn)不一致的現(xiàn)象。volatile的使用場(chǎng)合可以包括:

   在中斷或者別的任務(wù)中會(huì)被修改的變量

   可以被硬件改變的外設(shè)寄存器的值

   可以被其它處理器所修改的變量的值(用于多核的場(chǎng)合,例如OMAP等)
本文地址:http://m.qingdxww.cn/thread-135071-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色婷婷影院在线视频免费播放 | 青青青久热国产精品视频 | 成人黄色在线网站 | 综合网在线观看 | 久久青草国产手机看片福利盒子 | 国产夫妻久久线观看 | videos欧美hd精品 | 日韩精品一区二区三区在线观看 | 欧美第九页| aaa免费视频 | 香蕉网站视频高清在线观看 | 国产自精品在线 | 日本爽爽爽爽爽爽在线观看免 | 久草视频首页 | 欧美性精品 | 亚洲四虎影院 | 亚洲综合偷自成人网第页 | 操一操日一日 | 久久永久免费 | 午夜精品成年片色多多 | 日韩福利一区 | 精品91自产拍在线观看一区 | 狠狠狠色丁香婷婷综合久久88 | 久久国产精品成人免费 | 国产精品v欧美精品v日韩 | 一二三区在线视频 | 精品卡1卡2卡三卡免费网站 | 婷婷综合国产激情在线 | 四虎国产精品高清在线观看 | 欧美日韩视频在线第一区二区三区 | 欧美亚洲综合另类 | 日本欧美一区二区 | 四虎永久在线精品 | 欧美另类videos高清精品 | 国产成人久久精品激情 | 亚洲播放 | 亚洲尹人香蕉网在线视颅 | 国产一区二区在线视频播放 | 亚洲一区二区精品视频 | 亚洲激情视频网 | 亚洲va视频 |