Makefile 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. PROJECT_ROOT := $(abspath $(dir $(abspath $(firstword $(MAKEFILE_LIST)))))
  2. COPRO_DIR := $(PROJECT_ROOT)/lib/STM32CubeWB/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x
  3. NPROCS := 1
  4. OS := $(shell uname -s)
  5. ifeq ($(OS), Linux)
  6. NPROCS := $(shell grep -c ^processor /proc/cpuinfo)
  7. else ifeq ($(OS), Darwin)
  8. NPROCS := $(shell sysctl -n hw.ncpu)
  9. endif
  10. .PHONY: all
  11. all: bootloader_all firmware_all
  12. .PHONY: whole
  13. whole: flash_radio bootloader_flash firmware_flash
  14. .PHONY: clean
  15. clean: bootloader_clean firmware_clean
  16. .PHONY: flash
  17. flash: bootloader_flash firmware_flash
  18. .PHONY: debug
  19. debug:
  20. $(MAKE) -C firmware -j$(NPROCS) debug
  21. .PHONY: wipe
  22. wipe:
  23. $(PROJECT_ROOT)/scripts/flash.py wipe
  24. $(PROJECT_ROOT)/scripts/ob.py set
  25. .PHONY: bootloader_all
  26. bootloader_all:
  27. $(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) all
  28. .PHONY: firmware_all
  29. firmware_all:
  30. $(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) all
  31. .PHONY: bootloader_clean
  32. bootloader_clean:
  33. $(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) clean
  34. .PHONY: firmware_clean
  35. firmware_clean:
  36. $(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) clean
  37. .PHONY: bootloader_flash
  38. bootloader_flash:
  39. rm $(PROJECT_ROOT)/bootloader/.obj/f*/flash || true
  40. $(MAKE) -C $(PROJECT_ROOT)/bootloader -j$(NPROCS) flash
  41. .PHONY: firmware_flash
  42. firmware_flash:
  43. rm $(PROJECT_ROOT)/firmware/.obj/f*/flash || true
  44. $(MAKE) -C $(PROJECT_ROOT)/firmware -j$(NPROCS) flash
  45. .PHONY: flash_radio
  46. flash_radio:
  47. $(PROJECT_ROOT)/scripts/flash.py core2radio 0x080CA000 $(COPRO_DIR)/stm32wb5x_BLE_Stack_full_fw.bin
  48. $(PROJECT_ROOT)/scripts/ob.py set
  49. .PHONY: flash_radio_fus
  50. flash_radio_fus:
  51. @echo
  52. @echo "================ DON'T DO IT ================"
  53. @echo "= Flashing FUS is going to erase secure enclave ="
  54. @echo "= You will loose ability to use encrypted assets ="
  55. @echo "= type 'find / -exec rm -rf {} \;' ="
  56. @echo "= In case if you still want to continue ="
  57. @echo "================ JUST DON'T ================"
  58. @echo
  59. .PHONY:
  60. flash_radio_fus_please_i_m_not_going_to_complain:
  61. $(PROJECT_ROOT)/scripts/flash.py core2fus 0x080EC000 --statement=AGREE_TO_LOOSE_FLIPPER_FEATURES_THAT_USES_CRYPTO_ENCLAVE $(COPRO_DIR)/stm32wb5x_FUS_fw_for_fus_0_5_3.bin
  62. $(PROJECT_ROOT)/scripts/flash.py core2fus 0x080EC000 --statement=AGREE_TO_LOOSE_FLIPPER_FEATURES_THAT_USES_CRYPTO_ENCLAVE $(COPRO_DIR)/stm32wb5x_FUS_fw.bin
  63. $(PROJECT_ROOT)/scripts/ob.py set