diff options
-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) { } |