dfu.cmake 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # Add DFU build and flashing related targets
  2. #
  3. function(__add_dfu_targets)
  4. idf_build_get_property(target IDF_TARGET)
  5. if("${target}" STREQUAL "esp32")
  6. return()
  7. elseif("${target}" STREQUAL "esp32s2")
  8. set(dfu_pid "2")
  9. elseif("${target}" STREQUAL "esp32s3")
  10. set(dfu_pid "9")
  11. elseif("${target}" STREQUAL "esp32c3")
  12. return()
  13. elseif("${target}" STREQUAL "esp32h2")
  14. return()
  15. elseif("${target}" STREQUAL "esp32c2")
  16. return()
  17. elseif("${target}" STREQUAL "esp32c6")
  18. return()
  19. elseif("${target}" STREQUAL "linux")
  20. return()
  21. else()
  22. message(FATAL_ERROR "DFU PID unknown for ${target}")
  23. endif()
  24. idf_build_get_property(python PYTHON)
  25. idf_build_get_property(idf_path IDF_PATH)
  26. add_custom_target(dfu
  27. COMMAND ${python} ${idf_path}/tools/mkdfu.py write
  28. -o "${CMAKE_CURRENT_BINARY_DIR}/dfu.bin"
  29. --json "${CMAKE_CURRENT_BINARY_DIR}/flasher_args.json"
  30. --pid "${dfu_pid}"
  31. --flash-size "${CONFIG_ESPTOOLPY_FLASHSIZE}"
  32. DEPENDS gen_project_binary bootloader
  33. VERBATIM
  34. USES_TERMINAL)
  35. add_custom_target(dfu-list
  36. COMMAND ${CMAKE_COMMAND}
  37. -D ESP_DFU_LIST="1"
  38. -P ${idf_path}/tools/cmake/run_dfu_util.cmake
  39. USES_TERMINAL)
  40. add_custom_target(dfu-flash
  41. COMMAND ${CMAKE_COMMAND}
  42. -D ESP_DFU_BIN="${CMAKE_CURRENT_BINARY_DIR}/dfu.bin"
  43. -D ESP_DFU_PID="${dfu_pid}"
  44. -P ${idf_path}/tools/cmake/run_dfu_util.cmake
  45. USES_TERMINAL)
  46. endfunction()