dfu.cmake 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 "4")
  11. elseif("${target}" STREQUAL "esp32c3")
  12. return()
  13. elseif("${target}" STREQUAL "linux")
  14. return()
  15. else()
  16. message(FATAL_ERROR "DFU PID unknown for ${target}")
  17. endif()
  18. idf_build_get_property(python PYTHON)
  19. idf_build_get_property(idf_path IDF_PATH)
  20. add_custom_target(dfu
  21. COMMAND ${python} ${idf_path}/tools/mkdfu.py write
  22. -o "${CMAKE_CURRENT_BINARY_DIR}/dfu.bin"
  23. --json "${CMAKE_CURRENT_BINARY_DIR}/flasher_args.json"
  24. --pid "${dfu_pid}"
  25. DEPENDS gen_project_binary bootloader
  26. VERBATIM
  27. USES_TERMINAL)
  28. add_custom_target(dfu-list
  29. COMMAND ${CMAKE_COMMAND}
  30. -D ESP_DFU_LIST="1"
  31. -P ${idf_path}/tools/cmake/run_dfu_util.cmake
  32. USES_TERMINAL)
  33. add_custom_target(dfu-flash
  34. COMMAND ${CMAKE_COMMAND}
  35. -D ESP_DFU_BIN="${CMAKE_CURRENT_BINARY_DIR}/dfu.bin"
  36. -D ESP_DFU_PID="${dfu_pid}"
  37. -P ${idf_path}/tools/cmake/run_dfu_util.cmake
  38. USES_TERMINAL)
  39. endfunction()