Makefile 726 B

12345678910111213141516171819202122232425262728293031323334353637
  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. mini-printf.h \
  8. io.h \
  9. usb_desc.h \
  10. usb_desc_data.h
  11. SOURCES=\
  12. start.S \
  13. firmware.c \
  14. io.c \
  15. mini-printf.c \
  16. usb_desc.c
  17. firmware.elf: lnk-app.lds $(HEADERS) $(SOURCES)
  18. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-app.lds,--strip-debug -o $@ $(SOURCES)
  19. boot.elf: lnk-boot.lds boot.S
  20. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-boot.lds,--strip-debug -o $@ boot.S
  21. %.hex: %.bin
  22. ./bin2hex.py $< $@
  23. %.bin: %.elf
  24. $(OBJCOPY) -O binary $< $@
  25. prog_fw: firmware.bin
  26. $(ICEPROG) -o 1M $<
  27. clean:
  28. rm -f *.bin *.hex *.elf