altos: profiling on STM32L
[fw/altos] / src / stm / ao_arch.h
index 30cd9ea5717c02f635486e73f91847b347c43ba0..f2de719c6c3c63346ddebd0037aa1a1fcfcc568a 100644 (file)
 
 #define AO_LED_TYPE    uint16_t
 
+#ifndef AO_TICK_TYPE
+#define AO_TICK_TYPE   uint16_t
+#define AO_TICK_SIGNED int16_t
+#endif
+
 /* Various definitions to make GCC look more like SDCC */
 
 #define ao_arch_naked_declare  __attribute__((naked))
@@ -59,7 +64,19 @@ extern void putchar(char c);
 extern char getchar(void);
 extern void ao_avr_stdio_init(void);
 
+
+/*
+ * ao_romconfig.c
+ */
+
+#define AO_ROMCONFIG_VERSION   2
+
+#define AO_ROMCONFIG_SYMBOL(a) __attribute__((section(".romconfig"))) const
+
+extern const uint16_t ao_romconfig_version;
+extern const uint16_t ao_romconfig_check;
 extern const uint16_t ao_serial_number;
+extern const uint32_t ao_radio_cal;
 
 #define ARM_PUSH32(stack, val) (*(--(stack)) = (val))
 
@@ -126,7 +143,7 @@ extern const uint16_t ao_serial_number;
 
 
 #define ao_arch_cpu_idle() do {                        \
-               asm("wfi");             \
+               asm(".global ao_idle_loc\n\twfi\nao_idle_loc:");        \
        } while (0)
 
 #define ao_arch_restore_stack() do { \