UV_K5_playground/src/orginal_fw/CMakeLists.txt

53 wiersze
2.3 KiB
CMake

set(LIB_NAME orginal_fw)
set(ORGINAL_FW_BIN orginal_fw.bin)
set(ORGINAL_FW_VECTORS_BIN org_vectors.bin)
set(ORGINAL_FW_VECTORS_OBJ org_vectors.o)
set(ORGINAL_FW_REST0_BIN org_bootloader.bin)
set(ORGINAL_FW_REST0_OBJ org_bootloader.o)
set(ORGINAL_FW_REST1_BIN org_fw_rest.bin)
set(ORGINAL_FW_REST1_OBJ org_fw_rest.o)
add_custom_command(OUTPUT ${ORGINAL_FW_VECTORS_BIN} ${ORGINAL_FW_REST0_BIN} ${ORGINAL_FW_REST1_BIN}
COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/fw_decomposer.py 48 4096 ${CMAKE_CURRENT_SOURCE_DIR}/${ORGINAL_FW_BIN} ${ORGINAL_FW_VECTORS_BIN} ${ORGINAL_FW_REST0_BIN} ${ORGINAL_FW_REST1_BIN}
DEPENDS ${ORGINAL_FW_BIN}
COMMENT "parsing orginal fw ${ORGINAL_FW_BIN}"
)
add_custom_command(OUTPUT ${ORGINAL_FW_VECTORS_OBJ} ${ORGINAL_FW_REST0_OBJ} ${ORGINAL_FW_REST1_OBJ}
COMMAND arm-none-eabi-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.org_vectors ${ORGINAL_FW_VECTORS_BIN} ${ORGINAL_FW_VECTORS_OBJ}
COMMAND arm-none-eabi-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.org_bootloader ${ORGINAL_FW_REST0_BIN} ${ORGINAL_FW_REST0_OBJ}
COMMAND arm-none-eabi-objcopy -I binary -O elf32-littlearm -B arm --rename-section .data=.org_fw_rest ${ORGINAL_FW_REST1_BIN} ${ORGINAL_FW_REST1_OBJ}
DEPENDS ${ORGINAL_FW_VECTORS_BIN} ${ORGINAL_FW_REST0_BIN} ${ORGINAL_FW_REST1_BIN}
COMMENT "generating vector table and fw object files"
)
add_custom_target(generate_obj_files
DEPENDS ${ORGINAL_FW_VECTORS_OBJ} ${ORGINAL_FW_REST0_OBJ} ${ORGINAL_FW_REST1_OBJ}
)
add_library(${LIB_NAME} OBJECT)
set_target_properties(${LIB_NAME} PROPERTIES LINKER_LANGUAGE C)
add_dependencies(${LIB_NAME} generate_obj_files)
target_sources(${LIB_NAME} PRIVATE
${ORGINAL_FW_VECTORS_OBJ}
${ORGINAL_FW_REST0_OBJ}
${ORGINAL_FW_REST1_OBJ}
)
target_link_libraries(${LIB_NAME}
${CMAKE_CURRENT_BINARY_DIR}/${ORGINAL_FW_VECTORS_OBJ}
${CMAKE_CURRENT_BINARY_DIR}/${ORGINAL_FW_REST0_OBJ}
${CMAKE_CURRENT_BINARY_DIR}/${ORGINAL_FW_REST1_OBJ}
)
set_target_properties(${LIB_NAME} PROPERTIES BOOTLOADER_BIN_PATH ${CMAKE_CURRENT_BINARY_DIR}/${ORGINAL_FW_REST0_BIN})
add_custom_target(${LIB_NAME}_bootloader_flash
COMMAND openocd -f interface/cmsis-dap.cfg -f ${PROJECT_SOURCE_DIR}/openocd_scripts/dp32g030.cfg -c "write_image ${CMAKE_CURRENT_BINARY_DIR}/${ORGINAL_FW_REST0_BIN} 0" -c "halt" -c "shutdown"
DEPENDS ${ORGINAL_FW_REST0_BIN}
)