?? crc_main.lst
字號:
##############################################################################
# #
# IAR MSP430 C Compiler V2.21B/W32 [Kickstart] 17/Aug/2004 19:24:48 #
# Copyright 1996-2003 IAR Systems. All rights reserved. #
# #
# __rt_version = 1 #
# __double_size = 32 #
# __reg_r4 = free #
# __reg_r5 = free #
# __pic = no #
# Source file = C:\Program Files\IAR Systems\Embedded Workbench #
# 3.2\myProjects\CRC\src\crc_main.c #
# Command line = -I "C:\Program Files\IAR Systems\Embedded Workbench #
# 3.2\430\INC\" -I "C:\Program Files\IAR #
# Systems\Embedded Workbench 3.2\430\INC\CLIB\" -lc #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 3.2\myProjects\CRC\MSP430\Debug\List\" -o "C:\Program #
# Files\IAR Systems\Embedded Workbench #
# 3.2\myProjects\CRC\MSP430\Debug\Obj\" -s9 --no_cse #
# --no_unroll --no_inline --no_code_motion --debug -e #
# --double=32 "C:\Program Files\IAR Systems\Embedded #
# Workbench 3.2\myProjects\CRC\src\crc_main.c" #
# List file = C:\Program Files\IAR Systems\Embedded Workbench #
# 3.2\myProjects\CRC\MSP430\Debug\List\crc_main.lst #
# Object file = C:\Program Files\IAR Systems\Embedded Workbench #
# 3.2\myProjects\CRC\MSP430\Debug\Obj\crc_main.r43 #
# #
# #
##############################################################################
C:\Program Files\IAR Systems\Embedded Workbench 3.2\myProjects\CRC\src\crc_main.c
1
2 /**********************************************************************************
3 NAME: main
4 FUNCTION: CRC test bench
5 AUTHOR: Emil Lenchak
6 DATE: March, 2004
7 COPYRIGHT: Texas Instruments, 2004
8 TOOLS: Built with IAR Kickstart V2/MS Visual C++ 6.0
9 ***********************************************************************************/
10
11 #ifdef __ICC430__
12 #include "msp430x16x.h"
13 #endif
14
15 #ifdef WIN32
16 #include "conio.h"
17 #endif
18
19 #include "stdio.h"
20 #include "..\inc\crc.h"
21
22 /*************************
23 PROTOTYPES
24 *************************/
25
26 #ifdef __cplusplus
27 extern "C"
28 {
29 #endif
30
31 void msp430Init(void);
32
33 unsigned short crc16MakeBitwise(unsigned short, unsigned short, unsigned char*, unsigned int);
34 unsigned short crc16MakeBitwise2(unsigned short, unsigned short, unsigned char*, unsigned int);
35 unsigned short __crc16MakeBitwise(unsigned short, unsigned short, unsigned char*, unsigned int);
36 unsigned short __crc16rMakeBitwise(unsigned short, unsigned short, unsigned char*, unsigned int);
37
38 unsigned long crc32MakeBitwise(unsigned long, unsigned long, unsigned char*, unsigned int);
39 unsigned long crc32MakeBitwise2(unsigned long, unsigned long, unsigned char*, unsigned int);
40 unsigned long __crc32MakeBitwise(unsigned long, unsigned long, unsigned char*, unsigned int);
41 unsigned long __crc32rMakeBitwise(unsigned long, unsigned long, unsigned char*, unsigned int);
42
43 unsigned short crc16MakeTableMethod(unsigned short, TBL_MEM unsigned short*, unsigned char *, unsigned int);
44 unsigned short crc16rMakeTableMethod(unsigned short, TBL_MEM unsigned short*, unsigned char *, unsigned int);
45 unsigned short __crc16MakeTableMethod(unsigned short, TBL_MEM unsigned short*, unsigned char*, unsigned int);
46 //unsigned short __crc16rMakeTableMethod(unsigned short, TBL_MEM unsigned short*, unsigned char*, unsigned int);
47
48 unsigned long crc32MakeTableMethod(unsigned long, TBL_MEM unsigned long*, unsigned char*, unsigned int);
49 unsigned long crc32rMakeTableMethod(unsigned long, TBL_MEM unsigned long*, unsigned char*, unsigned int);
50 unsigned long __crc32MakeTableMethod(unsigned long, TBL_MEM unsigned long*, unsigned char*, unsigned int);
51 //unsigned long __crc32rMakeTableMethod(unsigned long, TBL_MEM unsigned long*, unsigned char*, unsigned int);
52
53 void crc16BuildTable(unsigned short*, unsigned short);
54 void crc32BuildTable(unsigned long*, unsigned long);
55 void crcDumpTableToFile(char*, void*, int, int);
56
57 unsigned long bitReflect(unsigned long, unsigned int);
58
59 #ifdef __cplusplus
60 }
61 #endif
62
63 /*************************
64 EXTERNALS
65 *************************/
66
67 extern TBL_MEM unsigned short crc16Table[CRC_TABLE_SIZE];
68 extern TBL_MEM unsigned long crc32Table[CRC_TABLE_SIZE];
69 extern TBL_MEM unsigned short crc16rTable[CRC_TABLE_SIZE];
70 extern TBL_MEM unsigned long crc32rTable[CRC_TABLE_SIZE];
71
72 /*************************
73 GLOBALS
74 *************************/
75
76 unsigned char msg[CRC_MSG_MAXSIZE] = CRC_TEST_SEQ;
77
78 /*************************
79 MAIN
80 *************************/
81
82 int main(int argc, char* argv[])
83 {
84 int i;
^
Warning[Pe177]: variable "i" was declared but never referenced
85 unsigned int length;
86 unsigned long crc32;
87 unsigned short crc16;
88
89 #ifdef __ICC430__
90 msp430Init();
91 #endif
92
93 length = sizeof(CRC_TEST_SEQ)-1;
94
95 printf("\nMessage: %s\n\n", msg);
96
97 #ifdef WIN32 // dynamically build tables in console app
98 crc16BuildTable(crc16Table, CRC16_POLY);
99 crc32BuildTable(crc32Table, CRC32_POLY);
100
101 for(i = 0 ; i < CRC_TABLE_SIZE ; i++) // reflect normal tables
102 {
103 crc16rTable[bitReflect(i, 8)] = (unsigned short)bitReflect(crc16Table[i], 16);
104 crc32rTable[bitReflect(i, 8)] = (unsigned long)bitReflect(crc32Table[i], 32);
105 }
106
107 // dump tables to files
108 crcDumpTableToFile("crc16Table.txt", crc16Table, CRC_TABLE_SIZE, 16);
109 crcDumpTableToFile("crc32Table.txt", crc32Table, CRC_TABLE_SIZE, 32);
110 crcDumpTableToFile("crc16rTable.txt", crc16rTable, CRC_TABLE_SIZE, 16);
111 crcDumpTableToFile("crc32rTable.txt", crc32rTable, CRC_TABLE_SIZE, 32);
112 #endif // WIN32
113
114 // calculate CRC brute force alg (optimized implementation for C)
115 crc16 = crc16MakeBitwise(CRC16_INIT_REM, CRC16_POLY, msg, length);
116 printf("CRC16_bit: 0x%X(N)\n", crc16);
117
118 // calculate CRC brute force alg version #2 (same implementation as assembly routine)
119 crc16 = crc16MakeBitwise2(CRC16_INIT_REM, CRC16_POLY, msg, length);
120 printf("CRC16_bit: 0x%X(N)\n", crc16);
121
122 #ifdef __ICC430__
123 // calculate CRC brute force alg in assembly
124 crc16 = __crc16MakeBitwise(CRC16_INIT_REM, CRC16_POLY, msg, length);
125 printf("CRC16_asm: 0x%X(N)\n", crc16);
126
127 // calculate reflected CRC brute force alg in assembly
128 crc16 = __crc16rMakeBitwise(CRC16R_INIT_REM, CRC16R_POLY, msg, length);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -