summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2018-09-11 18:46:52 -0700
committerKeith Packard <keithp@keithp.com>2018-10-13 08:23:25 -0700
commit23075d174d2bff8ff3f3deef3c3d90b83da6bd2e (patch)
tree327dc05580ff64592f915966062b7c0983d6f315 /src
parent71248c899676e0c2f3a478c63dec0d005b2458e6 (diff)
altos/stm32f4: Align stack to 8 bytes
This makes sure that doubles are aligned properly when passed on the stack. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/kernel/ao_task.h6
-rw-r--r--src/stm32f4/ao_arch.h4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/kernel/ao_task.h b/src/kernel/ao_task.h
index f3789fa2..709e10c6 100644
--- a/src/kernel/ao_task.h
+++ b/src/kernel/ao_task.h
@@ -27,14 +27,12 @@
#endif
/* arm stacks must be 32-bit aligned */
+#ifndef AO_STACK_ALIGNMENT
#ifdef __arm__
#define AO_STACK_ALIGNMENT __attribute__ ((aligned(4)))
-#endif
-#ifdef SDCC
+#else
#define AO_STACK_ALIGNMENT
#endif
-#ifdef __AVR__
-#define AO_STACK_ALIGNMENT
#endif
/* An AltOS task */
diff --git a/src/stm32f4/ao_arch.h b/src/stm32f4/ao_arch.h
index 73eb793f..d4c78f60 100644
--- a/src/stm32f4/ao_arch.h
+++ b/src/stm32f4/ao_arch.h
@@ -19,9 +19,11 @@
#include <stm32f4.h>
#ifndef AO_STACK_SIZE
-#define AO_STACK_SIZE 512
+#define AO_STACK_SIZE 1024
#endif
+#define AO_STACK_ALIGNMENT __attribute__ ((aligned(8)))
+
#define AO_PORT_TYPE uint16_t
#define ao_arch_nop() asm("nop")