aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/stm32f1/include/series
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2012-04-23 13:30:00 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2012-04-23 13:30:07 -0400
commitc213a1af51dff8655d23c1b66d19533ec35b5265 (patch)
treea3aa8540eac6ec91cf663eda7a7ca92326e01715 /libmaple/stm32f1/include/series
parent5fa30279b80cd9ae401f61a127a33034b241a2e8 (diff)
downloadlibrambutan-c213a1af51dff8655d23c1b66d19533ec35b5265.tar.gz
librambutan-c213a1af51dff8655d23c1b66d19533ec35b5265.zip
stm32f1: stm32.h: Put MCU section first, allow overrides.
Put the section defining MCU-specific values before the other sections. Surround the density-specific defines with #ifndef/#endif pairs. This allows any of the settings in the STM32F1 stm32.h to be overridden on a per-MCU basis. That's hopefully useful to e.g. people porting libmaple to STM32F100 MCUs, which have slower clocks. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
Diffstat (limited to 'libmaple/stm32f1/include/series')
-rw-r--r--libmaple/stm32f1/include/series/stm32.h77
1 files changed, 47 insertions, 30 deletions
diff --git a/libmaple/stm32f1/include/series/stm32.h b/libmaple/stm32f1/include/series/stm32.h
index 26c45a2..ed51ae5 100644
--- a/libmaple/stm32f1/include/series/stm32.h
+++ b/libmaple/stm32f1/include/series/stm32.h
@@ -36,6 +36,41 @@
extern "C" {
#endif
+#define STM32_MCU_SERIES STM32_SERIES_F1
+
+/*
+ * MCU-specific values.
+ *
+ * You can use this section to override any of the below settings on a
+ * per-MCU basis. For example, if your MCU has different STM32_PCLK1
+ * or STM32_PCLK2 values, you can set them here and the values for
+ * STM32F103 microcontrollers set below won't take effect.
+ */
+
+#if defined(MCU_STM32F103RB)
+# define STM32_NR_GPIO_PORTS 4
+# define STM32_SRAM_END ((void*)0x20005000)
+
+#elif defined(MCU_STM32F103ZE)
+# define STM32_NR_GPIO_PORTS 7
+# define STM32_SRAM_END ((void*)0x20010000)
+
+#elif defined(MCU_STM32F103CB)
+ /* This STM32_NR_GPIO_PORTS is not stricly true, but only pins 0
+ * and exist, and they're used for OSC (e.g. on e.g. LeafLabs
+ * Maple Mini), so we'll live with this for now. */
+# define STM32_NR_GPIO_PORTS 3
+# define STM32_SRAM_END ((void*)0x20005000)
+
+#elif defined(MCU_STM32F103RE)
+# define STM32_NR_GPIO_PORTS 4
+# define STM32_SRAM_END ((void*)0x20010000)
+
+#else
+#error "Unrecognized STM32F1 MCU, or no MCU specified. Add something like " \
+ "-DMCU_STM32F103RB to your compiler arguments."
+#endif
+
/*
* Clock configuration.
*/
@@ -57,46 +92,28 @@ extern "C" {
*/
#ifdef STM32_MEDIUM_DENSITY
+# ifndef STM32_NR_INTERRUPTS
# define STM32_NR_INTERRUPTS 43
+# endif
+
+# ifndef STM32_HAVE_FSMC
# define STM32_HAVE_FSMC 0
+# endif
+
#elif defined(STM32_HIGH_DENSITY)
+# ifndef STM32_NR_INTERRUPTS
# define STM32_NR_INTERRUPTS 60
+# endif
+
+# ifndef STM32_HAVE_FSMC
# define STM32_HAVE_FSMC 1
+# endif
+
#else
#error "Unsupported STM32F1 density, or no density specified. Add something " \
"like -DSTM32_MEDIUM_DENSITY to your compiler arguments."
#endif
-/*
- * Series- and MCU-specific values.
- */
-
-#define STM32_MCU_SERIES STM32_SERIES_F1
-
-#if defined(MCU_STM32F103RB)
-# define STM32_NR_GPIO_PORTS 4
-# define STM32_SRAM_END ((void*)0x20005000)
-
-#elif defined(MCU_STM32F103ZE)
-# define STM32_NR_GPIO_PORTS 7
-# define STM32_SRAM_END ((void*)0x20010000)
-
-#elif defined(MCU_STM32F103CB)
- /* This STM32_NR_GPIO_PORTS is not stricly true, but only pins 0
- * and exist, and they're used for OSC (e.g. on e.g. LeafLabs
- * Maple Mini), so we'll live with this for now. */
-# define STM32_NR_GPIO_PORTS 3
-# define STM32_SRAM_END ((void*)0x20005000)
-
-#elif defined(MCU_STM32F103RE)
-# define STM32_NR_GPIO_PORTS 4
-# define STM32_SRAM_END ((void*)0x20010000)
-
-#else
-#error "Unrecognized STM32F1 MCU, or no MCU specified. Add something like " \
- "-DMCU_STM32F103RB to your compiler arguments."
-#endif
-
#ifdef __cplusplus
}
#endif