色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          利用C和匯編語言混合編程實現(xiàn)DSP軟件設(shè)計

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

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

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

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

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

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

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


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

          對編譯器的考慮事項

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


          上一頁 1 2 3 4 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉