diff --git a/include/libopencm3/stm32/common/crc_common_all.h b/include/libopencm3/stm32/common/crc_common_all.h index 99af39a9..7dfeca52 100644 --- a/include/libopencm3/stm32/common/crc_common_all.h +++ b/include/libopencm3/stm32/common/crc_common_all.h @@ -37,7 +37,13 @@ specific memorymap.h header before including this header file.*/ #include -/* --- CRC registers ------------------------------------------------------- */ +/*****************************************************************************/ +/* Module definitions */ +/*****************************************************************************/ + +/*****************************************************************************/ +/* Register definitions */ +/*****************************************************************************/ /* Data register (CRC_DR) */ #define CRC_DR MMIO32(CRC_BASE + 0x00) @@ -48,6 +54,10 @@ specific memorymap.h header before including this header file.*/ /* Control register (CRC_CR) */ #define CRC_CR MMIO32(CRC_BASE + 0x08) +/*****************************************************************************/ +/* Register values */ +/*****************************************************************************/ + /* --- CRC_DR values ------------------------------------------------------- */ /* Bits [31:0]: Data register */ @@ -65,7 +75,13 @@ specific memorymap.h header before including this header file.*/ /* RESET bit */ #define CRC_CR_RESET (1 << 0) -/* --- CRC function prototypes --------------------------------------------- */ +/*****************************************************************************/ +/* API definitions */ +/*****************************************************************************/ + +/*****************************************************************************/ +/* API Functions */ +/*****************************************************************************/ BEGIN_DECLS diff --git a/include/libopencm3/stm32/f0/crc.h b/include/libopencm3/stm32/f0/crc.h index 4c1ee9bb..efa1380c 100644 --- a/include/libopencm3/stm32/f0/crc.h +++ b/include/libopencm3/stm32/f0/crc.h @@ -45,11 +45,18 @@ /* Register definitions */ /*****************************************************************************/ +/* Initial CRC Value */ +#define CRC_INIT MMIO32(CRC_BASE + 0x10) + +/* CRC Polynomial */ +#define CRC_POL MMIO32(CRC_BASE + 0x14) + /*****************************************************************************/ /* Register values */ /*****************************************************************************/ #define CRC_CR_REV_OUT (1 << 7) + #define CRC_CR_REV_IN_SHIFT 5 #define CRC_CR_REV_IN (3 << CRC_CR_REV_IN_SHIFT) #define CRC_CR_REV_IN_NONE (0 << CRC_CR_REV_IN_SHIFT) @@ -57,6 +64,16 @@ #define CRC_CR_REV_IN_HALF (2 << CRC_CR_REV_IN_SHIFT) #define CRC_CR_REV_IN_WORD (3 << CRC_CR_REV_IN_SHIFT) +#define CRC_CR_POLYSIZE_SHIFT 3 +#define CRC_CR_POLYSIZE (3 << CRC_CR_POLYSIZE_SHIFT) +#define CRC_CR_POLYSIZE_32BIT (0 << CRC_CR_POLYSIZE_SHIFT) +#define CRC_CR_POLYSIZE_16BIT (1 << CRC_CR_POLYSIZE_SHIFT) +#define CRC_CR_POLYSIZE_8BIT (2 << CRC_CR_POLYSIZE_SHIFT) +#define CRC_CR_POLYSIZE_7BIT (3 << CRC_CR_POLYSIZE_SHIFT) + +/* Default polynomial */ +#define CRC_POL_DEFAULT 0x04C11DB7 + /*****************************************************************************/ /* API definitions */ /*****************************************************************************/