diff options
author | Marti Bolivar <mbolivar@leaflabs.com> | 2011-11-28 23:21:21 -0500 |
---|---|---|
committer | Marti Bolivar <mbolivar@leaflabs.com> | 2012-04-11 16:56:52 -0400 |
commit | ea175caf4bbcc3b32c161dd52cb773fa8fdba707 (patch) | |
tree | 30f8e83af3422876e997a6355c41bbb3f4ca1205 /libmaple | |
parent | a614806f9a02967bf1b91561dcb3d02a2f735c66 (diff) | |
download | librambutan-ea175caf4bbcc3b32c161dd52cb773fa8fdba707.tar.gz librambutan-ea175caf4bbcc3b32c161dd52cb773fa8fdba707.zip |
libmaple/flash: Add family-specific FLASH_SAFE_WAIT_STATES.
This is the smallest wait state value that is safe for use when the
MCU is at its fastest rate, not considering overclocking. This
requires moving the FLASH_WAIT_STATE defines above the family include,
so do that, and add the missing #defines (for wait states up to 7).
For the STM32F1, the correct value for FLASH_SAFE_WAIT_STATES is
FLASH_WAIT_STATE_2; say so in the F1-family flash.h.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
Diffstat (limited to 'libmaple')
-rw-r--r-- | libmaple/include/libmaple/flash.h | 19 | ||||
-rw-r--r-- | libmaple/stm32f1/include/family/flash.h | 9 |
2 files changed, 22 insertions, 6 deletions
diff --git a/libmaple/include/libmaple/flash.h b/libmaple/include/libmaple/flash.h index 01d45f5..66d5b8e 100644 --- a/libmaple/include/libmaple/flash.h +++ b/libmaple/include/libmaple/flash.h @@ -36,16 +36,25 @@ extern "C"{ #endif -#include <family/flash.h> #include <libmaple/libmaple_types.h> -/* - * Setup routines - */ - #define FLASH_WAIT_STATE_0 0x0 #define FLASH_WAIT_STATE_1 0x1 #define FLASH_WAIT_STATE_2 0x2 +#define FLASH_WAIT_STATE_3 0x3 +#define FLASH_WAIT_STATE_4 0x4 +#define FLASH_WAIT_STATE_5 0x5 +#define FLASH_WAIT_STATE_6 0x6 +#define FLASH_WAIT_STATE_7 0x7 + +/* The family header must define FLASH_SAFE_WAIT_STATES, the smallest + * number of wait states that it is safe to use when the MCU clock is + * at its fastest rate (not considering overclocking). */ +#include <family/flash.h> + +/* + * Setup routines + */ void flash_enable_prefetch(void); void flash_set_latency(uint32 wait_states); diff --git a/libmaple/stm32f1/include/family/flash.h b/libmaple/stm32f1/include/family/flash.h index aedb326..918a434 100644 --- a/libmaple/stm32f1/include/family/flash.h +++ b/libmaple/stm32f1/include/family/flash.h @@ -29,7 +29,8 @@ * @brief STM32F1 Flash header. * * Provides register map, base pointer, and register bit definitions - * for the Flash controller on the STM32F1 line. + * for the Flash controller on the STM32F1 line, along with + * family-specific configuration values. */ #ifndef _LIBMAPLE_STM32F1_FLASH_H_ @@ -128,6 +129,12 @@ typedef struct flash_reg_map { #define FLASH_OBR_RDPRT BIT(FLASH_OBR_RDPRT_BIT) #define FLASH_OBR_OPTERR BIT(FLASH_OBR_OPTERR_BIT) +/* + * Family-specific configuration values. + */ + +#define FLASH_SAFE_WAIT_STATES FLASH_WAIT_STATE_2 + #ifdef __cplusplus } #endif |