diff options
| -rw-r--r-- | examples/mcxa/src/bin/crc.rs | 74 |
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 | } |
