⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c4_dotp.c

📁 dsp6713开发板的许多例程.对入门特别有用
💻 C
字号:
/****************************************************************************/
/*         Copyright (C) 1996-2000 Texas Instruments Incorporated           */
/*                      All Rights Reserved                                 */
/* C4_DOTP      - DOT PRODUCT                                               */
/****************************************************************************/
#include <stdio.h>
#include <time.h>

short a[100] = 
  {-8994, 24758, 31550, 29687, 31236, 13970, -32170, 29625, 30319, 11075,
   20299, -13902, -18409, 7480, 26971, 7613, 17637, 24751, 12405, 22158,
   -18134, 18483, 25775, 5091, -11483, -23529, -25137, 12809, -5249, 16126,
   -11324, 19542, 29904, 24149, -10709, 13743, 32538, 18389, -11059, 32514,
   13899, -18684, -10210, -2357, 25278, 27059, 18366, 9105, -6216, -27521,
   25850, -13464, 17645, 27474, -13495, 28526, 5883, -25119, -2095, -13488,
   -27413, -10962, -16670, 22981, 4789, 14597, -11656, -12784, -32325, -4991,
   16571, -25984, -5301, -29049, -3200, 27633, -1761, -18105, 12231, -22454,
   28639, -31552, 6461, -2049, -21093, 570, 11450, -17777, 11859, -15668,
   -15421, -29691, 2674, 20438, -27897, -14472, 30285, -20602, 12515, -115}; 
 
short b[100] = 
  {-22811, 22150, -8315, -3498, 11633, -30113, 12775, -7361, -1075, -19230,
   14189, -22370, 6128, 12559, 156, 5044, -2867, -21690, -15691, 988,
   -4141, -26432, 25396, -6898, -11411, -18670, -3501, 12383, 22401, -26449,
   11399, -6274, -25358, 4965, -1536, 6711, -19936, -12579, -4053, 25586,
   4709, -18147, -12750, 27186, 9112, -27896, 376, 25368, -18548, 26074,
   8479, -29217, -29296, 1199, 29316, -19616, -12306, -28165, 25792, -21106,
   -27538, -1263, 5415, -8455, 24019, 31134, -13109, -18867, -26022, 4653,
   32759, 12242, 9280, 6051, 19638, 20972, -16069, -22846, 332, -20236,
   -22786, 10152, -26950, -5127, -4424, -11953, -20676, 11968, 9875, 9229,
   7629, -20541, -15305, 28180, 23711, 12915, -22201, 18673, 5541, -31142};
 
int ret_asm, ret_sa;

clock_t time_asm  (int *);
clock_t time_sa   (int *);

/****************************************************************************/
/* TOP LEVEL DRIVER FOR THE TEST.                                           */
/****************************************************************************/
int main()
{
    clock_t t_overhead, t_start, t_stop, t_asm, t_sa;
 
    /************************************************************************/
    /* COMPUTE THE OVERHEAD OF CALLING CLOCK TWICE TO GET TIMING INFO.      */
    /************************************************************************/
    t_start    = clock();
    t_stop     = clock();
    t_overhead = t_stop - t_start;

    /************************************************************************/
    /* CALL THE INDIVIDIUAL TIMING ROUTINES.                                */
    /************************************************************************/
    t_asm  = time_asm(&ret_asm)   - t_overhead;
    t_sa   = time_sa(&ret_sa)     - t_overhead;

    /************************************************************************/
    /* PRINT TIMING RESULTS                                                 */ 
    /************************************************************************/ 
    printf("DOT_PRODUCT2 Assembly Clock Cycles:           %d\n", t_asm);
    printf("DOT_PRODUCT2 Assembly Optimizer Clock Cycles: %d\n", t_sa);

}

/****************************************************************************/
/* COMPUTE THE ELAPSED TIME OF THE HAND CODED ASSEMBLY ROUTINE              */
/****************************************************************************/
clock_t time_asm(int *i)
{
    clock_t t_start, t_stop;

    t_start = clock();
    *i      = dotp_asm(a, b);
    t_stop  = clock();
    return  t_stop - t_start;
}

/****************************************************************************/
/* COMPUTE THE ELAPSED TIME OF THE ASSEMBLY OPTIMIZER ROUTINE               */
/****************************************************************************/
clock_t time_sa(int *i)
{
    clock_t t_start, t_stop;

    t_start = clock();
    *i      = dotp_sa(a, b);
    t_stop  = clock();
    return  t_stop - t_start;
}

/*Sample C code
int dotp_c(const short a[], const short b[])
{
    int sum0, sum1, sum;
    int i;

    sum0 = 0;
    sum1 = 0;
    for(i=0; i<100; i+=2)
    {
        sum0 += (a[i] * b[i]);
        sum1 += (a[i+1] * b[i+1]);
    }
    sum = sum0 + sum1;
    return(sum);
}

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -