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


# Проверяем, что цель интерфейса линкера доступна
if(TARGET zephyr_interface)
    # Создаем временный файл с инструкциями для линкера прямо в директории сборки
    file(WRITE ${CMAKE_BINARY_DIR}/debug_sections_lma.ld
        "SECTION_PROLOGUE(.debug_info,,) { *(.debug_info) } GROUP_LINK_IN(FLASH)\n"
        "SECTION_PROLOGUE(.debug_abbrev,,) { *(.debug_abbrev) } GROUP_LINK_IN(FLASH)\n"
        "SECTION_PROLOGUE(.debug_line,,) { *(.debug_line) } GROUP_LINK_IN(FLASH)\n"
        "SECTION_PROLOGUE(.debug_frame,,) { *(.debug_frame) } GROUP_LINK_IN(FLASH)\n"
        "SECTION_PROLOGUE(.debug_str,,) { *(.debug_str) } GROUP_LINK_IN(FLASH)\n"
        "SECTION_PROLOGUE(.debug_loc,,) { *(.debug_loc) } GROUP_LINK_IN(FLASH)\n"
        "SECTION_PROLOGUE(.debug_ranges,,) { *(.debug_ranges) } GROUP_LINK_IN(FLASH)\n"
        "SECTION_PROLOGUE(.debug_aranges,,) { *(.debug_aranges) } GROUP_LINK_IN(FLASH)\n"
    )

    # Внедряем этот файл в секцию дебага Zephyr, не меняя файлы самой ОС
    zephyr_linker_sources(SECTIONS ${CMAKE_BINARY_DIR}/debug_sections_lma.ld)
endif()