关于VSCODE ESP-IDF 编译后如何依赖.bin文件生成执行py脚本的问题

zhaizhaitao
Posts: 1
Joined: Fri Aug 23, 2024 12:11 am

关于VSCODE ESP-IDF 编译后如何依赖.bin文件生成执行py脚本的问题

Postby zhaizhaitao » Fri Aug 23, 2024 12:22 am

预期:
使用VSCODE -ESP IDF ,实现编译完成后,自动用python脚本处理生成.bin文件(比如copy到另一个文件夹中等)。
方法:
执行py脚本的自定义编译后执行命令放在了CMakeList里
问题:
编译后的自定义命令执行 是依赖于.elf 中间文件 的生成,而不是.bin的生成。所以有时候会没生成.bin就执行py脚本了,但是有的时候也可以。如果在执行py脚本之前没有生成.bin,那么要在py脚本执行完成后才能生成.bin,即使是py脚本执行的时间再长(单线程?)。

有什么好的方案吗?确保.bin生成后再执行py。


根目錄 CmakeLisit 代碼
  1. # For more information about build system see
  2. # https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html
  3. # The following five lines of boilerplate have to be in your project's
  4. # CMakeLists in this exact order for cmake to work correctly
  5.  
  6. # Update the version to match the minimum version required by ESP-IDF
  7. # (as of writing, ESP-IDF requires at least CMake 3.16)
  8. cmake_minimum_required(VERSION 3.16)
  9. set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/system/console/advanced/components)
  10. include($ENV{IDF_PATH}/tools/cmake/project.cmake)
  11. project(KD86_CAN)
  12. # 注意:使用 ESP-IDF 默认生成的可执行文件目标名 '${CMAKE_PROJECT_NAME}.elf'
  13. add_custom_command(
  14.     TARGET ${CMAKE_PROJECT_NAME}.elf POST_BUILD
  15.     COMMAND ${CMAKE_COMMAND} -E env "PYTHONPATH=${PROJECT_SOURCE_DIR}:${PYTHONPATH}" python ${PROJECT_SOURCE_DIR}/post_build.py $<TARGET_FILE:${CMAKE_PROJECT_NAME}.elf>
  16.     COMMENT "运行构建后脚本并传递应用二进制文件路径"
  17. )
Attachments
CMakeList.png
CMakeList文件中修改方法
CMakeList.png (144.29 KiB) Viewed 1560 times

Who is online

Users browsing this forum: No registered users and 46 guests