GameBoy Advance Multiboot & Dumper
Dependencies: SDFileSystem mbed
crc.cpp@0:66a93ef88e4e, 2014-11-24 (annotated)
- Committer:
- akkera102
- Date:
- Mon Nov 24 13:28:15 2014 +0000
- Revision:
- 0:66a93ef88e4e
1st;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
akkera102 | 0:66a93ef88e4e | 1 | #include "crc.h" |
akkera102 | 0:66a93ef88e4e | 2 | |
akkera102 | 0:66a93ef88e4e | 3 | static uint32_t r; |
akkera102 | 0:66a93ef88e4e | 4 | |
akkera102 | 0:66a93ef88e4e | 5 | uint32_t crcU32n(uint32_t d) |
akkera102 | 0:66a93ef88e4e | 6 | { |
akkera102 | 0:66a93ef88e4e | 7 | uint32_t bit; |
akkera102 | 0:66a93ef88e4e | 8 | |
akkera102 | 0:66a93ef88e4e | 9 | for(bit=0; bit<32; bit++) |
akkera102 | 0:66a93ef88e4e | 10 | { |
akkera102 | 0:66a93ef88e4e | 11 | if((r ^ d) & 0x01) |
akkera102 | 0:66a93ef88e4e | 12 | { |
akkera102 | 0:66a93ef88e4e | 13 | r = (r >> 1) ^ 0x0000c37b; |
akkera102 | 0:66a93ef88e4e | 14 | } |
akkera102 | 0:66a93ef88e4e | 15 | else |
akkera102 | 0:66a93ef88e4e | 16 | { |
akkera102 | 0:66a93ef88e4e | 17 | r = (r >> 1); |
akkera102 | 0:66a93ef88e4e | 18 | } |
akkera102 | 0:66a93ef88e4e | 19 | |
akkera102 | 0:66a93ef88e4e | 20 | d = d >> 1; |
akkera102 | 0:66a93ef88e4e | 21 | } |
akkera102 | 0:66a93ef88e4e | 22 | |
akkera102 | 0:66a93ef88e4e | 23 | return r; |
akkera102 | 0:66a93ef88e4e | 24 | } |
akkera102 | 0:66a93ef88e4e | 25 | |
akkera102 | 0:66a93ef88e4e | 26 | uint32_t crcU32(uint32_t d) |
akkera102 | 0:66a93ef88e4e | 27 | { |
akkera102 | 0:66a93ef88e4e | 28 | crcReset(); |
akkera102 | 0:66a93ef88e4e | 29 | return crcU32n(d); |
akkera102 | 0:66a93ef88e4e | 30 | } |
akkera102 | 0:66a93ef88e4e | 31 | |
akkera102 | 0:66a93ef88e4e | 32 | void crcReset(void) |
akkera102 | 0:66a93ef88e4e | 33 | { |
akkera102 | 0:66a93ef88e4e | 34 | r = 0x0000c387; |
akkera102 | 0:66a93ef88e4e | 35 | } |