新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于TMS320C62X DSP的混合編程研究

        基于TMS320C62X DSP的混合編程研究

        作者: 時間:2008-08-12 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/258049.htm
          .asg B10,ocsr

          .asg B11,rw_4

          STW  .D2 ocsr,*stack--[1] ;被調用函數用到了B10~B15,A10

          STW   .D2 r_w4,*stack--[1] ;~A15的寄存器,則需對它們保護

          MVC  .S2 CSR,ocsr

          AND   .S2 -2,ocsr,ocsr

          MVC   .S2 ocsr,CSR ;關閉某些中斷 ……

          loop:

          LDW   .D2 *tmp_pSrc++[src_width1],r_w1

          ;讀取第一個字

          LDW   .D1 *pSrc++[1],r-w2 ;讀取第二個字

          LDW  .D1 *pSrc++[src_width2],r-w3 ;讀取第三個字

          SHRU .S2 r_w1,rshiftB, r-w1

          SHL  .S1 r_w3,lshiftA, r_w3

          SHL .S2X r_w2,rshiftB,r_w4

          SHRU .S1 r_w2,rshiftA, r_w2

          OR .L2 r_w1,r_w4, r_w1

          OR .L1 r_w1,r_w3,r_w2 ;這幾步作了圖a中的操作過程

          STW .D2 r_w1,*pDst++[2]

          STW .D1 r_w2,*tmpDst++[2]     ;存儲取得的兩個字

          B .S2 loop ;延遲跳轉到標號loop處,實現循環 ……

          LDW .D2T2 *++stack[1],r_w4

          LDW .D2T2 *++stack[1],ocsr     ;對被調用函數中自己保護的寄存器作恢復處理

          MVC .S2 ocsr, CSR    ;恢復中斷環境

          B .S2 B3 ;返回到調用函數處

          ……

          在 CCS上用其庫函數CLOCK()對這個算法的程序和并行程序分別進行了性能測試。在純中,運動矢量對4的偏移量的余數為0 時,約為33個指令周期, 余數為1時約為93個指令周期, 余數為2 時約為 51個指令周期,余數為3 時約為 93個指令周期,平均約耗時 67個周期。而將其用并行代碼編寫,其周期數恒定為33個指令周期。33個指令周期的執行時間,對于這個函數基本上是達到了函數的最大優化。

          由此可見,程序的核心算法的代碼用并行程序編寫,而主體的程序則以函數調用的形式調用這些核心算法的并行匯編函數,是提高程序代碼執行效率的一種有效方法。

          參考文獻

          1 TMS320C6000 CPU and Instruction Set Reference Guide. Texas Instruments Incorprated,2000

          2 TMS320C600 Programmer’s Guide. Texas Instruments Incorporated, 2001

          3 MS320C6000 Optimizing Compiler User’s Guide. Texas Instruments Incorporated,2001

          4 任麗香,馬淑芬,李方慧. TMS320C6000系列s的原理與應用.北京:電子工業出版社,2000.7

          5 鐘玉琢, 王 琪, 賀玉方.基于對象的多媒體數據壓縮編碼國際標準-MPEG-4及其校驗模型.北京:科學出版社,2000


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 上蔡县| 淮北市| 定襄县| 盘锦市| 宁波市| 田林县| 凯里市| 高邑县| 馆陶县| 安达市| 阆中市| 湘潭县| 扶绥县| 内乡县| 山阴县| 满洲里市| 安溪县| 临桂县| 临朐县| 双城市| 威远县| 周宁县| 遂昌县| 盈江县| 金沙县| 睢宁县| 成安县| 江津市| 方山县| 岑巩县| 双江| 孝昌县| 施甸县| 保德县| 建平县| 玉山县| 安岳县| 屏山县| 蕉岭县| 长宁县| 新津县|