summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@adafruit.com>2018-11-13 10:56:00 -0800
committerGitHub <noreply@github.com>2018-11-13 10:56:00 -0800
commita3a690dc018ba70fe415def0216ab0bb9ef49d9c (patch)
tree3f2e375e8d191763e9f6a876b755b85fa2c8aa2f
parented9db807605e81a740e68e625bbe6b333581fcc0 (diff)
Add pragma to ensure neopixel_write is always -Os
-rw-r--r--ports/atmel-samd/common-hal/neopixel_write/__init__.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ports/atmel-samd/common-hal/neopixel_write/__init__.c b/ports/atmel-samd/common-hal/neopixel_write/__init__.c
index b30ad47d4..57e963c91 100644
--- a/ports/atmel-samd/common-hal/neopixel_write/__init__.c
+++ b/ports/atmel-samd/common-hal/neopixel_write/__init__.c
@@ -48,6 +48,11 @@
}
#endif
+// Ensure this code is compiled with -Os. Any other optimization level may change the timing of it
+// and break neopixels.
+#pragma GCC push_options
+#pragma GCC optimize ("Os")
+
uint64_t next_start_tick_ms = 0;
uint32_t next_start_tick_us = 1000;
@@ -183,3 +188,5 @@ void common_hal_neopixel_write(const digitalio_digitalinout_obj_t* digitalinout,
mp_hal_enable_all_interrupts();
}
+
+#pragma GCC pop_options