diff --git a/include/libopencm3/stm32/common/rng_common_f24.h b/include/libopencm3/stm32/common/rng_common_f24.h index fc029af6..dd7efa89 100644 --- a/include/libopencm3/stm32/common/rng_common_f24.h +++ b/include/libopencm3/stm32/common/rng_common_f24.h @@ -1,3 +1,5 @@ +/** @addtogroup rng_file + */ /* * This file is part of the libopencm3 project. * @@ -26,6 +28,8 @@ specific memorymap.h header before including this header file.*/ #ifndef LIBOPENCM3_RNG_COMMON_F24_H #define LIBOPENCM3_RNG_COMMON_F24_H +/**@{*/ + /* --- Random number generator registers ----------------------------------- */ /* Control register */ @@ -62,6 +66,17 @@ specific memorymap.h header before including this header file.*/ /* Seed error interrupt status */ #define RNG_SR_SEIS (1 << 6) +/* --- Function prototypes ------------------------------------------------- */ + +BEGIN_DECLS + +void rng_enable(void); +void rng_disable(void); + +END_DECLS + +/**@}*/ + #endif /** @cond */ #else diff --git a/include/libopencm3/stm32/rng.h b/include/libopencm3/stm32/rng.h new file mode 100644 index 00000000..5821062c --- /dev/null +++ b/include/libopencm3/stm32/rng.h @@ -0,0 +1,27 @@ +/* This provides unification of code over STM32 subfamilies */ + +/* + * This file is part of the libopencm3 project. + * + * This library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library. If not, see . + */ + +#include +#include + +#if defined(STM32F4) +# include +#else +# error "stm32 family not defined." +#endif diff --git a/lib/stm32/f4/Makefile b/lib/stm32/f4/Makefile index 5e4c4438..a99413e6 100644 --- a/lib/stm32/f4/Makefile +++ b/lib/stm32/f4/Makefile @@ -39,7 +39,7 @@ TGT_CFLAGS += $(DEBUG_FLAGS) ARFLAGS = rcs OBJS = adc.o adc_common_v1.o can.o desig.o gpio.o pwr.o rcc.o \ - rtc.o crypto.o + rtc.o crypto.o rng.o OBJS += crc_common_all.o dac_common_all.o dma_common_f24.o \ gpio_common_all.o gpio_common_f0234.o i2c_common_all.o \ diff --git a/lib/stm32/f4/rng.c b/lib/stm32/f4/rng.c new file mode 100644 index 00000000..2f781760 --- /dev/null +++ b/lib/stm32/f4/rng.c @@ -0,0 +1,52 @@ +/** @defgroup rng_file RNG + * + * @ingroup STM32F4xx + * + * @brief libopencm3 STM32F4xx RNG + * + * @version 1.0.0 + * + * @date 25 March 2015 + * + * This library supports the random number generator peripheral (RNG) in the + * STM32F4 series of ARM Cortex Microcontrollers by ST Microelectronics. + * + *LGPL License Terms @ref lgpl_license + */ + +/* + * This file is part of the libopencm3 project. + * + * This library is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library. If not, see . + */ + +#include + +/**@{*/ + +/** Disable the Random Number Generator peripheral. +*/ +void rng_disable(void) +{ + RNG_CR &= ~RNG_CR_RNGEN; +} + +/** Enable the Random Number Generator peripheral. +*/ +void rng_enable(void) +{ + RNG_CR |= RNG_CR_RNGEN; +} + +/**@}*/