diff options
author | Marti Bolivar <mbolivar@leaflabs.com> | 2011-09-07 16:04:49 -0400 |
---|---|---|
committer | Marti Bolivar <mbolivar@leaflabs.com> | 2011-09-07 23:34:23 -0400 |
commit | d2575d27e944905626f36f926a13a40d4832373e (patch) | |
tree | a4b41148a0f52cb4b9170de9c3db33ae7b5e3874 | |
parent | f2bce4d21302f50e70dc8d00fbb846748749103b (diff) | |
download | librambutan-d2575d27e944905626f36f926a13a40d4832373e.tar.gz librambutan-d2575d27e944905626f36f926a13a40d4832373e.zip |
stm32.h: Remove SRAM_SIZE, prefix all #defines.
Remove SRAM_SIZE define. This seems like a bad idea given that
bootloader builds drop user code at an offset from the SRAM start
address.
Prefix every #define with "STM32_" to avoid polluting the namespace.
Keep and deprecate the remaining ones (except for aforementioned
SRAM_SIZE), but define them to be the same as their prefixed variant.
Take a little extra care to break libmaple builds which specify PCLK1
and PCLK2 instead of the prefixed versions. Some libmaple forks make
use of these; they will break in mysterious ways if they don't handle
this change properly.
-rw-r--r-- | libmaple/stm32.h | 104 |
1 files changed, 63 insertions, 41 deletions
diff --git a/libmaple/stm32.h b/libmaple/stm32.h index 6996154..1fe2b50 100644 --- a/libmaple/stm32.h +++ b/libmaple/stm32.h @@ -42,25 +42,36 @@ #ifdef __DOXYGEN_PREDEFINED_HACK - /** - * \def PCLK1 - * Clock speed of APB1 peripherals, in Hz. - */ - #define PCLK1 + /** @brief APB1 clock speed, in Hz. */ + #define STM32_PCLK1 + /** @brief APB2 clock speed, in Hz. */ + #define STM32_PCLK2 - /** - * \def PCLK2 - * Clock speed of APB2 peripherals, in Hz. - */ + /** Deprecated. Use STM32_PCLK1 instead. */ + #define PCLK1 + /** Deprecated. Use STM32_PCLK2 instead. */ #define PCLK2 #endif +#ifndef STM32_PCLK1 +#define STM32_PCLK1 36000000U +#endif #ifndef PCLK1 -#define PCLK1 36000000U +#define PCLK1 STM32_PCLK1 +#endif +#if PCLK1 != STM32_PCLK1 +#error "(Deprecated) PCLK1 differs from STM32_PCLK1" +#endif + +#ifndef STM32_PCLK2 +#define STM32_PCLK2 72000000U #endif #ifndef PCLK2 -#define PCLK2 72000000U +#define PCLK2 STM32_PCLK2 +#endif +#if PCLK2 != STM32_PCLK2 +#error "(Deprecated) PCLK2 differs from STM32_PCLK2" #endif /* @@ -70,26 +81,28 @@ #ifdef __DOXYGEN_PREDEFINED_HACK /** - * \def NR_INTERRUPTS + * @brief Number of interrupts in the NVIC. * - * Number of interrupts in the NVIC. This define is automatically - * generated whenever the proper density is defined (currently, this - * is restricted to defining one of STM32_MEDIUM_DENSITY and - * STM32_HIGH_DENSITY). + * This define is automatically generated whenever the proper + * density is defined (currently, this is restricted to defining + * one of STM32_MEDIUM_DENSITY and STM32_HIGH_DENSITY). */ + #define STM32_NR_INTERRUPTS + + /** Deprecated. Use STM32_NR_INTERRUPTS instead. */ #define NR_INTERRUPTS #endif #ifdef STM32_MEDIUM_DENSITY - #define NR_INTERRUPTS 43 -#else -#ifdef STM32_HIGH_DENSITY - #define NR_INTERRUPTS 60 + #define STM32_NR_INTERRUPTS 43 +#elif defined(STM32_HIGH_DENSITY) + #define STM32_NR_INTERRUPTS 60 #else #error "No STM32 board type defined!" #endif -#endif + +#define NR_INTERRUPTS STM32_NR_INTERRUPTS /* * MCU-specific configuration. @@ -98,12 +111,9 @@ #ifdef __DOXYGEN_PREDEFINED_HACK /** - * Number of GPIO ports + * Number of GPIO ports. */ - #define NR_GPIO_PORTS - - /* SRAM_SIZE intentionally not documented as I'm not convinced - * it's a good idea [mbolivar]. */ + #define STM32_NR_GPIO_PORTS /** * @brief Multiplier to convert microseconds into loop iterations @@ -111,6 +121,11 @@ * * @see delay_us() */ + #define STM32_DELAY_US_MULT + + /** Deprecated. Use STM32_NR_GPIO_PORTS instead. */ + #define NR_GPIO_PORTS + /** Deprecated. Use STM32_DELAY_US_MULT instead. */ #define DELAY_US_MULT #endif @@ -118,34 +133,41 @@ #if defined(MCU_STM32F103RB) /* e.g., LeafLabs Maple */ - #define NR_GPIO_PORTS 4 - #define SRAM_SIZE 0x5000 - #define DELAY_US_MULT 12 + #define STM32_NR_GPIO_PORTS 4 + #define STM32_DELAY_US_MULT 12 + + #define NR_GPIO_PORTS STM32_NR_GPIO_PORTS + #define DELAY_US_MULT STM32_DELAY_US_MULT #elif defined(MCU_STM32F103ZE) /* e.g., LeafLabs Maple Native */ - #define NR_GPIO_PORTS 7 - #define SRAM_SIZE 0x10000 - #define DELAY_US_MULT 12 + #define STM32_NR_GPIO_PORTS 7 + #define STM32_DELAY_US_MULT 12 + + #define NR_GPIO_PORTS STM32_NR_GPIO_PORTS + #define DELAY_US_MULT STM32_DELAY_US_MULT #elif defined(MCU_STM32F103CB) /* e.g., LeafLabs Maple Mini */ - /* Note that this is not, strictly speaking, true. But only pins - * 0 and 1 exist, and they're used for OSC on the Mini, so we'll - * live with this for now. */ - #define NR_GPIO_PORTS 3 + /* This STM32_NR_GPIO_PORTS value is not, strictly speaking, true. + * But only pins 0 and 1 exist, and they're used for OSC on the + * Mini, so we'll live with this for now. */ + #define STM32_NR_GPIO_PORTS 3 + #define STM32_DELAY_US_MULT 12 - #define SRAM_SIZE 0x5000 - #define DELAY_US_MULT 12 + #define NR_GPIO_PORTS STM32_NR_GPIO_PORTS + #define DELAY_US_MULT STM32_DELAY_US_MULT #elif defined(MCU_STM32F103RE) /* e.g., LeafLabs Maple RET6 edition */ - #define NR_GPIO_PORTS 4 - #define SRAM_SIZE 0x10000 - #define DELAY_US_MULT 12 + #define STM32_NR_GPIO_PORTS 4 + #define STM32_DELAY_US_MULT 12 + + #define NR_GPIO_PORTS STM32_NR_GPIO_PORTS + #define DELAY_US_MULT STM32_DELAY_US_MULT #else |