打印

DSP程序优化C循环的实例

[复制链接]
481|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Orchids|  楼主 | 2017-11-6 17:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DSP程序优化C循环的实例


  • #define WORD_ALIGNED(x) (_nassert(((int)(x) & 0x3) == 0))

复制代码

/*输入参数加上关键字restrict,内存独立声明,xptr yptr指向的区域不重合*/

  • void lesson3_c(short * restrict xptr, short * restrict yptr, short *zptr,
  •                short *w_sum, int N)
  • {
  •     int i, w_vec1, w_vec2;
  •     short w1, w2;
  •      
  •   /*保证xptr yptr是四字节对齐的,编程者负责要保证这一点*/                       
  •     WORD_ALIGNED(xptr);
  •     WORD_ALIGNED(yptr);                                 
  •                                       
  •     w1 = zptr[0];
  •     w2 = zptr[1];

  •    /*最小循环20次,循环的次数是2的倍数*/

  •     #pragma MUST_ITERATE(20, , 2);
  •     for (i = 0; i < N; i++)
  •     {
  •         w_vec1 =  xptr * w1;
  •         w_vec2 =  yptr * w2;
  •         w_sum = (w_vec1 + w_vec2) >> 15;
  •     }
  • }

复制代码








相关帖子

沙发
aspoke| | 2017-11-6 22:36 | 只看该作者
使用for循环或者while循环哪个省时?

使用特权

评论回复
板凳
232321122| | 2017-11-6 22:36 | 只看该作者
这个代码是什么功能?

使用特权

评论回复
地板
ghuca| | 2017-11-6 22:37 | 只看该作者
这个循环需要多少周期?

使用特权

评论回复
5
aspoke| | 2017-11-6 22:40 | 只看该作者
C语言的循环代码比较复杂。

使用特权

评论回复
6
232321122| | 2017-11-6 22:40 | 只看该作者
关键字restrict这个是什么功能?

使用特权

评论回复
7
ghuca| | 2017-11-6 22:40 | 只看该作者
在CCS里面的优化怎么样?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

697

主题

993

帖子

4

粉丝