altos/stm: Use flash address of boot loader instead of 0x0
[fw/altos] / src / stm / ao_arch.h
index e270199ec701aebcc7860b7a5601aa4e8f29ff8e..a6276c5ae306963e8ac76fc0e86b02ca9e76b2fa 100644 (file)
@@ -34,6 +34,8 @@
 #define AO_TICK_SIGNED int16_t
 #endif
 
+#define AO_PORT_TYPE   uint16_t
+
 /* Various definitions to make GCC look more like SDCC */
 
 #define ao_arch_naked_declare  __attribute__((naked))
@@ -88,6 +90,10 @@ extern const uint32_t ao_radio_cal;
  * For now, we're running at a weird frequency
  */
 
+#ifndef AO_HSE
+#error High speed frequency undefined
+#endif
+
 #if AO_HSE
 #define AO_PLLSRC      AO_HSE
 #else
@@ -99,6 +105,7 @@ extern const uint32_t ao_radio_cal;
 #define AO_HCLK                (AO_SYSCLK / AO_AHB_PRESCALER)
 #define AO_PCLK1       (AO_HCLK / AO_APB1_PRESCALER)
 #define AO_PCLK2       (AO_HCLK / AO_APB2_PRESCALER)
+#define AO_SYSTICK     (AO_HCLK / 8)
 
 #if AO_APB1_PRESCALER == 1
 #define AO_TIM23467_CLK                AO_PCLK1
@@ -123,46 +130,19 @@ void ao_lcd_font_init(void);
 
 void ao_lcd_font_string(char *s);
 
-char
-ao_serial1_getchar(void);
-
-void
-ao_serial1_putchar(char c);
-
-char
-ao_serial1_pollchar(void);
-
-void
-ao_serial1_set_speed(uint8_t speed);
-
-char
-ao_serial2_getchar(void);
-
-void
-ao_serial2_putchar(char c);
-
-char
-ao_serial2_pollchar(void);
-
-void
-ao_serial2_set_speed(uint8_t speed);
-
-char
-ao_serial3_getchar(void);
-
-void
-ao_serial3_putchar(char c);
-
-char
-ao_serial3_pollchar(void);
-
-void
-ao_serial3_set_speed(uint8_t speed);
-
 extern const uint32_t  ao_radio_cal;
 
 void
 ao_adc_init();
 
+/* ADC maximum reported value */
+#define AO_ADC_MAX                     4095
+
+#define AO_BOOT_APPLICATION_BASE       ((uint32_t *) 0x08001000)
+#define AO_BOOT_APPLICATION_BOUND      ((uint32_t *) (0x08000000 + stm_flash_size()))
+#define AO_BOOT_LOADER_BASE            ((uint32_t *) 0x08000000)
+#define HAS_BOOT_LOADER                        1
+
 #endif /* _AO_ARCH_H_ */
 
+