From a3a690dc018ba70fe415def0216ab0bb9ef49d9c Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Tue, 13 Nov 2018 10:56:00 -0800 Subject: [PATCH] Add pragma to ensure neopixel_write is always -Os --- ports/atmel-samd/common-hal/neopixel_write/__init__.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ports/atmel-samd/common-hal/neopixel_write/__init__.c b/ports/atmel-samd/common-hal/neopixel_write/__init__.c index b30ad47d41..57e963c918 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