blob: 05fca4385c2f16d6faaca4cb00d2465284505b23 [file] [log] [blame]
Sylvain Munautbc9f5c42020-09-14 10:22:29 +02001#ice1usb
2#ice1usb-proto-icebreaker
3#ice1usb-proto-bitsty
4#e1-tracer
Sylvain Munaut5e860472020-09-15 22:20:21 +02005BOARD ?= ice1usb
Sylvain Munautbc9f5c42020-09-14 10:22:29 +02006CROSS ?= riscv-none-embed-
7CC = $(CROSS)gcc
8OBJCOPY = $(CROSS)objcopy
9ICEPROG = iceprog
10DFU_UTIL = dfu-util
11
12BOARD_DEFINE=BOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_)
13CFLAGS=-Wall -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -D$(BOARD_DEFINE) -I. -I../common
14
15NO2USB_FW_VERSION=0
16include ../../../gateware/cores/no2usb/fw/fw.mk
17CFLAGS += $(INC_no2usb)
18
19LNK=../common/lnk-app.lds
20
21HEADERS_common := $(addprefix ../common/, \
22 console.h \
23 dma.h \
24 led.h \
25 mini-printf.h \
26 spi.h \
27 utils.h \
28)
29
30SOURCES_common := $(addprefix ../common/, \
31 ../common/start.S \
32 console.c \
33 dma.c \
34 led.c \
35 mini-printf.c \
36 spi.c \
37 utils.c \
38)
39
40HEADERS_common += $(HEADERS_no2usb)
41SOURCES_common += $(SOURCES_no2usb)
42
43HEADERS_app=\
44 config.h \
45 e1.h \
46 misc.h \
47 usb_str_app.gen.h \
48 $(NULL)
49
50SOURCES_app=\
51 e1.c \
52 fw_app.c \
53 misc.c \
54 usb_desc_app.c \
55 usb_e1.c \
56 $(NULL)
57
58
59all: fw_app.bin
60
61
62fw_app.elf: $(LNK) $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common)
63 $(CC) $(CFLAGS) -Wl,-Bstatic,-T,$(LNK),--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app)
64
65
66%.hex: %.bin
67 ../common/bin2hex.py $< $@
68
69%.bin: %.elf
70 $(OBJCOPY) -O binary $< $@
71
72prog: fw_app.bin
73 $(ICEPROG) -o 640k $<
74
75dfuprog: fw_app.bin
76 $(DFU_UTIL) -R -a 1 -D $<
77
78
79clean:
80 rm -f *.bin *.hex *.elf *.o *.gen.h
81
82.PHONY: prog dfuprog clean