<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 利用C和匯編語(yǔ)言混合編程實(shí)現DSP軟件設計

利用C和匯編語(yǔ)言混合編程實(shí)現DSP軟件設計

作者: 時(shí)間:2012-08-29 來(lái)源:網(wǎng)絡(luò ) 收藏

眾所周知,具有更高的性能優(yōu)勢,而用C語(yǔ)言編碼則能更容易和快速地實(shí)現。處理器功能的不斷增強以及編譯器優(yōu)化技術(shù)的提高,使得傳統的用編寫(xiě)應用程序的做法逐漸被淘汰?,F在的應用程序幾乎都是由C代碼和匯編代碼混合組成的。在那些對性能起決定性作用的關(guān)鍵功能中,DSP工程師將繼續使用高度優(yōu)化的匯編代碼,同時(shí)轉用C語(yǔ)言編寫(xiě)那些不太關(guān)鍵的功能,這將有利于代碼維護和移植。而C和匯編代碼的這種結合要求DSP工程師具備專(zhuān)門(mén)的工具和方法。

本文引用地址:http://dyxdggzs.com/article/189988.htm

正確混合C代碼和匯編代碼

問(wèn)題是在哪里劃分C代碼和匯編代碼的界限。這取決于跟蹤器(profiler)所能提供的性能分析結果。然而在使用跟蹤器之前,DSP工程師需要為應用程序定義清晰的目標,這些目標一般包括循環(huán)數、代碼規模和數據量。目標一旦確定后,應該先全部用C語(yǔ)言編寫(xiě)和創(chuàng )建應用程序,然后才使用跟蹤器來(lái)分析性能。

在某些特定情況下,主要是控制應用中,C語(yǔ)言級的編碼就足夠了。但在大多數情況下,初始編寫(xiě)的C語(yǔ)言應用程序是不能滿(mǎn)足一個(gè)或更多目標要求的。這通常意味著(zhù)多少需要一些匯編代碼。在求助于匯編編程之前,強烈建議保存原始的C代碼。這樣不僅方便調試,而且當條件成熟(比如采用更強大的平臺),還可以返回到這些C語(yǔ)言的實(shí)現。

匯編部分代碼應盡可能少。為此,工程師需要認真分析跟蹤器提供的性能結果,并確定應用程序中的關(guān)鍵函數。關(guān)鍵函數是指占用大部分執行時(shí)間,而必須用重寫(xiě)才能滿(mǎn)足性能目標的那些函數。重寫(xiě)其中的幾個(gè)關(guān)鍵函數后,需要重新進(jìn)行性能分析。如果仍達不到目標要求,那就應該確定其它關(guān)鍵函數,再進(jìn)行重寫(xiě)。圖1顯示了利用專(zhuān)用硬件機制獲得高度優(yōu)化的匯編代碼。


圖1:用C語(yǔ)言創(chuàng )建的循環(huán)緩沖器代碼(左)以及由CEVA-teakLite-III創(chuàng )建的等效匯編代碼(右)。

對編譯器的考慮事項

在編寫(xiě)需要與C代碼結合的匯編代碼時(shí),匯編編程人員必須了解編譯器的約定和假設。匯編編程人員還必須了解編譯器的寄存器使用約定。通常,寄存器使用約定將硬件寄存器分成被調用方保存(或調用方使用)和被調用方使用(或調用方保存)寄存器。


上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>