Skip to content

Commit 58affed

Browse files
committed
Fix crc32() proto
1 parent c2f5387 commit 58affed

3 files changed

Lines changed: 5 additions & 4 deletions

File tree

examples/checksum/crc32.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
#define CRC32_POLY 0x04C11DB7
44

5-
uint32_t crc32(uint32_t crc, uint32_t const* start_addr, uint32_t const* end_addr)
5+
uint32_t crc32(uint32_t crc, uint32_t const* start_addr, uint32_t const* checksum_addr)
66
{
77
const uint32_t crc32NibbleLUT[16] = {
88
0x00000000,CRC32_POLY,0x09823B6E,0x0D4326D9,
99
0x130476DC,0x17C56B6B,0x1A864DB2,0x1E475005,
1010
0x2608EDB8,0x22C9F00F,0x2F8AD6D6,0x2B4BCB61,
1111
0x350C9B64,0x31CD86D3,0x3C8EA00A,0x384FBDBD, };
1212

13-
for (const uint32_t* ptr = start_addr; ptr < end_addr; ptr++) {
13+
for (const uint32_t* ptr = start_addr; ptr < checksum_addr; ptr++) {
1414
crc = crc ^ *ptr;
1515
/* 8 rounds * 4-bit(nibble) = 32 bit(word) */
1616
crc = (crc << 4) ^ crc32NibbleLUT[crc >> 28];

examples/checksum/crc32.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
typedef unsigned long uint32_t;
44
typedef char uint8_t;
55

6-
uint32_t crc32(uint32_t crc, uint32_t const* start_addr, uint32_t const* end_addr);
6+
uint32_t crc32(uint32_t crc, uint32_t const* start_addr, uint32_t const* checksum_addr);
77

examples/checksum/main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ void main()
1818
// Print out the checksum calculated by crc32()
1919
printf(" crc32() checksum: 0x%08X\n", crc);
2020

21-
// Validate the checksum before
21+
// Validate the application integrity at initialization
2222
if (crc == __checksum)
2323
{
2424
printf(" Checksum-test: PASS");
2525
} else {
2626
printf(" Checksum-test: FAIL");
27+
2728
// Add countermeasures for integrity failure
2829
}
2930

0 commit comments

Comments
 (0)