POSSIBILITY OF SUCH DAMAGE.
The license and distribution terms for any
publically available version or derivative of
this code cannot be changed. i.e. this code
cannot simply be copied and put under
another distribution license [including the
GNU Public License.]
--------------------------------------------------------
CRC utility
COPYRIGHT (C) 1986 Gary S. Brown. You
may use this program, or code or tables
extracted from it, as desired without
restriction.
First, the polynomial itself and its table of
feedback terms. The polynomial is +X^1
1+X^10+X^8+X^7+X^5+X^4+X^2+X^
1+X^0
Note that we take it "backwards" and put
the highest-order term in the lowest-order
bit. The X^32 term is "implied"; the LSB is
the X^31 term, etc. The X^0 term (usually
shown as "+1") results in the MSB being 1
Note that the usual hardware shift register
implementation, which is what we're
using (we're merely optimizing it by
doing eight-bit chunks at a time) shifts
bits into the lowest-order term. In our
implementation, that means shifting
towards the right. Why do we do it this
way? Because the calculated CRC must be
transmitted in order from highest-order
term to lowest-order term. UARTs transmit
characters in order from LSB to MSB. By
storing the CRC this way we hand it to the
UART in the order low-byte to high-byte;
the UART sends each low-bit to hight-bit;
and the result is transmission bit by bit
from highest- to lowest-order term without
requiring any bit shuffling on our part.
Reception works similarly
The feedback terms table consists of 256,
32-bit entries. Notes
The table can be generated at runtime if
desired; code to do so is shown later. It
might not be obvious, but the feedback
terms simply represent the results of eight
shift/xor operations for all combinations of
data and CRC register values
The values must be right-shifted by eight
42
| Português
bits by the "updcrc logic; the shift must
be unsigned (bring in zeroes). On some
hardware you could probably optimize
the shift in assembler by using byte-swap
instructions polynomial $edb88320
CRC32 code derived from work by Gary S.
Brown.
--------------------------------------------------------
Sobre o Software Open Source incluído
no software de visualização
Este software de visualização inclui alguns
softwares open source ou outro software
originários de outros fornecedores que
estão sujeitos à GNU General Public
License versão 3 (GPLv3) e a proprietários
de direitos de autor, isenções de
responsabilidade e avisos diferentes. O
código fonte do software licenciado sob
GPLv3 e licenças de direitos de autor,
isenções de responsabilidade e avisos
diferentes são distribuídos no website
abaixo,
http://www.kenwood.com/gpl
Avisos importantes sobre software
Este produto utiliza componentes de software
(software licenciado) de acordo com os
acordos de licença de software concedidos
por terceiros. Para obter mais informações,
consulte as informações de suporte para este
produto em
http://www.kenwood.com/cs/ce/.