您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

TMS320C62X DSP的混合编程研究

时间:2007-1-20栏目:电子通信论文

MVK .S2  0xFFFCtemp  ;获得地址的LSB位

ADD   .L1X pSrcoffsetpSrc ;参考块第一个元素的

地址

AND   .L2X pSrctemptmp_pSrc ;字对准访问的地址

AND   .S1  0x0003pSrcrshiftA ;用两个LSB位得

;到了需右移几个字

SUB  .L1  0x04rshiftAlshiftA ;需左移几个字

MPY  .M1  rshiftA8rshiftA ;需右移的#bit数

MPY  .M1  lshiftA8lshiftA ;需左移的#bit数

作为一个说明C语言与汇编程序混合编程的设计例子,采用并行汇编实现了这个函数的优化。这里只给出部分汇编程序:

.text   ;将该段汇编代码安排在.text

段,当然通过在C语言中用

#program_section也可以将其安排

在其它自己命名的段中。

.global mc

_case_a  ;函数名,用.def或.gloal对其进行

声明,使得C代码调用该函数

_mc_case_a  ;标号,是C调用函数和汇编

被调用函数的接口处

……

.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

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页