aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/mcxa/src/bin/crc.rs74
1 files changed, 63 insertions, 11 deletions
diff --git a/examples/mcxa/src/bin/crc.rs b/examples/mcxa/src/bin/crc.rs
index f963620cc..12c423980 100644
--- a/examples/mcxa/src/bin/crc.rs
+++ b/examples/mcxa/src/bin/crc.rs
@@ -13,27 +13,79 @@ async fn main(_spawner: Spawner) {
13 13
14 defmt::info!("CRC example"); 14 defmt::info!("CRC example");
15 15
16 let buf = b"123456789"; 16 let buf_u8 = [0x00u8, 0x11, 0x22, 0x33];
17 let buf_u16 = [0x0000u16, 0x1111, 0x2222, 0x3333];
18 let buf_u32 = [0x0000_0000u32, 0x1111_1111, 0x2222_2222, 0x3333_3333];
19
20 // CCITT False
21
22 let mut crc = Crc::new_ccitt_false(p.CRC0.reborrow());
23 let sum = crc.feed(&buf_u8);
24 assert_eq!(sum, 0x9627);
17 25
18 let mut crc = Crc::new_ccitt_false(p.CRC0.reborrow()); 26 let mut crc = Crc::new_ccitt_false(p.CRC0.reborrow());
19 let sum = crc.feed(buf); 27 let sum = crc.feed(&buf_u16);
20 assert_eq!(sum, 0x29b1); 28 assert_eq!(sum, 0xa467);
29
30 let mut crc = Crc::new_ccitt_false(p.CRC0.reborrow());
31 let sum = crc.feed(&buf_u32);
32 assert_eq!(sum, 0xe5c7);
33
34 // Maxim
21 35
22 let mut crc = Crc::new_maxim(p.CRC0.reborrow()); 36 let mut crc = Crc::new_maxim(p.CRC0.reborrow());
23 let sum = crc.feed(buf); 37 let sum = crc.feed(&buf_u8);
24 assert_eq!(sum, 0x44c2); 38 assert_eq!(sum, 0x4ff7);
39
40 let mut crc = Crc::new_maxim(p.CRC0.reborrow());
41 let sum = crc.feed(&buf_u16);
42 assert_eq!(sum, 0x2afe);
43
44 let mut crc = Crc::new_maxim(p.CRC0.reborrow());
45 let sum = crc.feed(&buf_u32);
46 assert_eq!(sum, 0x17d7);
47
48 // Kermit
49
50 let mut crc = Crc::new_kermit(p.CRC0.reborrow());
51 let sum = crc.feed(&buf_u8);
52 assert_eq!(sum, 0xccd2);
25 53
26 let mut crc = Crc::new_kermit(p.CRC0.reborrow()); 54 let mut crc = Crc::new_kermit(p.CRC0.reborrow());
27 let sum = crc.feed(buf); 55 let sum = crc.feed(&buf_u16);
28 assert_eq!(sum, 0x2189); 56 assert_eq!(sum, 0x66eb);
57
58 let mut crc = Crc::new_kermit(p.CRC0.reborrow());
59 let sum = crc.feed(&buf_u32);
60 assert_eq!(sum, 0x75ea);
61
62 // ISO HDLC
63
64 let mut crc = Crc::new_iso_hdlc(p.CRC0.reborrow());
65 let sum = crc.feed(&buf_u8);
66 assert_eq!(sum, 0x24c2_316d);
67
68 let mut crc = Crc::new_iso_hdlc(p.CRC0.reborrow());
69 let sum = crc.feed(&buf_u16);
70 assert_eq!(sum, 0x8a61_4178);
29 71
30 let mut crc = Crc::new_iso_hdlc(p.CRC0.reborrow()); 72 let mut crc = Crc::new_iso_hdlc(p.CRC0.reborrow());
31 let sum = crc.feed(buf); 73 let sum = crc.feed(&buf_u32);
32 assert_eq!(sum, 0xcbf4_3926); 74 assert_eq!(sum, 0xfab5_d04e);
75
76 // POSIX
77
78 let mut crc = Crc::new_posix(p.CRC0.reborrow());
79 let sum = crc.feed(&buf_u8);
80 assert_eq!(sum, 0xba8d_7868);
81
82 let mut crc = Crc::new_posix(p.CRC0.reborrow());
83 let sum = crc.feed(&buf_u16);
84 assert_eq!(sum, 0x6d76_4f58);
33 85
34 let mut crc = Crc::new_posix(p.CRC0.reborrow()); 86 let mut crc = Crc::new_posix(p.CRC0.reborrow());
35 let sum = crc.feed(buf); 87 let sum = crc.feed(&buf_u32);
36 assert_eq!(sum, 0x765e_7680); 88 assert_eq!(sum, 0x2a5b_cb90);
37 89
38 defmt::info!("CRC successful"); 90 defmt::info!("CRC successful");
39} 91}