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

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

   echo36 
echo36发表的帖子 

 急切求助!改写一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;
    }
}




发表时间:2006年5月19日19:10:16

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  93430.[详细]救命啊!
摘要:哪位仁兄帮帮忙啊!很急啊......(24字)
- [echo36][860次] 2006年5月25日

[上一篇帖子]:怎么用51单片机实现数字电压表 3位半的  小妹谢谢怎么用51单片机实
[下一篇帖子]:新手上路,多多关照!新手上路,多多关照! /P P [size=4][color=#F