* For the stm32f042, we want to use the USB-based HSI48 clock
*/
-#if AO_HSI48
+#ifndef AO_SYSCLK
+#if AO_HSI
+#define AO_SYSCLK STM_HSI_FREQ
+#endif
+#if AO_HSI48
#define AO_SYSCLK 48000000
-#define AO_HCLK (AO_SYSCLK / AO_AHB_PRESCALER)
-
#endif
+#endif
+
+#define AO_HCLK (AO_SYSCLK / AO_AHB_PRESCALER)
#if AO_HSE || AO_HSI
/* ADC maximum reported value */
#define AO_ADC_MAX 4095
+#ifndef HAS_BOOT_LOADER
+#define HAS_BOOT_LOADER 1
+#endif
+
+#if HAS_BOOT_LOADER
#define AO_BOOT_APPLICATION_BASE ((uint32_t *) 0x08001000)
+#ifndef AO_BOOT_APPLICATION_BOUND
#define AO_BOOT_APPLICATION_BOUND ((uint32_t *) (0x08000000 + stm_flash_size()))
+#endif
#define AO_BOOT_LOADER_BASE ((uint32_t *) 0x08000000)
-#define HAS_BOOT_LOADER 1
+#endif
#endif /* _AO_ARCH_H_ */