Makefile 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. BOARD ?= icebreaker
  2. CROSS ?= riscv-none-embed-
  3. CC = $(CROSS)gcc
  4. OBJCOPY = $(CROSS)objcopy
  5. ICEPROG = iceprog
  6. DFU_UTIL = dfu-util
  7. BOARD_DEFINE=BOARD_$(shell echo $(BOARD) | tr a-z\- A-Z_)
  8. CFLAGS=-Wall -Os -march=rv32i -mabi=ilp32 -ffreestanding -flto -nostartfiles -fomit-frame-pointer -Wl,--gc-section --specs=nano.specs -D$(BOARD_DEFINE) -I.
  9. NO2USB_FW_VERSION=0
  10. include ../../../cores/no2usb/fw/fw.mk
  11. CFLAGS += $(INC_no2usb)
  12. HEADERS_common=\
  13. config.h \
  14. console.h \
  15. led.h \
  16. mini-printf.h \
  17. spi.h \
  18. utils.h \
  19. $(HEADERS_no2usb)
  20. SOURCES_common=\
  21. start.S \
  22. console.c \
  23. led.c \
  24. mini-printf.c \
  25. spi.c \
  26. utils.c \
  27. $(SOURCES_no2usb)
  28. HEADERS_dfu=\
  29. usb_str_dfu.gen.h
  30. SOURCES_dfu=\
  31. fw_dfu.c \
  32. usb_desc_dfu.c \
  33. $(NULL)
  34. HEADERS_app=\
  35. usb_str_app.gen.h \
  36. $(NULL)
  37. SOURCES_app=\
  38. fw_app.c \
  39. usb_desc_app.c \
  40. $(NULL)
  41. all: boot_dfu.hex boot_app.hex fw_dfu.bin fw_app.bin
  42. boot_dfu.elf: lnk-boot.lds boot.S
  43. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-boot.lds,--strip-debug -DFLASH_APP_ADDR=0x00060000 -o $@ boot.S
  44. boot_app.elf: lnk-boot.lds boot.S
  45. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-boot.lds,--strip-debug -DFLASH_APP_ADDR=0x000a0000 -o $@ boot.S
  46. fw_dfu.elf: lnk-app.lds $(HEADERS_dfu) $(SOURCES_dfu) $(HEADERS_common) $(SOURCES_common)
  47. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-app.lds,--strip-debug -o $@ $(SOURCES_common) $(SOURCES_dfu)
  48. fw_app.elf: lnk-app.lds $(HEADERS_app) $(SOURCES_app) $(HEADERS_common) $(SOURCES_common)
  49. $(CC) $(CFLAGS) -Wl,-Bstatic,-T,lnk-app.lds,--strip-debug -o $@ $(SOURCES_common) $(SOURCES_app)
  50. %.hex: %.bin
  51. ./bin2hex.py $< $@
  52. %.bin: %.elf
  53. $(OBJCOPY) -O binary $< $@
  54. prog_dfu: fw_dfu.bin
  55. $(ICEPROG) -o 384k $<
  56. prog_app: fw_app.bin
  57. $(ICEPROG) -o 640k $<
  58. dfuprog_app: fw_app.bin
  59. ifeq ($(DFU_SERIAL),)
  60. @echo "[!] DFU_SERIAL not defined"
  61. else
  62. $(DFU_UTIL) -R -S $(DFU_SERIAL) -a 1 -D $<
  63. endif
  64. clean:
  65. rm -f *.bin *.hex *.elf *.o *.gen.h
  66. .PHONY: prog_dfu prog_app clean