summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2015-09-19 16:11:15 +0200
committerChristian Pointner <equinox@spreadspace.org>2015-09-19 16:11:15 +0200
commit78bf608518a2533c176c3e0314d73048decefef8 (patch)
treebb1159956f93aaa69ae3ad54b9b000ff49bd7941
parentimproved reset-lufa-cdc helper (diff)
improved linking step
-rw-r--r--defines.mk3
-rw-r--r--usb-fastled/usb-fastled.cpp19
2 files changed, 7 insertions, 15 deletions
diff --git a/defines.mk b/defines.mk
index 954a3f1..d392fca 100644
--- a/defines.mk
+++ b/defines.mk
@@ -209,6 +209,7 @@ COMMON = -mmcu=$(MCU)
COMMON += -O2
COMMON += -funsigned-char
COMMON += -funsigned-bitfields
+COMMON += -fdata-sections
COMMON += -ffunction-sections
COMMON += -fpack-struct
COMMON += -fshort-enums
@@ -228,4 +229,4 @@ CXXFLAGS = $(COMMON)
## Linker flags
LDFLAGS = -mmcu=$(MCU)
-LDFLAGS +=
+LDFLAGS += -Wl,--gc-sections
diff --git a/usb-fastled/usb-fastled.cpp b/usb-fastled/usb-fastled.cpp
index 06e1cfc..4e5e2cf 100644
--- a/usb-fastled/usb-fastled.cpp
+++ b/usb-fastled/usb-fastled.cpp
@@ -82,23 +82,14 @@ void fastled_init()
}
-void leds_set(CRGB color)
-{
- uint8_t i;
- for(i = 0; i < NUM_LEDS; ++i) {
- leds[i] = color;
- }
- FastLED.show();
-}
-
void handle_cmd(uint8_t cmd)
{
switch(cmd) {
- case '0': leds_set(CRGB::Black); led_off(); break;
- case '1': leds_set(CRGB::White); led_on(); break;
- case 'r': leds_set(CRGB::Red); led_on(); break;
- case 'g': leds_set(CRGB::Green); led_on(); break;
- case 'b': leds_set(CRGB::Blue); led_on(); break;
+ case '0': fill_solid(leds, NUM_LEDS, CRGB::Black); FastLED.show(); led_off(); break;
+ case '1': fill_solid(leds, NUM_LEDS, CRGB::White); FastLED.show(); led_on(); break;
+ case 'r': fill_solid(leds, NUM_LEDS, CRGB::Red); FastLED.show(); led_on(); break;
+ case 'g': fill_solid(leds, NUM_LEDS, CRGB::Green); FastLED.show(); led_on(); break;
+ case 'b': fill_solid(leds, NUM_LEDS, CRGB::Blue); FastLED.show(); led_on(); break;
case '!': reset2bootloader(); break;
default: printf("error\r\n"); return;
}