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

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

發(fā)布時(shí)間:2014-12-15 11:50    發(fā)布者:看門(mén)狗
關(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樣式的開(kāi)發(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)化器的情況下,編寫(xiě)、編譯和調(diào)試代碼,這樣做的目的是在編譯之前首先能保證代碼的功能是正確的。

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

  a) 優(yōu)化的級(jí)別有0,1,2和3等不同級(jí)別,對(duì)應(yīng)了不同類(lèi)型和不同程度的代碼優(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í)別開(kāi)始進(jìn)行驗(yàn)證。

  b) 從編譯器版本6.0.1開(kāi)始,又添加了優(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í)開(kāi)啟符號(hào)調(diào)試選項(xiàng)-g。這保證了在保持代碼調(diào)試功能的同時(shí),仍然可以實(shí)現(xiàn)最大程度的代碼優(yōu)化。

  老版本的編譯器中還可使用-mn選項(xiàng),它可以在開(kāi)啟符號(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ì)稱(chēng)不是特別“強(qiáng)迫”的話,也可以干脆不去管它。

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

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

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

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

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

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

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

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

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

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

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

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

  volatile提醒編譯器它后面所定義的變量隨時(shí)都有可能改變,因此編譯后的程序每次需要存儲(chǔ)或讀取這個(gè)變量的時(shí)候,都會(huì)直接從變量地址中讀取數(shù)據(jù)。如果沒(méi)有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視頻專(zhuān)區(qū)
  • 利用SAM E54 Xplained Pro評(píng)估工具包演示CAN轉(zhuǎn)USB橋接器以及基于CAN的主機(jī)和自舉程序應(yīng)用程序
  • 使用SAM-IoT Wx v2開(kāi)發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開(kāi)發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国内自拍视频在线看免费观看 | 成人在线免费视频播放 | 国产一级小视频 | 99re6在线视频 | 欧美精品免费在线观看 | 成人欧美一区二区三区 | 成年性羞羞视频免费观看 | 91果冻制片厂天美传媒 | 亚洲理论在线观看 | 可以免费在线看黄的网站 | 国产精品麻豆a在线播放 | 日韩在线视频一区二区三区 | 五月激情五月婷婷 | 日日天日日夜日日摸 | 人.成午夜| 国产精品成人网红女主播 | 国产免费啪视频观看网站 | 亚洲小视频在线播放 | 日本久久久久中文字幕 | 亚洲成人国产精品 | 久久香蕉综合精品国产 | 国内自拍小视频 | 欧美一二三区视频 | 免费观看四虎精品国产永久 | 久久在草| 真实乱视频国产免费观看 | 日韩一区二区三区在线视频 | 91在线精品 | 天天操天天干天天玩 | 高清性视频hd | 精品国产无限资源免费观看 | 欧美成人国产 | 99re这里只有精品国产精品 | 手机在线观看a | 日韩欧美~中文字幕 | 国产又黄又免费aaaa视频 | 日韩成人免费在线视频 | 精品五夜婷香蕉国产线看观看 | 制服师生一区二区三区在线 | 四虎论坛 | 成人精品视频一区二区在线 |