导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→急切求助!改写一C程序为ARM汇编[echo36]

 *第40247篇: 急切求助!改写一C程序为ARM汇编

  
楼 主:echo36 2006年5月19日19:10
 急切求助!改写一C程序为ARM汇编
这是我的一个程序里面需要改写为ARM汇编的一个函数,因为本身不太会ARM,又急需交作业,希望哪位仁兄能够好心帮助,不胜感激!(SinCos[][]为一头文件中读取的常数数组)
static void btfly(int c, int s, __int64 r, __int64 i, __int64 *x, __int64 *y)
{
    *x = (((__int64)c)*r + ((__int64)s)*i)>  >  31;
    *y = (((__int64)c)*i - ((__int64)s)*r)>  >  31;
    return;
}

void my_fft(__int64 *x, __int64 *y, int dim)  
{
    int  i,j,k,m,m1,m2;
    int  p,q;
    __int64  a,b;
    int     ptr1, ptr2; 

    m = 1   <  < dim;

    q = m;

    for(i=1; i  <=dim; i++) {
 p = q;
 q /= 2;
 for(j=1; j  <=q; j++) {
     for(k=p; k  <=m; k+=p) {
  ptr1 = k - p + j;
  ptr2 = ptr1 + q;
  a = x[ptr1-1] - x[ptr2-1];
  b = y[ptr1-1] - y[ptr2-1];
  x[ptr1-1] = x[ptr1-1] + x[ptr2-1];
  y[ptr1-1] = y[ptr1-1] + y[ptr2-1];
  btfly(SinCos[(9-dim)*(j-1)][0], SinCos[(9-dim)*(j-1)][1], a, b, &x[ptr2-1], &y[ptr2-1]);
     }
 }
    }

    j=1;
    m1= m-1;
    m2= m/2;

    for(i=1; i  <=m1; i++) {
 if(i  <j) {
     a = x[j-1];
     b = y[j-1];
     x[j-1] = x[i-1];
     y[j-1] = y[i-1];
     x[i-1] = a;
     y[i-1] = b;
 }
 k = m2;
 while(k  <j) {
     j -= k;
     k /= 2;
 }
 j += k;
    }
}


  
2楼:echo36 2006年5月25日21:24
 救命啊!
哪位仁兄帮帮忙啊!很急啊

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:怎么用51单片机实现数字电压表 3位半的  小妹谢谢

[下一篇主题]:这是什么芯片?大家见过么? >>>