From 853e613769087a4bf67023e42f7fc4f3b92339fb Mon Sep 17 00:00:00 2001 From: Robin Krahl Date: Wed, 20 Feb 2019 23:13:38 +0000 Subject: Split struct Crc into trait Crc and struct Stm32Crc There are different ways to implement the CRC check: For testing, we might want to calulate the CRC in the software. On STM32 MCUs, we want to use the CRC peripheral. This patch splits the struct Crc into the Crc trait and the Stm32Crc struct implementing Crc using the CRC peripheral. The Nitrokey struct can now accept any Crc implementation. --- src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 7e364ab..eb01dd6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,7 +19,7 @@ use hal::prelude::*; use stm32f103xx_usb::UsbBus; use usb_device::class::UsbClass; -use crate::crc::Crc; +use crate::crc::Stm32Crc; use crate::device::Nitrokey; use crate::hid::HidClass; @@ -28,7 +28,7 @@ fn main() -> ! { let p = hal::stm32::Peripherals::take().unwrap(); p.RCC.ahbenr.modify(|_, w| w.crcen().set_bit()); - let crc = Crc::new(p.CRC); + let crc = Stm32Crc::new(p.CRC); let mut flash = p.FLASH.constrain(); let mut rcc = p.RCC.constrain(); -- cgit v1.2.1