uf2.cmake 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # Add UF2 build target
  2. function(__add_uf2_targets)
  3. idf_build_get_property(target IDF_TARGET)
  4. if("${target}" STREQUAL "esp32")
  5. set(uf2_family_id "0x1c5f21b0")
  6. elseif("${target}" STREQUAL "esp32s2")
  7. set(uf2_family_id "0xbfdd4eee")
  8. elseif("${target}" STREQUAL "esp32c3")
  9. set(uf2_family_id "0xd42ba06c")
  10. elseif("${target}" STREQUAL "esp32s3")
  11. set(uf2_family_id "0xc47e5767")
  12. elseif("${target}" STREQUAL "esp32h2")
  13. set(uf2_family_id "0x332726f6")
  14. elseif("${target}" STREQUAL "esp32c2")
  15. set(uf2_family_id "0x2b88d29c")
  16. elseif("${target}" STREQUAL "esp32c6")
  17. set(uf2_family_id "0x540ddf62")
  18. elseif("${target}" STREQUAL "esp32p4")
  19. set(uf2_family_id "0x3d308e94")
  20. elseif("${target}" STREQUAL "linux")
  21. return()
  22. else()
  23. message(FATAL_ERROR "UF2 family identificator is unknown for ${target}")
  24. # Generate an ID and submit a pull request as described here: https://github.com/microsoft/uf2
  25. endif()
  26. idf_build_get_property(python PYTHON)
  27. idf_build_get_property(idf_path IDF_PATH)
  28. add_custom_target(uf2-app
  29. COMMAND ${python} ${idf_path}/tools/mkuf2.py write
  30. -o "${CMAKE_CURRENT_BINARY_DIR}/uf2-app.bin"
  31. --json "${CMAKE_CURRENT_BINARY_DIR}/flasher_args.json"
  32. --chip-id "${uf2_family_id}"
  33. --bin app
  34. DEPENDS gen_project_binary
  35. VERBATIM
  36. USES_TERMINAL)
  37. add_custom_target(uf2
  38. COMMAND ${python} ${idf_path}/tools/mkuf2.py write
  39. -o "${CMAKE_CURRENT_BINARY_DIR}/uf2.bin"
  40. --json "${CMAKE_CURRENT_BINARY_DIR}/flasher_args.json"
  41. --chip-id "${uf2_family_id}"
  42. DEPENDS gen_project_binary bootloader
  43. VERBATIM
  44. USES_TERMINAL)
  45. endfunction()