一段原文文档如下(校验CRC):
CRC is a typical implementation of 'Cyclic Redundant Check' and is computed starting from 'Node-TX' up to the byte preceding 'Crc-High'.
In the following it is shown an example of the call to the routine 'Crc-Msg' which computes and returns actual CRC of message 'msg' made if 'num_bytes' bytes relying on 'table_crc' lookup table for faster computaion: 
  'uw','uw2'  =General Purpose Word variables
  'crc'       =CRC Word variable
  'net.num_tx'=Full Message Length(including STX and ETX)
  'net.msg_tx'=Message
  0           =Starting CRC value......
uw =Crc_Msg(0,(UWORD)(net.num_tx-4),&net.msg_tx[1]);
net.msg_tx[net.num_tx-3]=HIBYTE(uw);
net.msg_tx[net.num_tx-2]=LOBYTE(uw);
......
UWORD Crc_Msg(UWORD crc,UWORD nmu_bytes,UBYTE *msg)
/*
  Returns CRC computed on ''num_bytes'' of ''msg'' starting from the initial value ''crc''
*/
{
  for (uw2=0;uw2<num_bytes;uw2++)
    crc=table_crc[msg[uw2] ^ HIBYTE(crc)] ^ LOBYTE(crc) <<8;
  return(crc);
}const UWORD table_crc[256]=
{0x0000,0x1021..........
};