dsp_w_vec_d.c
来自「dm642函数库」· C语言 代码 · 共 159 行
C
159 行
/* ======================================================================== *//* TEXAS INSTRUMENTS, INC. *//* *//* NAME *//* DSP_w_vec_d.c -- Example file for DSP_w_vec *//* *//* USAGE *//* This file contains code for demonstrating the C64x DSPLIB *//* DSP_w_vec function. All inputs to the function contain random *//* data. The assembly version of DSP_w_vec is called and the output *//* is compared with the reference C code using mem_compare() in *//* support.c. *//* ------------------------------------------------------------------------ *//* Copyright (C) 2003 Texas Instruments, Incorporated. *//* All Rights Reserved. *//* ======================================================================== */ #include <stdio.h> #include <stdlib.h>/* Header file for the memory compare function */int mem_compare(const void *ptr1, const char *name1, const void *ptr2, const char *name2, int len);/* Header file for the DSPLIB function */#include "DSP_w_vec.h" /* Header file for the C function */void DSP_w_vec_c(const short * x, const short * y, short m, short * r, short nr);/* ======================================================================== *//* DSPLIB function-specific alignments. Refer to the *//* TMS320C64x DSP Library Programmer's Reference for details. *//* ======================================================================== */#pragma DATA_ALIGN(x, 8);#pragma DATA_ALIGN(y, 8);/* ======================================================================== *//* Constant dataset. *//* ======================================================================== */#define N (256)/* ======================================================================== *//* Initialize arrays with random test data. *//* ======================================================================== */int test = 0;const short x[N] = { 0x251A, -0x551F, 0x0A7A, 0x5E5C, 0x1A46, -0x346F, 0x3A1B, -0x636A, 0x392F, 0x0368, 0x7D5D, -0x204A, 0x518C, 0x7DCC, 0x0EBB, -0x3060, 0x425E, -0x1032, -0x3C40, -0x62B1, -0x7717, -0x165F, 0x1C86, -0x3F4C, 0x7FD7, -0x61B8, 0x5B8C, -0x5797, -0x5BB7, 0x2942, 0x2B33, -0x0074, 0x4806, -0x497B, 0x6A12, 0x1101, -0x52FC, -0x669F, 0x5787, 0x3FB2, -0x4C1B, 0x5B1A, 0x0AB7, -0x526A, 0x33EA, 0x4A46, 0x3036, 0x516F, 0x7370, 0x7FE0, -0x4F22, -0x09E8, -0x6C04, 0x6E4D, 0x6252, 0x52BD, -0x565C, 0x6D33, 0x6284, 0x363E, 0x626D, -0x49AF, -0x4AD6, -0x3D6B, -0x3F5F, -0x227F, -0x2597, -0x706E, -0x1F94, -0x53CB, -0x0FE3, 0x7273, -0x4DD3, -0x2045, 0x72CE, 0x58D9, -0x4941, 0x68C3, 0x09C2, -0x4BD7, -0x493A, 0x1244, -0x6577, 0x27A8, 0x09E9, 0x085D, 0x5FC4, -0x2966, -0x6E07, 0x6EE0, -0x1F62, -0x17D5, 0x4418, 0x7193, 0x1EE5, -0x3BD9, 0x7A74, -0x207C, 0x1EBC, -0x575E, -0x1E93, -0x5B86, -0x1F0A, -0x7FAA, -0x2C79, -0x7185, 0x2692, 0x1A35, -0x1C6E, -0x093C, -0x7D15, 0x5664, -0x518C, -0x7CB1, 0x6E73, 0x663E, -0x5B3F, -0x02EC, -0x400B, -0x39C0, -0x6B06, -0x4918, 0x7CCF, 0x7E8C, -0x0083, -0x0D6B, 0x7021, -0x3E4F, -0x560D, 0x37EF, -0x5758, 0x1C86, 0x145A, 0x7DED, -0x61FD, 0x2033, -0x1246, 0x6A22, -0x7A60, 0x7F88, 0x20FC, -0x5523, 0x6CFE, 0x2884, 0x0766, -0x5BA3, -0x4FD1, 0x3A5F, 0x4979, -0x239B, -0x6410, -0x5553, -0x4F93, -0x6BAF, 0x0753, -0x5BC7, -0x7A1C, 0x0D0A, 0x0976, 0x6EAE, -0x4C7C, 0x1D91, 0x5449, 0x0013, 0x358B, -0x5AF3, -0x588C, -0x52EB, 0x12E0, 0x1C59, 0x44FE, 0x2101, 0x65F3, 0x7D9F, -0x4FAA, -0x2EFE, -0x35F1, -0x5B44, 0x1262, -0x0562, 0x1D17, 0x64DB, -0x77BB, 0x0A50, 0x7AB6, -0x15DF, -0x36C0, -0x6EBD, -0x4A2D, -0x5FBC, -0x7161, 0x1D06, 0x146E, -0x0920, -0x0DE9, -0x106A, 0x72B3, 0x64A2, 0x5214, 0x715A, -0x6613, -0x5A65, -0x41E0, -0x3170, -0x7687, 0x47B3, 0x153E, 0x7D02, -0x19C9, 0x3258, 0x1CDF, 0x47D9, -0x302A, 0x02DB, 0x49DC, -0x500D, 0x6594, -0x1B34, 0x04A5, 0x4E35, 0x69DC, -0x6EE8, -0x685F, 0x5C08, -0x57CF, -0x37C4, 0x2CEF, 0x7872, 0x0874, 0x00D1, -0x7ECD, -0x7F80, -0x40BC, -0x4EB3, -0x3B3C, -0x7BDE, 0x331B, -0x404E, 0x00FE, -0x1D30, 0x5E7A, -0x274C, 0x643E, 0x0D59, -0x643B, 0x4CB9, -0x5976, -0x495F, -0x33D1, -0x7DEB, 0x28BF, 0x1074, 0x6578, 0x76C3, -0x59AB, -0x047F};const short y[N] = { -0x1F3C, 0x1DB3, 0x39C8, 0x48EE, -0x285B, 0x3655, -0x3D79, -0x5FBF, 0x48DB, 0x067A, 0x5F1A, -0x27CA, -0x1C2D, 0x622D, -0x4381, -0x0D49, -0x5416, 0x0F9D, -0x1AA5, 0x7E6D, -0x67A2, 0x0A23, -0x101A, -0x09FC, 0x59E6, -0x7E3D, 0x3DB5, 0x4218, -0x637E, 0x6238, -0x1E30, 0x0F72, 0x6E3E, -0x182F, -0x115B, -0x6153, 0x77DB, 0x753C, 0x4B93, -0x34A1, -0x47A5, 0x7FAF, -0x0042, 0x382B, -0x6749, -0x3596, -0x36E5, -0x3B4F, -0x37A2, -0x70D5, -0x1EB6, -0x681B, -0x4C6E, 0x475E, -0x6720, 0x34C7, 0x2772, 0x1BCC, 0x0773, -0x591F, 0x57C9, 0x596B, 0x122E, 0x59E4, -0x2F96, -0x2817, -0x64D5, 0x7B54, 0x499E, 0x62C7, 0x6010, -0x474D, -0x6E2A, 0x2F88, -0x54F8, -0x6D13, -0x6CF1, -0x17A8, -0x53FC, 0x237E, 0x65E9, 0x5084, -0x1BC6, -0x6101, -0x0C2A, -0x1222, -0x7A66, -0x5690, 0x42C2, 0x1D57, 0x570A, 0x19B3, -0x46C7, -0x06F2, 0x6E42, -0x55AD, 0x53BF, -0x4A8F, 0x4571, 0x0FE1, 0x06E5, 0x29D4, -0x632C, -0x020B, 0x247E, 0x1053, -0x5EDA, -0x2998, -0x42CB, -0x54C8, -0x382E, 0x5C8A, -0x2B08, -0x3121, 0x4CD0, 0x2346, 0x72A4, 0x68AC, 0x74FC, 0x573B, -0x19D1, -0x25D4, 0x1927, -0x7FE3, 0x1C22, -0x45BB, -0x6565, -0x52C0, -0x00B6, 0x24D7, -0x5283, -0x0CD6, 0x4841, 0x1664, -0x5C47, 0x3DC8, 0x6EE7, -0x289D, -0x1874, -0x21BD, 0x20DB, -0x7587, -0x4950, -0x4CC1, 0x199D, -0x02A6, -0x0B9B, 0x08D5, -0x660D, -0x2EDB, 0x0F94, -0x4791, 0x1572, 0x7606, -0x72E7, 0x4672, -0x31EC, 0x68CB, 0x7F78, -0x52AD, -0x0F0C, 0x6D65, -0x490D, -0x68F6, -0x6DBC, -0x0C4C, -0x4DF7, -0x1788, 0x7B53, 0x5586, 0x5632, 0x3B73, 0x0521, -0x7DB8, -0x4F56, 0x0926, -0x5881, 0x7E00, 0x70C5, -0x0075, 0x172F, 0x238F, 0x222A, 0x2FAE, -0x0C1F, 0x0849, 0x43EC, 0x0AEA, -0x502E, 0x3C13, 0x5816, -0x3D58, -0x6243, -0x455F, -0x6B8B, 0x77BD, 0x57A3, -0x4B95, -0x6615, 0x0E02, -0x1F7A, -0x03E6, -0x66DC, 0x5410, 0x2A09, -0x12A5, 0x6B9F, 0x3B71, 0x52F2, -0x7557, 0x5AD3, 0x12B0, 0x1021, -0x03FF, 0x7AA1, -0x2735, 0x757C, 0x179C, 0x3E0B, -0x16A8, 0x22E7, 0x1FD2, -0x6E23, -0x0B54, -0x77A9, 0x4DB9, 0x5E34, -0x6D1A, 0x798C, -0x18A4, -0x62B7, -0x3C32, -0x435C, -0x0AB0, -0x5E1B, 0x7900, -0x653D, -0x2994, 0x0B4B, -0x54A6, -0x1B3E, 0x0F13, 0x35A4, -0x557F, 0x1259, 0x621D, -0x1F71, 0x1E91, -0x28C4, -0x0F11, -0x2BFF, -0x1A21, -0x1EBA, -0x6773, -0x200D, -0x2DDF};short m = -0x1C4A;short r_asm[N];short r_c[N];int main(){ /* ======================================================================== *//* Call hand-coded assembly version (located in DSP64x.lib library */ /* archive - see Project -> Build Options -> Linker -> Include Libraries) *//* ======================================================================== */ DSP_w_vec(x, y, m, r_asm, N); /* ======================================================================== *//* Call natural-C version *//* ======================================================================== */ DSP_w_vec_c(x, y, m, r_c, N);/* ======================================================================== *//* Compare outputs using mem_compare() in support.c. If different, *//* mem_compare() displays location of failures. *//* ======================================================================== */ test = mem_compare(r_asm, "r_asm", r_c, "r_c", sizeof(r_c)); if (test == 0) { printf("r_asm vs. r_c"); printf("\nVerification successful.\n"); }}/* ======================================================================== *//* End of file: dsp_w_vec_d.c *//* ------------------------------------------------------------------------ *//* Copyright (C) 2003 Texas Instruments, Incorporated. *//* All Rights Reserved. *//* ======================================================================== */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?