Add automatic flash CRC patching to cmake
This commit is contained in:
parent
1e870972e3
commit
17609a2491
@ -43,6 +43,27 @@ else (GIT_FOUND)
|
|||||||
message("Version is set to: ${GIT_DESCRIBE}${ColorReset}")
|
message("Version is set to: ${GIT_DESCRIBE}${ColorReset}")
|
||||||
endif (GIT_FOUND)
|
endif (GIT_FOUND)
|
||||||
|
|
||||||
|
find_program(VIRTUALENV virtualenv)
|
||||||
|
if (VIRTUALENV)
|
||||||
|
message("Python virtual environment found")
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${VIRTUALENV} venv
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
OUTPUT_QUIET
|
||||||
|
COMMAND_ERROR_IS_FATAL ANY
|
||||||
|
)
|
||||||
|
set(VENV_BIN "${CMAKE_CURRENT_BINARY_DIR}/venv/bin")
|
||||||
|
execute_process(
|
||||||
|
COMMAND ./pip install -r "${CMAKE_CURRENT_SOURCE_DIR}/crc-patcher/requirements.txt"
|
||||||
|
WORKING_DIRECTORY ${VENV_BIN}
|
||||||
|
OUTPUT_QUIET
|
||||||
|
COMMAND_ERROR_IS_FATAL ANY
|
||||||
|
)
|
||||||
|
message("${BoldGreen}python virtual environment set up!${ColorReset}")
|
||||||
|
else(VIRTUALENV)
|
||||||
|
endif (VIRTUALENV)
|
||||||
|
|
||||||
|
|
||||||
set(ELFFILE ${PROJECT_NAME}.elf)
|
set(ELFFILE ${PROJECT_NAME}.elf)
|
||||||
set(HEXFILE ${PROJECT_NAME}.hex)
|
set(HEXFILE ${PROJECT_NAME}.hex)
|
||||||
set(MAPFILE ${PROJECT_NAME}.map)
|
set(MAPFILE ${PROJECT_NAME}.map)
|
||||||
@ -105,6 +126,14 @@ target_link_options(${ELFFILE} PRIVATE -mlittle-endian -mthumb -mcpu=cortex-m4 -
|
|||||||
target_link_libraries(${ELFFILE} base64-lib linklist-lib)
|
target_link_libraries(${ELFFILE} base64-lib linklist-lib)
|
||||||
target_include_directories(${ELFFILE} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/updater/ram-code/include/")
|
target_include_directories(${ELFFILE} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/updater/ram-code/include/")
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
TARGET ${ELFFILE}
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND ./python "${CMAKE_CURRENT_SOURCE_DIR}/crc-patcher/crc-patch-elf.py" "${CMAKE_CURRENT_BINARY_DIR}/${ELFFILE}"
|
||||||
|
WORKING_DIRECTORY ${VENV_BIN}
|
||||||
|
COMMENT "Running Flash CRC Patcher"
|
||||||
|
)
|
||||||
|
|
||||||
set(HEX_PATH "${CMAKE_CURRENT_BINARY_DIR}/${HEXFILE}")
|
set(HEX_PATH "${CMAKE_CURRENT_BINARY_DIR}/${HEXFILE}")
|
||||||
add_custom_target(update-image ALL DEPENDS ${HEX_PATH})
|
add_custom_target(update-image ALL DEPENDS ${HEX_PATH})
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
|
2
stm-firmware/crc-patcher/requirements.txt
Normal file
2
stm-firmware/crc-patcher/requirements.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
crcmod==1.7
|
||||||
|
pyelftools==0.27
|
Loading…
Reference in New Issue
Block a user