Загрузка данных


# Проверяем, что мы находимся внутри экосистемы сборки Zephyr
if(TARGET zephyr_interface)
    # Создаем задачу, которая выполнится строго ПОСЛЕ линковки,
    # но ДО того, как Zephyr запустит свой деструктивный скрипт пост-обработки.
    add_custom_target(save_debug_elf ALL)
    
    # Говорим CMake, что нужно дождаться создания файла zephyr_final.elf
    add_dependencies(save_debug_elf zephyr_final)
    
    # Выполняем подмену:
    add_custom_command(
        TARGET save_debug_elf
        POST_BUILD
        # 1. Копируем оригинальный zephyr.elf (со всей отладкой!) в безопасное место zephyr_debug.elf
        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/zephyr/zephyr.elf ${CMAKE_BINARY_DIR}/zephyr/zephyr_debug.elf
        
        # 2. Из оригинального файла zephyr.elf, который будет мучить Zephyr, вырезаем debug-секции.
        # Теперь внутренний скрипт Zephyr выполнит свою команду со звездочкой (*+-536870912), 
        # но так как дебага там больше нет, objcopy отработает БЕЗ ошибки и соберет bin/hex!
        COMMAND ${CMAKE_STRIP} --strip-debug ${CMAKE_BINARY_DIR}/zephyr/zephyr.elf
        
        COMMENT "--> Сохранение отладочного ELF в zephyr_debug.elf и очистка основного файла для objcopy..."
    )
endif()