<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產(chǎn)品分類

      當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動化控制 > 導(dǎo)軌式開關(guān)電源

      類型分類:
      科普知識
      數(shù)據(jù)分類:
      導(dǎo)軌式開關(guān)電源

      ANSI C代碼在TMS320C55X上的移植和優(yōu)化

      發(fā)布日期:2022-04-17 點擊率:79

       引言  

             隨著DSP技術(shù)的不斷發(fā)展和完善,數(shù)字信號處理的應(yīng)用范圍越來越廣泛。工控、計算機(jī)、通信和消費電子產(chǎn)品中,都會找到它的影子。到了20世紀(jì)80年代后期,各個DSP的生產(chǎn)商都推出了自己的高級語言編譯器。這使得利用高級語言開發(fā)DSP軟件成為可能。

              編譯器的原理是通過特定的語法規(guī)則把高級語言書寫的邏輯轉(zhuǎn)化成特定硬件平臺所認(rèn)知的匯編語言。由于編譯器的首要性能是依據(jù)一定的規(guī)則編譯出邏輯正確的代碼。這樣在保證正確性的前提下,編譯出的匯編代碼冗余很難兼顧效率。在一些實時性要求比較高的場合,例如在語音圖像處理方面,必須對某些關(guān)鍵的算法進(jìn)行優(yōu)化。本文以TI公司的DSP芯片TMS320C55X為例,介紹如何對一個工程進(jìn)行優(yōu)化。


      優(yōu)化的一般步驟

              在高級語言編譯器出現(xiàn)以前,由于軟件部分都是由匯編來完成,并且寫出的代碼性能都比較高,所以代碼的優(yōu)化在開發(fā)過程中已經(jīng)完成,不需要把優(yōu)化單獨地作為開發(fā)的一個步驟。現(xiàn)在隨著高級語言應(yīng)用到DSP系統(tǒng)的開發(fā)中,在軟件功能實現(xiàn)的基礎(chǔ)上,軟件執(zhí)行效率的優(yōu)化顯得愈加重要。每個人在優(yōu)化過程中使用的具體方法各有特點,但在總體上還是有一定的規(guī)范可尋。
              筆者根據(jù)自己的實際工作經(jīng)驗,并參照其它比較成功的優(yōu)化實例,總結(jié)了以下幾個步驟,作為優(yōu)化過程的參考。:

      (1)向C55X上移植所需的準(zhǔn)備工作:數(shù)據(jù)類型的定義、intrinsic函數(shù)的使用、為適合多通道的應(yīng)用所做的代碼的修改。    

      (2)工程層的優(yōu)化:對于函數(shù)體較小的函數(shù)使用"inline"限定詞、數(shù)據(jù)的對齊。    

      (3)C函數(shù)層的優(yōu)化:針對TMS320C55X系列芯片的內(nèi)部結(jié)構(gòu);改變C代碼使其能在硬件最大使用概率的條件下,降低算法的用時。

      (4)部分算法的修改。

      (5)部分函數(shù)的手工匯編。

      向C55X上移植所需的必要工作

             由于DSP硬件結(jié)構(gòu)的約束,用C語言開發(fā)的代碼在向其移植時,必須作相應(yīng)的改動,來適應(yīng)特定硬件平臺的特點。總結(jié)移植所需要的工作,主要有以下幾點:
             (1)數(shù)據(jù)類型的定義。由于C55X系列芯片是TI公司生產(chǎn)的定點DSP芯片,其中累加器為40位。為了實現(xiàn)定點小數(shù)的數(shù)學(xué)運算,定義一個typedef.h的文件,在typedef.h文件中定義了幾種數(shù)據(jù)類型。Word16對應(yīng)short型;Word32對應(yīng)long型;Flag對應(yīng)int型。

            (2)Intrinsic函數(shù)的使用。由所定義的數(shù)據(jù)類型可以實現(xiàn)定點的數(shù)學(xué)運算,由于這些基本的計算被多次使用,所以TI公司提供了這些函數(shù)的優(yōu)化匯編代碼。在算法實現(xiàn)代碼文件頭中加入"#include

              (3)為適合多通道的應(yīng)用所做的代碼修改。在 DSP 上實現(xiàn)的有些算法,例如語音的編解碼等,需要同時處理多個通道。由于硬件資源(內(nèi)存等)在工程的設(shè)計階段已經(jīng)劃分完畢,所以要求在算法內(nèi)不能在有內(nèi)存的動態(tài)分配。解決的方法是事先把需要動態(tài)分配內(nèi)存的變量放到一個結(jié)構(gòu)體當(dāng)中,集中在工程的設(shè)計階段分配好內(nèi)存。例如,將有關(guān)編碼需要動態(tài)分配內(nèi)存的數(shù)據(jù)結(jié)構(gòu)合并為一個獨立的結(jié)構(gòu)體。這樣當(dāng)有多個通道同時工作時,只要對每一個通道分別開辟一塊內(nèi)存,公用算法代碼,就可以實現(xiàn)多通道的應(yīng)用。

      工程層的優(yōu)化

            在工程層的優(yōu)化中一般使用以下兩種技術(shù):內(nèi)嵌函數(shù)和數(shù)據(jù)對齊。
      (1)內(nèi)嵌函數(shù)

             所謂的函數(shù)內(nèi)嵌,是指用函數(shù)的本體代替函數(shù)的調(diào)用這一過程。這項技術(shù)去掉了復(fù)雜的函數(shù)調(diào)用過程來提高函數(shù)的執(zhí)行效率,而付出的代價是增加了代碼所占用的空間。

      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      推薦產(chǎn)品

      更多
      主站蜘蛛池模板: 日韩综合在线视频| 国产成人综合亚洲| 激情五月婷婷综合网站| 99精品国产综合久久久久五月天| 天天做天天爱天天爽综合区| 97久久国产综合精品女不卡| 久久婷婷午色综合夜啪| 天堂无码久久综合东京热| 亚洲欧洲日产国产综合网| 玖玖爱zh综合伊人久久| 狠狠综合久久综合88亚洲| 天天躁夜夜躁狂狂躁综合| 久久91精品综合国产首页| 色综合久久最新中文字幕| 91精品国产综合久久久久久| 亚洲精品综合久久中文字幕| 一本久久a久久精品vr综合| 亚洲综合一区无码精品| 99久久综合精品国产| 综合久久一区二区三区| 色婷婷久久综合中文久久一本`| 久久久综合九色合综国产精品| 色婷婷综合缴情综免费观看| 激情综合亚洲色婷婷五月APP| 亚洲综合伊人久久综合| 大香网伊人久久综合观看| 亚洲综合丁香婷婷六月香| 狠狠色狠狠色综合曰曰| 综合无码一区二区三区| 亚洲精品第一国产综合精品99| 伊人色综合久久天天| 亚洲AV综合色区无码一二三区| 色婷婷天天综合在线| 色综合视频一区二区三区44| 亚洲国产精品综合久久20| 91精品国产综合久久四虎久久无码一级 | 亚洲精品综合一二三区在线| 国产综合一区二区| 狠狠色狠狠色综合伊人| 国产综合色香蕉精品五月婷| 色综合天天综合狠狠|