diff options
author | Tomasz Kramkowski <tk@the-tk.com> | 2017-05-28 20:33:43 +0100 |
---|---|---|
committer | Tomasz Kramkowski <tk@the-tk.com> | 2017-05-28 20:33:43 +0100 |
commit | 9c5553fbd041724c09f5e602be4b37f5bc61b1d7 (patch) | |
tree | 4115d295e4043b5f17f72f16c29e20747e6568f9 | |
parent | de1f8661e0900c6794279e758a141e31d8b506ae (diff) | |
download | fmk-9c5553fbd041724c09f5e602be4b37f5bc61b1d7.tar.gz fmk-9c5553fbd041724c09f5e602be4b37f5bc61b1d7.tar.xz fmk-9c5553fbd041724c09f5e602be4b37f5bc61b1d7.zip |
uart: Make the uart module optional
Making the uart module optional makes an -Os compile much smaller.
-rw-r--r-- | Makefile | 9 | ||||
-rw-r--r-- | uart.c | 1 | ||||
-rw-r--r-- | uart.h | 8 | ||||
-rw-r--r-- | weak.c | 3 |
4 files changed, 18 insertions, 3 deletions
@@ -17,12 +17,17 @@ CFLAGS = -std=c11 $(WARNINGS) -O2 -flto -MMD -MP -ffreestanding -nostdlib LDFLAGS = -T layout.ld -O2 -flto -ffreestanding -nostdlib ASFLAGS = $(TARGET_ARCH) -OBJ := vectors.o flashconf.o crt0.o setup.o fmk.o lib/le.o pit.o uart.o \ - usb/endpt0.o usb/endpt1.o usb/txhandler.o usb/usb.o +OBJ := vectors.o flashconf.o crt0.o setup.o fmk.o lib/le.o pit.o \ + usb/endpt0.o usb/endpt1.o usb/txhandler.o usb/usb.o weak.o include $(MK20DX256)/mk20dx256.mk CPPFLAGS += $(mk20dx256_CPPFLAGS) +ifeq ("$(WITH_UART)", "yes") + CPPFLAGS += -DWITH_UART + OBJ += uart.o +endif + %.bin: % $(OBJCOPY) -O binary $< $@ @@ -212,6 +212,7 @@ void uart_printf(const char *fmt, ...) va_end(ap); } +void uart0_isr(void); void uart0_isr(void) { int avail, start, end, tosend; @@ -19,10 +19,16 @@ #ifndef FMK_UART_H #define FMK_UART_H +#ifdef WITH_UART void uart_setup(void); void uart_putchar(int c); void uart_printf(const char *fmt, ...); void uart_puts(const char *s); -void uart0_isr(void); +#else +static inline void uart_setup(void) { } +static inline void uart_putchar(int c) { (void)c; } +static inline void uart_printf(const char *fmt, ...) { (void)fmt; } +static inline void uart_puts(const char *s) { (void)s; } +#endif #endif /* FMK_UART_H */ @@ -0,0 +1,3 @@ +void uart0_isr(void); +__attribute__ ((weak)) +void uart0_isr(void) { } |