From 37b86a2d2289edaf1f94d9f75d26bece30d793c9 Mon Sep 17 00:00:00 2001 From: Piotr Lewandowski Date: Wed, 23 Aug 2023 18:34:35 +0200 Subject: [PATCH] [skip ci] added _flash_uart targets to direct flash fw via k5prog --- .gitmodules | 3 +++ CMakeLists.txt | 1 + src/am_tx/CMakeLists.txt | 8 +++++++- src/messenger/CMakeLists.txt | 14 ++++++++++++-- src/most_useless_mod/CMakeLists.txt | 8 +++++++- src/pong/CMakeLists.txt | 8 +++++++- src/rssi_printer/CMakeLists.txt | 8 +++++++- src/rssi_sbar/CMakeLists.txt | 8 +++++++- src/rssi_sbar_hot/CMakeLists.txt | 8 +++++++- src/spectrum/CMakeLists.txt | 8 +++++++- src/spectrum_fagci/CMakeLists.txt | 6 ++++++ src/t9_texting/CMakeLists.txt | 8 +++++++- tools/CMakeLists.txt | 8 ++++++++ tools/k5prog | 1 + 14 files changed, 87 insertions(+), 10 deletions(-) create mode 100644 tools/CMakeLists.txt create mode 160000 tools/k5prog diff --git a/.gitmodules b/.gitmodules index 73665a9..24dc58b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "tools/fw_tools"] path = tools/fw_tools url = https://github.com/amnemonic/Quansheng_UV-K5_Firmware.git +[submodule "tools/k5prog"] + path = tools/k5prog + url = git@github.com:sq5bpf/k5prog.git diff --git a/CMakeLists.txt b/CMakeLists.txt index c3dc57c..bcd0097 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,6 +31,7 @@ set(COMPILER_OPTIONS -mthumb -mcpu=cortex-m0 -mfpu=auto -mfloat-abi=soft -fno-ex -O${OPTI_FLAG} -Wl,--gc-sections $<$:-fno-rtti> ) +add_subdirectory(tools) add_subdirectory(libs) add_subdirectory(src) diff --git a/src/am_tx/CMakeLists.txt b/src/am_tx/CMakeLists.txt index ac7f111..5e4d0cd 100644 --- a/src/am_tx/CMakeLists.txt +++ b/src/am_tx/CMakeLists.txt @@ -75,4 +75,10 @@ add_custom_target(${NAME}_flash add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} -) \ No newline at end of file +) + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/src/messenger/CMakeLists.txt b/src/messenger/CMakeLists.txt index f65271b..8db7e0d 100644 --- a/src/messenger/CMakeLists.txt +++ b/src/messenger/CMakeLists.txt @@ -69,11 +69,21 @@ add_custom_command(TARGET ${NAME} ) add_custom_target(${NAME}_flash - COMMAND openocd -f interface/cmsis-dap.cfg -f ${PROJECT_SOURCE_DIR}/openocd_scripts/dp32g030.cfg -c "write_image ${PROJECT_SOURCE_DIR}/build/src/rssi_printer/rssi_printer.bin 0x1000" -c "halt" -c "shutdown" + COMMAND openocd -f interface/cmsis-dap.cfg -f ${PROJECT_SOURCE_DIR}/openocd_scripts/dp32g030:.cfg -c "write_image ${PROJECT_SOURCE_DIR}/build/src/rssi_printer/rssi_printer.bin 0x1000" -c "halt" -c "shutdown" DEPENDS ${NAME} ) add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} -) \ No newline at end of file +) + +if(NOT DEFINED ${SERIAL_PORT}) + set(SERIAL_PORT /dev/ttyUSB0) +endif() + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/src/most_useless_mod/CMakeLists.txt b/src/most_useless_mod/CMakeLists.txt index bb93779..7dd10bc 100644 --- a/src/most_useless_mod/CMakeLists.txt +++ b/src/most_useless_mod/CMakeLists.txt @@ -75,4 +75,10 @@ add_custom_target(${NAME}_flash add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} -) \ No newline at end of file +) + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/src/pong/CMakeLists.txt b/src/pong/CMakeLists.txt index 316d8cc..4062090 100644 --- a/src/pong/CMakeLists.txt +++ b/src/pong/CMakeLists.txt @@ -74,4 +74,10 @@ add_custom_target(${NAME}_flash add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} -) \ No newline at end of file +) + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/src/rssi_printer/CMakeLists.txt b/src/rssi_printer/CMakeLists.txt index 8abbb19..d6d8f1b 100644 --- a/src/rssi_printer/CMakeLists.txt +++ b/src/rssi_printer/CMakeLists.txt @@ -74,4 +74,10 @@ add_custom_target(${NAME}_flash add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} -) \ No newline at end of file +) + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/src/rssi_sbar/CMakeLists.txt b/src/rssi_sbar/CMakeLists.txt index ce43e04..8c2b42e 100644 --- a/src/rssi_sbar/CMakeLists.txt +++ b/src/rssi_sbar/CMakeLists.txt @@ -75,4 +75,10 @@ add_custom_target(${NAME}_flash add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} -) \ No newline at end of file +) + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/src/rssi_sbar_hot/CMakeLists.txt b/src/rssi_sbar_hot/CMakeLists.txt index 2d96e92..597bdb0 100644 --- a/src/rssi_sbar_hot/CMakeLists.txt +++ b/src/rssi_sbar_hot/CMakeLists.txt @@ -75,4 +75,10 @@ add_custom_target(${NAME}_flash add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} -) \ No newline at end of file +) + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/src/spectrum/CMakeLists.txt b/src/spectrum/CMakeLists.txt index 02ebe9d..c14a7ac 100644 --- a/src/spectrum/CMakeLists.txt +++ b/src/spectrum/CMakeLists.txt @@ -76,4 +76,10 @@ add_custom_target(${NAME}_flash add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} -) \ No newline at end of file +) + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/src/spectrum_fagci/CMakeLists.txt b/src/spectrum_fagci/CMakeLists.txt index 965a045..6fdee75 100644 --- a/src/spectrum_fagci/CMakeLists.txt +++ b/src/spectrum_fagci/CMakeLists.txt @@ -78,3 +78,9 @@ add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} ) + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/src/t9_texting/CMakeLists.txt b/src/t9_texting/CMakeLists.txt index 24b48c6..dc60d9f 100644 --- a/src/t9_texting/CMakeLists.txt +++ b/src/t9_texting/CMakeLists.txt @@ -77,4 +77,10 @@ add_custom_target(${NAME}_flash add_custom_target(${NAME}_encoded COMMAND python ${PROJECT_SOURCE_DIR}/tools/fw_tools/python-utils/fw_pack.py ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin ${CMAKE_CURRENT_SOURCE_DIR}/../orginal_fw/k5_26_encrypted_18to1300MHz.ver.bin ${CMAKE_CURRENT_BINARY_DIR}/${NAME}_encoded.bin DEPENDS ${NAME} -) \ No newline at end of file +) + +add_custom_target(${NAME}_flash_uart + COMMAND ${CMAKE_BINARY_DIR}/tools/k5prog -F -p ${SERIAL_PORT} -b ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.bin -Y -Y -Y + DEPENDS ${NAME}_encoded + DEPENDS k5prog +) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt new file mode 100644 index 0000000..9aaadee --- /dev/null +++ b/tools/CMakeLists.txt @@ -0,0 +1,8 @@ +set(NAME k5prog) +set(k5prog_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/k5prog) + +project(${NAME}) + +set(CMAKE_C_COMPILER "gcc") +add_executable(${NAME} ${k5prog_SRC_DIR}/k5prog.c) +target_include_directories(${NAME} PUBLIC ${k5prog_SRC_DIR}) diff --git a/tools/k5prog b/tools/k5prog new file mode 160000 index 0000000..15e1dde --- /dev/null +++ b/tools/k5prog @@ -0,0 +1 @@ +Subproject commit 15e1dde73e70ec0f3e4c68e48d7e7ddc017cc250