使用VSCODE -ESP IDF ,实现编译完成后,自动用python脚本处理生成.bin文件(比如copy到另一个文件夹中等)。
方法:
执行py脚本的自定义编译后执行命令放在了CMakeList里
问题:
编译后的自定义命令执行 是依赖于.elf 中间文件 的生成,而不是.bin的生成。所以有时候会没生成.bin就执行py脚本了,但是有的时候也可以。如果在执行py脚本之前没有生成.bin,那么要在py脚本执行完成后才能生成.bin,即使是py脚本执行的时间再长(单线程?)。
有什么好的方案吗?确保.bin生成后再执行py。
根目錄 CmakeLisit 代碼
- # For more information about build system see
- # https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html
- # The following five lines of boilerplate have to be in your project's
- # CMakeLists in this exact order for cmake to work correctly
- # Update the version to match the minimum version required by ESP-IDF
- # (as of writing, ESP-IDF requires at least CMake 3.16)
- cmake_minimum_required(VERSION 3.16)
- set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/system/console/advanced/components)
- include($ENV{IDF_PATH}/tools/cmake/project.cmake)
- project(KD86_CAN)
- # 注意:使用 ESP-IDF 默认生成的可执行文件目标名 '${CMAKE_PROJECT_NAME}.elf'
- add_custom_command(
- TARGET ${CMAKE_PROJECT_NAME}.elf POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PROJECT_SOURCE_DIR}:${PYTHONPATH}" python ${PROJECT_SOURCE_DIR}/post_build.py $<TARGET_FILE:${CMAKE_PROJECT_NAME}.elf>
- COMMENT "运行构建后脚本并传递应用二进制文件路径"
- )