projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'mjb/master'
[fw/altos]
/
src
/
stm
/
ao_arch.h
diff --git
a/src/stm/ao_arch.h
b/src/stm/ao_arch.h
index bbd1b3b1f33e50a90bed62d4178fd689789f77d6..87eda18b2a89878a2576d79f90bed05ab0e51a39 100644
(file)
--- a/
src/stm/ao_arch.h
+++ b/
src/stm/ao_arch.h
@@
-25,10
+25,15
@@
* STM32L definitions and code fragments for AltOS
*/
* STM32L definitions and code fragments for AltOS
*/
-#define AO_STACK_SIZE
1024
+#define AO_STACK_SIZE
512
#define AO_LED_TYPE uint16_t
#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))
/* 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);
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 uint16_t ao_serial_number;
+extern const uint32_t ao_radio_cal;
#define ARM_PUSH32(stack, val) (*(--(stack)) = (val))
#define ARM_PUSH32(stack, val) (*(--(stack)) = (val))
@@
-111,14
+128,22
@@
extern const uint16_t ao_serial_number;
uint32_t *sp; \
asm("mov %0,sp" : "=&r" (sp) ); \
ao_cur_task->sp = (sp); \
uint32_t *sp; \
asm("mov %0,sp" : "=&r" (sp) ); \
ao_cur_task->sp = (sp); \
- if ((uint8_t *) sp <
ao_cur_task->stack)
\
+ if ((uint8_t *) sp <
&ao_cur_task->stack[0])
\
ao_panic (AO_PANIC_STACK); \
} while (0)
ao_panic (AO_PANIC_STACK); \
} while (0)
-#define ao_arch_isr_stack() /* nothing */
+#if 0
+#define ao_arch_isr_stack() do { \
+ uint32_t *sp = (uint32_t *) 0x20004000; \
+ asm("mov %0,sp" : "=&r" (sp) ); \
+ } while (0)
+#else
+#define ao_arch_isr_stack()
+#endif
+
#define ao_arch_cpu_idle() do { \
#define ao_arch_cpu_idle() do { \
- asm("wfi");
\
+ asm("wfi"); \
} while (0)
#define ao_arch_restore_stack() do { \
} while (0)
#define ao_arch_restore_stack() do { \
@@
-173,6
+198,11
@@
extern const uint16_t ao_serial_number;
#define AO_TIM91011_CLK (2 * AO_PCLK2)
#endif
#define AO_TIM91011_CLK (2 * AO_PCLK2)
#endif
+#define AO_STM_NVIC_HIGH_PRIORITY 4
+#define AO_STM_NVIC_CLOCK_PRIORITY 6
+#define AO_STM_NVIC_MED_PRIORITY 8
+#define AO_STM_NVIC_LOW_PRIORITY 10
+
void ao_lcd_stm_init(void);
void ao_lcd_font_init(void);
void ao_lcd_stm_init(void);
void ao_lcd_font_init(void);
@@
-215,7
+245,7
@@
ao_serial3_pollchar(void);
void
ao_serial3_set_speed(uint8_t speed);
void
ao_serial3_set_speed(uint8_t speed);
-extern
uint32_t
ao_radio_cal;
+extern
const uint32_t
ao_radio_cal;
void
ao_adc_init();
void
ao_adc_init();