- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作画面-昆山科技大学
崑山科技大學
電腦與通訊系
數位訊號處理器暨實習為DSP應用選擇C/組合語言程式碼組合語言設計師的編譯器考量連接C/組合語言的延伸功能同時使用C/組合語言進行除錯DSP晶片C語言撰寫格式…………………………………………………………12
2.1 TMS320F24x程式發展環境……………………………………………………12
2.2 DSP晶片C語言撰寫格式………………………………………………………16
心得報告………………………………………………………………………………………23
參考文獻………………………………………………………………………………………24
圖 目 錄
圖1-1 右邊的CEVA-TeakLite-III組合語言程式碼可以建置成左邊的C語言程式碼………………………………………………………………………………………5
圖1-2:從CEVA-X1641手寫FFT演算法組合語言實作摘錄的一段程式碼
………………………………………………………………………………………7
圖1-3:結合內嵌組合語言和硬體暫存器連結的程式碼片段………………8
圖1-4:H.264編碼器——一個關鍵的函數性能案例…………………………9
圖1-5:CEVA-X1641編譯器支援組合語言內嵌函數的使用…………………10
圖2-1 DOS 環境下發展C語言程式的操作界面…………………………………13
圖2-2 C語言程式編譯過程之訊息顯示…………………………………………16
圖2-3 C語言控制程式模組化關係圖………………………………………………17
圖2-4 等效C語言的Simulink程式方塊…………………………………………18
圖2-5 DSP運動控制卡作業系統的程式迴路………………………………………19
第1章 前言與基礎知識
隨著DSP處理器性能的提升以及編譯器最佳化技術的進步,曾經紅極一時、僅用組合語言編寫DSP應用程式的作法已逐漸被淘汰。今天,幾乎每個DSP應用程式都使用C語言程式碼和組合語言程式碼混合的方式。對於一些性能需求極高的關鍵功能,DSP工程師會繼續使用高度最佳化的組合語言程式碼;而一些次要的功能現在也使用C語言編寫,使程式碼更容易維護和移植。對於C語言和組合語言程式碼的結合,每位DSP工程師都需要掌握特殊的工具和方法。
眾所皆知,組合語言編碼具有更高的性能優勢,而用C語言編碼則較容易且速度也更快。為瞭解其中原因,以下我們進一步比較組合語言編碼與C語言編碼的優缺點:
組合語言編碼的優點:
?組合語言編碼可以充分利用處理器的獨特指令以及各種專門的硬體資源。而C語言程式碼是通用型程式碼,必須支援各種硬體平台,因此很難支援特殊平台程式碼。
?組合語言程式設計人員通常對應用程式非常熟悉,可以作出編譯器無法作出的假設。 ?組合語言程式設計人員可以發揮人類的創造性;而再先進的編譯器也只是一個自動化的程式。
組合語言編碼的缺點:
?組合語言程式設計人員必須解決耗時的機器級問題,如暫存器分配和指令排程。若使用C語言程式碼,這些問題可以由編譯器解決。
?使用組合語言編碼的程式設計人員必須瞭解DSP架構及其指令集的專業知識;而C語言編碼只需要掌握相當普及的C語言知識。
?若使用組合語言,將應用程式從一個平台移植到另一個平台非常困難也相當耗時;而C語言應用程式的移植相對而言非常容易。
圖1顯示了如何利用專用硬體機制來獲得高度最佳化的組合語言程式碼。左邊的C語言編碼利用模組演算法設計出一個循環緩衝區P1;右邊高度最佳化的組合語言程式碼中,等效的緩衝區是利用CEVA-TeakLite-III DSP核心的模組運算機制(Modulo Mechanism)設計產生的。只要緩衝區指標(本例中的r0)有更新,模組運算機制便會自動執行模組運算。這種運算與指標更新在同一個週期發生,因此組合語言程式碼比C語言程式碼更加高效,可為模組運算產生獨立的指令。
圖1:右邊的CEVA-TeakLite-III組合語言程式碼可以建置成左邊的C語言程式碼為DSP應用選擇C/組合語言程式碼
混合使用的問題就在於該如何劃分C語言程式碼和組合語言程式碼的界限,而答案取決於剖析器提供的性能分析結果。然而在使用剖析器之前,DSP工程師需要為應用程式定義清晰的物件,一些典型的物件包括迴圈數、程式碼大小和數據大小。一旦這些物件確定後,所有應用程式都應該先以C語言編寫和製作,隨後使用剖析器來分析性能。
在一些極端情況下,如控制應用,用C語言層級的編碼就足夠了;但大多數情況下,原始C語言層級應用程式版本不會遵從一個或多個物件,這也意味著需要使用一些組合語言程式碼來完成。在求助於組合語言編碼之前,C語言編碼可提供許多方法來提高性能,但這些方法不屬於本文討
文档评论(0)