Makefile 806 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. CROSS = riscv-none-embed-
  2. CC = $(CROSS)gcc
  3. OBJCOPY = $(CROSS)objcopy
  4. ICEPROG = iceprog
  5. CFLAGS=-Wall -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section
  6. HEADERS=\
  7. config.h \
  8. console.h \
  9. led.h \
  10. mini-printf.h \
  11. spi.h \
  12. usb_priv.h \
  13. usb_desc_data.h
  14. SOURCES=\
  15. start.S \
  16. console.c \
  17. firmware.c \
  18. led.c \
  19. mini-printf.c \
  20. spi.c \
  21. usb.c \
  22. usb_ep0.c \
  23. usb_desc.c
  24. firmware.elf: lnk-app.lds $(HEADERS) $(SOURCES)
  25. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-app.lds,--strip-debug -o $@ $(SOURCES)
  26. boot.elf: lnk-boot.lds boot.S
  27. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-boot.lds,--strip-debug -o $@ boot.S
  28. %.hex: %.bin
  29. ./bin2hex.py $< $@
  30. %.bin: %.elf
  31. $(OBJCOPY) -O binary $< $@
  32. prog_fw: firmware.bin
  33. $(ICEPROG) -o 1M $<
  34. clean:
  35. rm -f *.bin *.hex *.elf