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

📄 crc_main.lst

📁 用TI单片机MSP430系列写的CRC检验程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# 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);

⌨️ 快捷键说明

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