diff options
Diffstat (limited to 'nrf5x/nrfjprog.cmake')
-rw-r--r-- | nrf5x/nrfjprog.cmake | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/nrf5x/nrfjprog.cmake b/nrf5x/nrfjprog.cmake new file mode 100644 index 0000000..8ebf274 --- /dev/null +++ b/nrf5x/nrfjprog.cmake @@ -0,0 +1,37 @@ +if (NOT MCU_NRFJPROG AND NOT NRFJPROG STREQUAL "NRFJPROG-NOTFOUND") + find_program(MCU_NRFJPROG nrfjprog VERBOSE) + set(MCU_NRFJPROG ${MCU_NRFJPROG} CACHE FILE "Path to nrfjprog") + + if (MCU_NRFJPROG) + message("MCU: found nrfjprog: ${MCU_NRFJPROG}") + else () + message("MCU: nrfjprog not found") + endif () +endif () + +function(_nrf5_try_add_nrfjprog_targets T) + if (MCU_NRFJPROG) + _nrf5_add_nrfjprog_targets(${T}) + endif () +endfunction() + +function(_nrf5_add_nrfjprog_targets T) + get_target_property(MCU_SOFTDEVICE ${T} MCU_SOFTDEVICE) + get_target_property(MCU_NRF5X_CHIP_SERIES ${T} MCU_NRF5X_CHIP_SERIES) + + add_custom_target(${T}-flash + COMMAND ${MCU_NRFJPROG} -f ${MCU_NRF5X_CHIP_SERIES} --sectorerase --program $<TARGET_FILE:${T}>.hex + COMMAND ${MCU_NRFJPROG} -f ${MCU_NRF5X_CHIP_SERIES} --reset + DEPENDS $<TARGET_FILE:${T}>.hex + COMMENT "Flashing: ${T}") + + get_target_property(MCU_SOFTDEVICE ${T} MCU_SOFTDEVICE) + get_target_property(MCU_SOFTDEVICE_HEX ${T} MCU_SOFTDEVICE_HEX) + if (MCU_SOFTDEVICE AND MCU_SOFTDEVICE_HEX) + add_custom_target(${T}-flash-softdevice + COMMAND ${MCU_NRFJPROG} -f ${MCU_NRF5X_CHIP_SERIES} --chiperase --program ${MCU_SOFTDEVICE_HEX} + COMMAND ${MCU_NRFJPROG} -f ${MCU_NRF5X_CHIP_SERIES} --reset + DEPENDS $<TARGET_FILE:${T}>.hex + COMMENT "Flashing: ${T}") + endif () +endfunction() |